Skip to content

Commit d84f280

Browse files
committed
Merge branch 'jc/maint-svn-info-test-fix' into maint
* jc/maint-svn-info-test-fix: t9119: do not compare "Text Last Updated" line from "svn info"
2 parents 0bc6180 + ed7158b commit d84f280

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)