Skip to content

Commit ed7158b

Browse files
committed
t9119: do not compare "Text Last Updated" line from "svn info"
On the "Text Last Updated" line, "git svn info <file>" does not give the timestamp of the commit that touched the path most recently, unlike "svn info <file>". Do not expect the output from two commands to match on these lines. There was a "ptouch" attempt to transplant the timestamp from svn working tree files to corresponding git working tree files, which mostly hid this difference, but is made pointless now with this change. Remove the helper function and calls to it. Signed-off-by: Junio C Hamano <[email protected]>
1 parent 87b5054 commit ed7158b

File tree

1 file changed

+34
-72
lines changed

1 file changed

+34
-72
lines changed

t/t9119-git-svn-info.sh

Lines changed: 34 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,14 @@ case $v in
1818
;;
1919
esac
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

3831
quoted_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

7261
test_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

7867
test_expect_success 'info --url' '
@@ -82,7 +71,7 @@ test_expect_success 'info --url' '
8271
test_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

8877
test_expect_success 'info --url .' '
@@ -92,7 +81,7 @@ test_expect_success 'info --url .' '
9281
test_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

9887
test_expect_success 'info --url file' '
@@ -102,13 +91,13 @@ test_expect_success 'info --url file' '
10291
test_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

10897
test_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

114103
test_expect_success 'info --url directory' '
@@ -118,7 +107,7 @@ test_expect_success 'info --url directory' '
118107
test_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

124113
test_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

137126
test_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

159147
test_expect_success 'info --url added-file' '
@@ -163,7 +151,6 @@ test_expect_success 'info --url added-file' '
163151

164152
test_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

183170
test_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

208194
test_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

233218
test_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-
243223
test_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

261237
test_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

284256
test_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

308275
test_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

332294
test_expect_success 'info --url symlink-directory (deleted)' '

0 commit comments

Comments
 (0)