@@ -18,21 +18,14 @@ case $v in
1818 ;;
1919esac
2020
21- ptouch () {
22- perl -w -e '
23- use strict;
24- use POSIX qw(mktime);
25- die "ptouch requires exactly 2 arguments" if @ARGV != 2;
26- my $text_last_updated = shift @ARGV;
27- my $git_file = shift @ARGV;
28- die "\"$git_file\" does not exist" if ! -e $git_file;
29- if ($text_last_updated
30- =~ /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/) {
31- my $mtime = mktime($6, $5, $4, $3, $2 - 1, $1 - 1900);
32- my $atime = $mtime;
33- utime $atime, $mtime, $git_file;
34- }
35- ' " ` svn_cmd info $2 | grep ' ^Text Last Updated:' ` " " $1 "
21+ # On the "Text Last Updated" line, "git svn info" does not return the
22+ # same value as "svn info" (i.e. the commit timestamp that touched the
23+ # path most recently); do not expect that field to match.
24+ test_cmp_info () {
25+ sed -e ' /^Text Last Updated:/d' " $1 " > tmp.expect
26+ sed -e ' /^Text Last Updated:/d' " $2 " > tmp.actual
27+ test_cmp tmp.expect tmp.actual &&
28+ rm -f tmp.expect tmp.actual
3629}
3730
3831quoted_svnrepo=" $( echo $svnrepo | sed ' s/ /%20/' ) "
@@ -62,17 +55,13 @@ test_expect_success 'setup repository and import' '
6255 cd gitwc &&
6356 git svn init "$svnrepo" &&
6457 git svn fetch
65- ) &&
66- ptouch gitwc/file svnwc/file &&
67- ptouch gitwc/directory svnwc/directory &&
68- ptouch gitwc/symlink-file svnwc/symlink-file &&
69- ptouch gitwc/symlink-directory svnwc/symlink-directory
58+ )
7059 '
7160
7261test_expect_success ' info' "
7362 (cd svnwc; svn info) > expected.info &&
7463 (cd gitwc; git svn info) > actual.info &&
75- test_cmp expected.info actual.info
64+ test_cmp_info expected.info actual.info
7665 "
7766
7867test_expect_success ' info --url' '
@@ -82,7 +71,7 @@ test_expect_success 'info --url' '
8271test_expect_success ' info .' "
8372 (cd svnwc; svn info .) > expected.info-dot &&
8473 (cd gitwc; git svn info .) > actual.info-dot &&
85- test_cmp expected.info-dot actual.info-dot
74+ test_cmp_info expected.info-dot actual.info-dot
8675 "
8776
8877test_expect_success ' info --url .' '
@@ -92,7 +81,7 @@ test_expect_success 'info --url .' '
9281test_expect_success ' info file' "
9382 (cd svnwc; svn info file) > expected.info-file &&
9483 (cd gitwc; git svn info file) > actual.info-file &&
95- test_cmp expected.info-file actual.info-file
84+ test_cmp_info expected.info-file actual.info-file
9685 "
9786
9887test_expect_success ' info --url file' '
@@ -102,13 +91,13 @@ test_expect_success 'info --url file' '
10291test_expect_success ' info directory' "
10392 (cd svnwc; svn info directory) > expected.info-directory &&
10493 (cd gitwc; git svn info directory) > actual.info-directory &&
105- test_cmp expected.info-directory actual.info-directory
94+ test_cmp_info expected.info-directory actual.info-directory
10695 "
10796
10897test_expect_success ' info inside directory' "
10998 (cd svnwc/directory; svn info) > expected.info-inside-directory &&
11099 (cd gitwc/directory; git svn info) > actual.info-inside-directory &&
111- test_cmp expected.info-inside-directory actual.info-inside-directory
100+ test_cmp_info expected.info-inside-directory actual.info-inside-directory
112101 "
113102
114103test_expect_success ' info --url directory' '
@@ -118,7 +107,7 @@ test_expect_success 'info --url directory' '
118107test_expect_success ' info symlink-file' "
119108 (cd svnwc; svn info symlink-file) > expected.info-symlink-file &&
120109 (cd gitwc; git svn info symlink-file) > actual.info-symlink-file &&
121- test_cmp expected.info-symlink-file actual.info-symlink-file
110+ test_cmp_info expected.info-symlink-file actual.info-symlink-file
122111 "
123112
124113test_expect_success ' info --url symlink-file' '
@@ -131,7 +120,7 @@ test_expect_success 'info symlink-directory' "
131120 > expected.info-symlink-directory &&
132121 (cd gitwc; git svn info symlink-directory) \
133122 > actual.info-symlink-directory &&
134- test_cmp expected.info-symlink-directory actual.info-symlink-directory
123+ test_cmp_info expected.info-symlink-directory actual.info-symlink-directory
135124 "
136125
137126test_expect_success ' info --url symlink-directory' '
@@ -146,14 +135,13 @@ test_expect_success 'info added-file' "
146135 git add added-file
147136 ) &&
148137 cp gitwc/added-file svnwc/added-file &&
149- ptouch gitwc/added-file svnwc/added-file &&
150138 (
151139 cd svnwc &&
152140 svn_cmd add added-file > /dev/null
153141 ) &&
154142 (cd svnwc; svn info added-file) > expected.info-added-file &&
155143 (cd gitwc; git svn info added-file) > actual.info-added-file &&
156- test_cmp expected.info-added-file actual.info-added-file
144+ test_cmp_info expected.info-added-file actual.info-added-file
157145 "
158146
159147test_expect_success ' info --url added-file' '
@@ -163,7 +151,6 @@ test_expect_success 'info --url added-file' '
163151
164152test_expect_success ' info added-directory' "
165153 mkdir gitwc/added-directory svnwc/added-directory &&
166- ptouch gitwc/added-directory svnwc/added-directory &&
167154 touch gitwc/added-directory/.placeholder &&
168155 (
169156 cd svnwc &&
@@ -177,7 +164,7 @@ test_expect_success 'info added-directory' "
177164 > expected.info-added-directory &&
178165 (cd gitwc; git svn info added-directory) \
179166 > actual.info-added-directory &&
180- test_cmp expected.info-added-directory actual.info-added-directory
167+ test_cmp_info expected.info-added-directory actual.info-added-directory
181168 "
182169
183170test_expect_success ' info --url added-directory' '
@@ -196,13 +183,12 @@ test_expect_success 'info added-symlink-file' "
196183 ln -s added-file added-symlink-file &&
197184 svn_cmd add added-symlink-file > /dev/null
198185 ) &&
199- ptouch gitwc/added-symlink-file svnwc/added-symlink-file &&
200186 (cd svnwc; svn info added-symlink-file) \
201187 > expected.info-added-symlink-file &&
202188 (cd gitwc; git svn info added-symlink-file) \
203189 > actual.info-added-symlink-file &&
204- test_cmp expected.info-added-symlink-file \
205- actual.info-added-symlink-file
190+ test_cmp_info expected.info-added-symlink-file \
191+ actual.info-added-symlink-file
206192 "
207193
208194test_expect_success ' info --url added-symlink-file' '
@@ -221,25 +207,19 @@ test_expect_success 'info added-symlink-directory' "
221207 ln -s added-directory added-symlink-directory &&
222208 svn_cmd add added-symlink-directory > /dev/null
223209 ) &&
224- ptouch gitwc/added-symlink-directory svnwc/added-symlink-directory &&
225210 (cd svnwc; svn info added-symlink-directory) \
226211 > expected.info-added-symlink-directory &&
227212 (cd gitwc; git svn info added-symlink-directory) \
228213 > actual.info-added-symlink-directory &&
229- test_cmp expected.info-added-symlink-directory \
230- actual.info-added-symlink-directory
214+ test_cmp_info expected.info-added-symlink-directory \
215+ actual.info-added-symlink-directory
231216 "
232217
233218test_expect_success ' info --url added-symlink-directory' '
234219 test "$(cd gitwc; git svn info --url added-symlink-directory)" \
235220 = "$quoted_svnrepo/added-symlink-directory"
236221 '
237222
238- # The next few tests replace the "Text Last Updated" value with a
239- # placeholder since git doesn't have a way to know the date that a
240- # now-deleted file was last checked out locally. Internally it
241- # simply reuses the Last Changed Date.
242-
243223test_expect_success ' info deleted-file' "
244224 (
245225 cd gitwc &&
@@ -249,13 +229,9 @@ test_expect_success 'info deleted-file' "
249229 cd svnwc &&
250230 svn_cmd rm --force file > /dev/null
251231 ) &&
252- (cd svnwc; svn info file) |
253- sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \
254- > expected.info-deleted-file &&
255- (cd gitwc; git svn info file) |
256- sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \
257- > actual.info-deleted-file &&
258- test_cmp expected.info-deleted-file actual.info-deleted-file
232+ (cd svnwc; svn info file) >expected.info-deleted-file &&
233+ (cd gitwc; git svn info file) >actual.info-deleted-file &&
234+ test_cmp_info expected.info-deleted-file actual.info-deleted-file
259235 "
260236
261237test_expect_success ' info --url file (deleted)' '
@@ -272,13 +248,9 @@ test_expect_success 'info deleted-directory' "
272248 cd svnwc &&
273249 svn_cmd rm --force directory > /dev/null
274250 ) &&
275- (cd svnwc; svn info directory) |
276- sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \
277- > expected.info-deleted-directory &&
278- (cd gitwc; git svn info directory) |
279- sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \
280- > actual.info-deleted-directory &&
281- test_cmp expected.info-deleted-directory actual.info-deleted-directory
251+ (cd svnwc; svn info directory) >expected.info-deleted-directory &&
252+ (cd gitwc; git svn info directory) >actual.info-deleted-directory &&
253+ test_cmp_info expected.info-deleted-directory actual.info-deleted-directory
282254 "
283255
284256test_expect_success ' info --url directory (deleted)' '
@@ -295,14 +267,9 @@ test_expect_success 'info deleted-symlink-file' "
295267 cd svnwc &&
296268 svn_cmd rm --force symlink-file > /dev/null
297269 ) &&
298- (cd svnwc; svn info symlink-file) |
299- sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \
300- > expected.info-deleted-symlink-file &&
301- (cd gitwc; git svn info symlink-file) |
302- sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \
303- > actual.info-deleted-symlink-file &&
304- test_cmp expected.info-deleted-symlink-file \
305- actual.info-deleted-symlink-file
270+ (cd svnwc; svn info symlink-file) >expected.info-deleted-symlink-file &&
271+ (cd gitwc; git svn info symlink-file) >actual.info-deleted-symlink-file &&
272+ test_cmp_info expected.info-deleted-symlink-file actual.info-deleted-symlink-file
306273 "
307274
308275test_expect_success ' info --url symlink-file (deleted)' '
@@ -319,14 +286,9 @@ test_expect_success 'info deleted-symlink-directory' "
319286 cd svnwc &&
320287 svn_cmd rm --force symlink-directory > /dev/null
321288 ) &&
322- (cd svnwc; svn info symlink-directory) |
323- sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \
324- > expected.info-deleted-symlink-directory &&
325- (cd gitwc; git svn info symlink-directory) |
326- sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \
327- > actual.info-deleted-symlink-directory &&
328- test_cmp expected.info-deleted-symlink-directory \
329- actual.info-deleted-symlink-directory
289+ (cd svnwc; svn info symlink-directory) >expected.info-deleted-symlink-directory &&
290+ (cd gitwc; git svn info symlink-directory) >actual.info-deleted-symlink-directory &&
291+ test_cmp_info expected.info-deleted-symlink-directory actual.info-deleted-symlink-directory
330292 "
331293
332294test_expect_success ' info --url symlink-directory (deleted)' '
0 commit comments