##// END OF EJS Templates
largefiles: introduce "_lfcommithooks" to abstract pre-committing procedures...
largefiles: introduce "_lfcommithooks" to abstract pre-committing procedures This changes allows to customize pre-committing procedures according to conditions. This patch uses "stack" with an element instead of flag like "_isXXXXing" or so, because: - the former works correctly even when customizations are nested, and - ensuring at least one element can ignore empty check

File last commit:

r23099:6df4bc39 stable
r23186:6de61d0b default
Show More
test-convert-svn-sink.t
469 lines | 8.6 KiB | text/troff | Tads3Lexer
/ tests / test-convert-svn-sink.t
Matt Mackall
tests: replace exit 80 with #require
r22046 #require svn13
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
$ svnupanddisplay()
> {
> (
> cd $1;
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 > svn up -q;
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 > svn st -v | sed 's/ */ /g' | sort
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 > limit=''
> if [ $2 -gt 0 ]; then
> limit="--limit=$2"
> fi
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 > svn log --xml -v $limit | python "$TESTDIR/svnxml.py"
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 > )
> }
Martin Geisler
tests: don't overwrite HGRCPATH...
r13519 $ cat >> $HGRCPATH <<EOF
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 > [extensions]
Mads Kiilerich
check-code: fix check for trailing whitespace on continued lines too...
r17347 > convert =
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 > EOF
$ hg init a
Add
$ echo a > a/a
$ mkdir -p a/d1/d2
$ echo b > a/d1/d2/b
$ hg --cwd a ci -d '0 0' -A -m 'add a file'
adding a
adding d1/d2/b
Modify
$ "$TESTDIR/svn-safe-append.py" a a/a
$ hg --cwd a ci -d '1 0' -m 'modify a file'
$ hg --cwd a tip -q
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909 1:e0e2b8a9156b
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
$ hg convert -d svn a
assuming destination a-hg
initializing svn repository 'a-hg'
initializing svn working copy 'a-hg-wc'
scanning source...
sorting...
converting...
1 add a file
0 modify a file
$ svnupanddisplay a-hg-wc 2
2 1 test d1
Mads Kiilerich
tests: add missing path globbing for Windows in svn tests
r17044 2 1 test d1/d2 (glob)
2 1 test d1/d2/b (glob)
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 2 2 test .
2 2 test a
revision: 2
author: test
msg: modify a file
M /a
revision: 1
author: test
msg: add a file
A /a
A /d1
A /d1/d2
A /d1/d2/b
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ ls a a-hg-wc
a:
a
d1
a-hg-wc:
a
d1
$ cmp a/a a-hg-wc/a
Rename
$ hg --cwd a mv a b
$ hg --cwd a ci -d '2 0' -m 'rename a file'
$ hg --cwd a tip -q
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909 2:eb5169441d43
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
$ hg convert -d svn a
assuming destination a-hg
initializing svn working copy 'a-hg-wc'
scanning source...
sorting...
converting...
0 rename a file
$ svnupanddisplay a-hg-wc 1
3 1 test d1
Mads Kiilerich
tests: add missing path globbing for Windows in svn tests
r17044 3 1 test d1/d2 (glob)
3 1 test d1/d2/b (glob)
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 3 3 test .
3 3 test b
revision: 3
author: test
msg: rename a file
D /a
A /b (from /a@2)
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ ls a a-hg-wc
a:
b
d1
a-hg-wc:
b
d1
Copy
$ hg --cwd a cp b c
$ hg --cwd a ci -d '3 0' -m 'copy a file'
$ hg --cwd a tip -q
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909 3:60effef6ab48
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
$ hg convert -d svn a
assuming destination a-hg
initializing svn working copy 'a-hg-wc'
scanning source...
sorting...
converting...
0 copy a file
$ svnupanddisplay a-hg-wc 1
4 1 test d1
Mads Kiilerich
tests: add missing path globbing for Windows in svn tests
r17044 4 1 test d1/d2 (glob)
4 1 test d1/d2/b (glob)
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 4 3 test b
4 4 test .
4 4 test c
revision: 4
author: test
msg: copy a file
A /c (from /b@3)
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ ls a a-hg-wc
a:
b
c
d1
a-hg-wc:
b
c
d1
$ hg --cwd a rm b
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243
Remove
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ hg --cwd a ci -d '4 0' -m 'remove a file'
$ hg --cwd a tip -q
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909 4:87bbe3013fb6
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
$ hg convert -d svn a
assuming destination a-hg
initializing svn working copy 'a-hg-wc'
scanning source...
sorting...
converting...
0 remove a file
$ svnupanddisplay a-hg-wc 1
5 1 test d1
Mads Kiilerich
tests: add missing path globbing for Windows in svn tests
r17044 5 1 test d1/d2 (glob)
5 1 test d1/d2/b (glob)
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 5 4 test c
5 5 test .
revision: 5
author: test
msg: remove a file
D /b
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ ls a a-hg-wc
a:
c
d1
a-hg-wc:
c
d1
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 Executable
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #if execbit
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ chmod +x a/c
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #else
$ echo fake >> a/c
#endif
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ hg --cwd a ci -d '5 0' -m 'make a file executable'
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #if execbit
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ hg --cwd a tip -q
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909 5:ff42e473c340
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #else
$ hg --cwd a tip -q
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909 5:817a700c8cf1
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #endif
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
$ hg convert -d svn a
assuming destination a-hg
initializing svn working copy 'a-hg-wc'
scanning source...
sorting...
converting...
0 make a file executable
$ svnupanddisplay a-hg-wc 1
6 1 test d1
Mads Kiilerich
tests: add missing path globbing for Windows in svn tests
r17044 6 1 test d1/d2 (glob)
6 1 test d1/d2/b (glob)
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 6 6 test .
6 6 test c
revision: 6
author: test
msg: make a file executable
M /c
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #if execbit
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ test -x a-hg-wc/c
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #endif
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909
#if symlink
Symlinks
$ ln -s a/missing a/link
$ hg --cwd a commit -Am 'add symlink'
adding link
$ hg --cwd a mv link newlink
$ hg --cwd a commit -m 'move symlink'
Matt Mackall
test-convert-svn-sink: properly isolate symlink section...
r23098 $ hg convert -d svn a a-svnlink
initializing svn repository 'a-svnlink'
initializing svn working copy 'a-svnlink-wc'
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909 scanning source...
sorting...
converting...
Matt Mackall
test-convert-svn-sink: properly isolate symlink section...
r23098 7 add a file
6 modify a file
5 rename a file
4 copy a file
3 remove a file
2 make a file executable
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909 1 add symlink
0 move symlink
Matt Mackall
test-convert-svn-sink: properly isolate symlink section...
r23098 $ svnupanddisplay a-svnlink-wc 1
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909 8 1 test d1
8 1 test d1/d2
8 1 test d1/d2/b
8 6 test c
8 8 test .
8 8 test newlink
revision: 8
author: test
msg: move symlink
D /link
A /newlink (from /link@7)
Matt Mackall
test-convert-svn-sink: properly isolate symlink section...
r23098 Make sure our changes don't affect the rest of the test cases
$ hg --cwd a up 5
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg --cwd a --config extensions.strip= strip -r 6
Matt Mackall
tests: add missing glob for Windows
r23099 saved backup bundle to $TESTTMP/a/.hg/strip-backup/bd4f7b7a7067-backup.hg (glob)
Matt Mackall
test-convert-svn-sink: properly isolate symlink section...
r23098
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909 #endif
Mads Kiilerich
convert: introduce --full for converting all files...
r22300 Convert with --full adds and removes files that didn't change
$ touch a/f
$ hg -R a ci -Aqmf
$ echo "rename c d" > filemap
$ hg convert -d svn a --filemap filemap --full
assuming destination a-hg
initializing svn working copy 'a-hg-wc'
scanning source...
sorting...
converting...
0 f
$ svnupanddisplay a-hg-wc 1
Matt Mackall
test-convert-svn-sink: properly isolate symlink section...
r23098 7 7 test .
7 7 test d
7 7 test f
revision: 7
Mads Kiilerich
convert: introduce --full for converting all files...
r22300 author: test
msg: f
D /c
A /d
D /d1
A /f
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 $ rm -rf a a-hg a-hg-wc
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 Executable in new directory
$ hg init a
$ mkdir a/d1
$ echo a > a/d1/a
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #if execbit
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ chmod +x a/d1/a
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #else
$ echo fake >> a/d1/a
#endif
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ hg --cwd a ci -d '0 0' -A -m 'add executable file in new directory'
adding d1/a
$ hg convert -d svn a
assuming destination a-hg
initializing svn repository 'a-hg'
initializing svn working copy 'a-hg-wc'
scanning source...
sorting...
converting...
0 add executable file in new directory
$ svnupanddisplay a-hg-wc 1
1 1 test .
1 1 test d1
Mads Kiilerich
tests: add missing path globbing for Windows in svn tests
r17044 1 1 test d1/a (glob)
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 revision: 1
author: test
msg: add executable file in new directory
A /d1
A /d1/a
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #if execbit
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ test -x a-hg-wc/d1/a
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #endif
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
Copy to new directory
$ mkdir a/d2
$ hg --cwd a cp d1/a d2/a
$ hg --cwd a ci -d '1 0' -A -m 'copy file to new directory'
$ hg convert -d svn a
assuming destination a-hg
initializing svn working copy 'a-hg-wc'
scanning source...
sorting...
converting...
0 copy file to new directory
$ svnupanddisplay a-hg-wc 1
2 1 test d1
Mads Kiilerich
tests: add missing path globbing for Windows in svn tests
r17044 2 1 test d1/a (glob)
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 2 2 test .
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 2 2 test d2
Mads Kiilerich
tests: add missing path globbing for Windows in svn tests
r17044 2 2 test d2/a (glob)
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 revision: 2
author: test
msg: copy file to new directory
A /d2
A /d2/a (from /d1/a@1)
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
Branchy history
$ hg init b
$ echo base > b/b
$ hg --cwd b ci -d '0 0' -Ambase
adding b
$ "$TESTDIR/svn-safe-append.py" left-1 b/b
$ echo left-1 > b/left-1
$ hg --cwd b ci -d '1 0' -Amleft-1
adding left-1
$ "$TESTDIR/svn-safe-append.py" left-2 b/b
$ echo left-2 > b/left-2
$ hg --cwd b ci -d '2 0' -Amleft-2
adding left-2
$ hg --cwd b up 0
1 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ "$TESTDIR/svn-safe-append.py" right-1 b/b
$ echo right-1 > b/right-1
$ hg --cwd b ci -d '3 0' -Amright-1
adding right-1
created new head
$ "$TESTDIR/svn-safe-append.py" right-2 b/b
$ echo right-2 > b/right-2
$ hg --cwd b ci -d '4 0' -Amright-2
adding right-2
$ hg --cwd b up -C 2
3 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ hg --cwd b merge
merging b
warning: conflicts during merge.
Matt Mackall
merge: give a special message for internal:merge failure (issue3105)
r15501 merging b incomplete! (edit conflicts, then use 'hg resolve --mark')
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 2 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
$ hg --cwd b revert -r 2 b
Mads Kiilerich
tests: convert some 'hghave no-outer-repo' to #if...
r17014 $ hg --cwd b resolve -m b
Pierre-Yves David
resolve: add parenthesis around "no more unresolved files" message...
r21947 (no more unresolved files)
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ hg --cwd b ci -d '5 0' -m 'merge'
Expect 4 changes
$ hg convert -d svn b
assuming destination b-hg
initializing svn repository 'b-hg'
initializing svn working copy 'b-hg-wc'
scanning source...
sorting...
converting...
5 base
4 left-1
3 left-2
2 right-1
1 right-2
0 merge
$ svnupanddisplay b-hg-wc 0
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 4 2 test left-1
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 4 3 test b
4 3 test left-2
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 4 4 test .
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 4 4 test right-1
4 4 test right-2
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 revision: 4
author: test
msg: merge
A /right-1
A /right-2
revision: 3
author: test
msg: left-2
M /b
A /left-2
revision: 2
author: test
msg: left-1
M /b
A /left-1
revision: 1
author: test
msg: base
A /b
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
Tags are not supported, but must not break conversion
$ rm -rf a a-hg a-hg-wc
$ hg init a
$ echo a > a/a
$ hg --cwd a ci -d '0 0' -A -m 'Add file a'
adding a
$ hg --cwd a tag -d '1 0' -m 'Tagged as v1.0' v1.0
$ hg convert -d svn a
assuming destination a-hg
initializing svn repository 'a-hg'
initializing svn working copy 'a-hg-wc'
scanning source...
sorting...
converting...
1 Add file a
0 Tagged as v1.0
writing Subversion tags is not yet implemented
$ svnupanddisplay a-hg-wc 2
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 2 1 test a
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 2 2 test .
2 2 test .hgtags
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 revision: 2
author: test
msg: Tagged as v1.0
A /.hgtags
revision: 1
author: test
msg: Add file a
A /a
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ rm -rf a a-hg a-hg-wc