From: "David D. Kilzer" <ddkilzer@kilzer.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: Eric Wong <normalperson@yhbt.net>,
git@vger.kernel.org, "David D. Kilzer" <ddkilzer@kilzer.net>
Subject: [PATCH] Fix race condition in t9119-git-svn-info.sh
Date: Mon, 31 Dec 2007 12:07:45 -0800 [thread overview]
Message-ID: <1199131665-1633-1-git-send-email-ddkilzer@kilzer.net> (raw)
In-Reply-To: <377939.62541.qm@web52402.mail.re2.yahoo.com>
In-Reply-To: <377939.62541.qm@web52402.mail.re2.yahoo.com>
Changed the ptouch bash function to use the "Text Last Updated"
date reported by 'svn info' when changing the modified time
(mtime) of the file/symlink/directory in the git working
directory. Previously it used the mtime of the item in the
svn working directory, which caused the race condition.
Signed-off-by: David D. Kilzer <ddkilzer@kilzer.net>
---
Ran a "burn-in" test by applying the "make test" patch in
<http://marc.info/?l=git&m=119452148511531&w=2> for over an hour
with no test failures:
$ set -e
$ while /usr/bin/true; do (make t/t9119-git-svn-info.sh); done
Also ran "make -C t full-svn-test" to verify the fix.
t/t9119-git-svn-info.sh | 35 ++++++++++++++++++++---------------
1 files changed, 20 insertions(+), 15 deletions(-)
diff --git a/t/t9119-git-svn-info.sh b/t/t9119-git-svn-info.sh
index cc61911..6d9bec9 100755
--- a/t/t9119-git-svn-info.sh
+++ b/t/t9119-git-svn-info.sh
@@ -5,17 +5,22 @@
test_description='git-svn info'
. ./lib-git-svn.sh
-say 'skipping svn-info test (has a race undiagnosed yet)'
-test_done
ptouch() {
perl -w -e '
use strict;
+ use POSIX qw(mktime);
die "ptouch requires exactly 2 arguments" if @ARGV != 2;
- die "$ARGV[0] does not exist" if ! -e $ARGV[0];
- my @s = stat $ARGV[0];
- utime $s[8], $s[9], $ARGV[1];
- ' "$1" "$2"
+ my $text_last_updated = shift @ARGV;
+ my $git_file = shift @ARGV;
+ die "\"$git_file\" does not exist" if ! -e $git_file;
+ if ($text_last_updated
+ =~ /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/) {
+ my $mtime = mktime($6, $5, $4, $3, $2 - 1, $1 - 1900);
+ my $atime = $mtime;
+ utime $atime, $mtime, $git_file;
+ }
+ ' "`svn info $1 | grep '^Text Last Updated:'`" "$2"
}
test_expect_success 'setup repository and import' "
@@ -111,7 +116,7 @@ test_expect_success 'info added-file' "
git add added-file &&
cd .. &&
cp gitwc/added-file svnwc/added-file &&
- ptouch gitwc/added-file svnwc/added-file &&
+ ptouch svnwc/added-file gitwc/added-file &&
cd svnwc &&
svn add added-file > /dev/null &&
cd .. &&
@@ -127,7 +132,7 @@ test_expect_success 'info --url added-file' '
test_expect_success 'info added-directory' "
mkdir gitwc/added-directory svnwc/added-directory &&
- ptouch gitwc/added-directory svnwc/added-directory &&
+ ptouch svnwc/added-directory gitwc/added-directory &&
touch gitwc/added-directory/.placeholder &&
cd svnwc &&
svn add added-directory > /dev/null &&
@@ -156,7 +161,7 @@ test_expect_success 'info added-symlink-file' "
ln -s added-file added-symlink-file &&
svn add added-symlink-file > /dev/null &&
cd .. &&
- ptouch gitwc/added-symlink-file svnwc/added-symlink-file &&
+ ptouch svnwc/added-symlink-file gitwc/added-symlink-file &&
(cd svnwc; svn info added-symlink-file) \
> expected.info-added-symlink-file &&
(cd gitwc; git-svn info added-symlink-file) \
@@ -179,7 +184,7 @@ test_expect_success 'info added-symlink-directory' "
ln -s added-directory added-symlink-directory &&
svn add added-symlink-directory > /dev/null &&
cd .. &&
- ptouch gitwc/added-symlink-directory svnwc/added-symlink-directory &&
+ ptouch svnwc/added-symlink-directory gitwc/added-symlink-directory &&
(cd svnwc; svn info added-symlink-directory) \
> expected.info-added-symlink-directory &&
(cd gitwc; git-svn info added-symlink-directory) \
@@ -290,7 +295,7 @@ test_expect_success 'info --url symlink-directory (deleted)' '
test_expect_success 'info unknown-file' "
echo two > gitwc/unknown-file &&
cp gitwc/unknown-file svnwc/unknown-file &&
- ptouch gitwc/unknown-file svnwc/unknown-file &&
+ ptouch svnwc/unknown-file gitwc/unknown-file &&
(cd svnwc; svn info unknown-file) 2> expected.info-unknown-file &&
(cd gitwc; git-svn info unknown-file) 2> actual.info-unknown-file &&
git-diff expected.info-unknown-file actual.info-unknown-file
@@ -304,7 +309,7 @@ test_expect_success 'info --url unknown-file' '
test_expect_success 'info unknown-directory' "
mkdir gitwc/unknown-directory svnwc/unknown-directory &&
- ptouch gitwc/unknown-directory svnwc/unknown-directory &&
+ ptouch svnwc/unknown-directory gitwc/unknown-directory &&
touch gitwc/unknown-directory/.placeholder &&
(cd svnwc; svn info unknown-directory) \
2> expected.info-unknown-directory &&
@@ -327,7 +332,7 @@ test_expect_success 'info unknown-symlink-file' "
cd svnwc &&
ln -s unknown-file unknown-symlink-file &&
cd .. &&
- ptouch gitwc/unknown-symlink-file svnwc/unknown-symlink-file &&
+ ptouch svnwc/unknown-symlink-file gitwc/unknown-symlink-file &&
(cd svnwc; svn info unknown-symlink-file) \
2> expected.info-unknown-symlink-file &&
(cd gitwc; git-svn info unknown-symlink-file) \
@@ -350,8 +355,8 @@ test_expect_success 'info unknown-symlink-directory' "
cd svnwc &&
ln -s unknown-directory unknown-symlink-directory &&
cd .. &&
- ptouch gitwc/unknown-symlink-directory \
- svnwc/unknown-symlink-directory &&
+ ptouch svnwc/unknown-symlink-directory \
+ gitwc/unknown-symlink-directory &&
(cd svnwc; svn info unknown-symlink-directory) \
2> expected.info-unknown-symlink-directory &&
(cd gitwc; git-svn info unknown-symlink-directory) \
--
1.5.3.7
next prev parent reply other threads:[~2007-12-31 20:18 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-22 6:11 What's in git/spearce.git (stable) Shawn O. Pearce
2007-11-01 5:39 ` What's in git.git (stable) Junio C Hamano
2007-11-04 3:52 ` Junio C Hamano
2007-11-08 8:06 ` Junio C Hamano
2007-11-08 11:38 ` Pierre Habouzit
2007-11-12 7:06 ` Junio C Hamano
2007-11-15 0:20 ` Junio C Hamano
2007-11-17 21:00 ` Junio C Hamano
2007-11-25 20:45 ` Junio C Hamano
2007-12-01 2:05 ` Junio C Hamano
2007-12-04 8:43 ` Junio C Hamano
2007-12-05 10:57 ` Junio C Hamano
2007-12-07 9:50 ` Junio C Hamano
2007-12-09 10:32 ` Junio C Hamano
2007-12-10 22:37 ` v1.5.4 plans Junio C Hamano
2007-12-10 23:49 ` Jeff King
2007-12-11 1:27 ` Junio C Hamano
2007-12-11 5:02 ` Junio C Hamano
2007-12-11 6:39 ` Jeff King
2007-12-11 6:47 ` Junio C Hamano
2007-12-11 6:54 ` Jeff King
2007-12-11 7:00 ` Junio C Hamano
2007-12-11 7:03 ` Jeff King
2007-12-11 6:17 ` Jeff King
2007-12-11 6:27 ` Jeff King
2007-12-11 6:28 ` [PATCH 2/2] git-svn: get color config from --get-colorbool Jeff King
2007-12-12 18:27 ` Eric Wong
2007-12-11 7:01 ` v1.5.4 plans Jeff King
2007-12-11 7:05 ` Andreas Ericsson
2007-12-11 12:53 ` Jeff King
2007-12-11 3:53 ` Nicolas Pitre
2007-12-11 12:57 ` Johannes Schindelin
2007-12-11 13:59 ` Nicolas Pitre
2007-12-11 15:24 ` Kristian Høgsberg
2007-12-11 19:13 ` Junio C Hamano
2007-12-12 18:40 ` Eric Wong
2007-12-12 19:50 ` Junio C Hamano
2007-12-12 22:21 ` David D. Kilzer
2007-12-31 3:56 ` David D. Kilzer
2007-12-31 20:07 ` David D. Kilzer [this message]
2007-12-31 22:29 ` [PATCH] Fix race condition in t9119-git-svn-info.sh Junio C Hamano
2007-12-31 23:33 ` [PATCH] Remove duplication " David D. Kilzer
2008-01-02 3:43 ` Eric Wong
2008-01-02 3:54 ` David D. Kilzer
2008-01-02 5:57 ` Junio C Hamano
2008-01-02 10:27 ` Junio C Hamano
2007-12-13 2:47 ` What's in git.git (stable frozen) Junio C Hamano
2007-12-13 3:09 ` [PATCH] git-commit: squelch needless message during an empty merge Junio C Hamano
2007-12-13 4:34 ` Jeff King
2007-12-13 7:46 ` Johannes Sixt
2007-12-17 8:40 ` What's in git.git (stable frozen) Junio C Hamano
2007-12-23 9:21 ` Junio C Hamano
2008-01-05 10:46 ` Junio C Hamano
2008-01-05 21:21 ` Dan McGee
2008-01-06 2:56 ` Junio C Hamano
2008-01-06 3:06 ` Junio C Hamano
2008-01-06 3:08 ` Dan McGee
2008-01-06 10:33 ` Junio C Hamano
[not found] ` <e5bfff550801050507x369976b7sd5e112451bc90331@mail.gmail.com>
2008-01-05 22:11 ` Junio C Hamano
2008-01-06 4:24 ` Jeff King
2008-01-06 4:29 ` Jeff King
2008-01-06 10:51 ` Junio C Hamano
2008-01-06 11:17 ` Jeff King
2008-01-06 12:32 ` Junio C Hamano
2008-01-06 20:59 ` Jeff King
2008-01-06 21:22 ` Junio C Hamano
2008-01-07 1:48 ` Jeff King
2008-01-07 8:27 ` Junio C Hamano
2008-01-07 21:58 ` Paul Mackerras
2008-01-07 22:05 ` Christian Stimming
2008-01-07 22:14 ` Junio C Hamano
2007-12-17 21:52 ` Steffen Prohaska
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1199131665-1633-1-git-send-email-ddkilzer@kilzer.net \
--to=ddkilzer@kilzer.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=normalperson@yhbt.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).