Fix race condition in t9119-git-svn-info.sh
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. [ew: swapped argument order of ptouch() to minimize diff] From: David D. Kilzer <ddkilzer@kilzer.net> Signed-off-by: David D. Kilzer <ddkilzer@kilzer.net> Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
bd2d4f96b3
commit
d9042a0ac4
@ -11,11 +11,18 @@ test_done
|
|||||||
ptouch() {
|
ptouch() {
|
||||||
perl -w -e '
|
perl -w -e '
|
||||||
use strict;
|
use strict;
|
||||||
|
use POSIX qw(mktime);
|
||||||
die "ptouch requires exactly 2 arguments" if @ARGV != 2;
|
die "ptouch requires exactly 2 arguments" if @ARGV != 2;
|
||||||
die "$ARGV[0] does not exist" if ! -e $ARGV[0];
|
my $text_last_updated = shift @ARGV;
|
||||||
my @s = stat $ARGV[0];
|
my $git_file = shift @ARGV;
|
||||||
utime $s[8], $s[9], $ARGV[1];
|
die "\"$git_file\" does not exist" if ! -e $git_file;
|
||||||
' "$1" "$2"
|
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 $2 | grep '^Text Last Updated:'`" "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
test_expect_success 'setup repository and import' "
|
test_expect_success 'setup repository and import' "
|
||||||
|
Loading…
Reference in New Issue
Block a user