##// END OF EJS Templates
tests: no need to explicitly export HOME in test files...
Idan Kamara -
r13765:7fc79055 default
parent child Browse files
Show More
@@ -1,83 +1,79
1 #!/bin/sh
1 #!/bin/sh
2
2
3 "$TESTDIR/hghave" baz || exit 80
3 "$TESTDIR/hghave" baz || exit 80
4
4
5 mkdir do_not_use_HOME_baz
6 cd do_not_use_HOME_baz
7 HOME=`pwd`; export HOME
8 cd ..
9 baz my-id "mercurial <mercurial@selenic.com>"
5 baz my-id "mercurial <mercurial@selenic.com>"
10
6
11 echo "[extensions]" >> $HGRCPATH
7 echo "[extensions]" >> $HGRCPATH
12 echo "convert=" >> $HGRCPATH
8 echo "convert=" >> $HGRCPATH
13 echo 'graphlog =' >> $HGRCPATH
9 echo 'graphlog =' >> $HGRCPATH
14
10
15 echo % create baz archive
11 echo % create baz archive
16 baz make-archive baz@mercurial--convert hg-test-convert-baz
12 baz make-archive baz@mercurial--convert hg-test-convert-baz
17
13
18 echo % initialize baz repo
14 echo % initialize baz repo
19 mkdir baz-repo
15 mkdir baz-repo
20 cd baz-repo/
16 cd baz-repo/
21 baz init-tree baz@mercurial--convert/baz--test--0
17 baz init-tree baz@mercurial--convert/baz--test--0
22 baz import
18 baz import
23
19
24 echo % create initial files
20 echo % create initial files
25 echo 'this is a file' > a
21 echo 'this is a file' > a
26 baz add a
22 baz add a
27 mkdir src
23 mkdir src
28 baz add src
24 baz add src
29 cd src
25 cd src
30 dd count=1 if=/dev/zero of=b > /dev/null 2> /dev/null
26 dd count=1 if=/dev/zero of=b > /dev/null 2> /dev/null
31 baz add b
27 baz add b
32 # HACK: hide GNU tar-1.22 "tar: The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
28 # HACK: hide GNU tar-1.22 "tar: The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
33 baz commit -s "added a file, src and src/b (binary)" 2>&1 | grep -v '^tar'
29 baz commit -s "added a file, src and src/b (binary)" 2>&1 | grep -v '^tar'
34
30
35 echo % create link file and modify a
31 echo % create link file and modify a
36 ln -s ../a a-link
32 ln -s ../a a-link
37 baz add a-link
33 baz add a-link
38 echo 'this a modification to a' >> ../a
34 echo 'this a modification to a' >> ../a
39 baz commit -s "added link to a and modify a"
35 baz commit -s "added link to a and modify a"
40
36
41 echo % create second link and modify b
37 echo % create second link and modify b
42 ln -s ../a a-link-2
38 ln -s ../a a-link-2
43 baz add a-link-2
39 baz add a-link-2
44 dd count=1 seek=1 if=/dev/zero of=b > /dev/null 2> /dev/null
40 dd count=1 seek=1 if=/dev/zero of=b > /dev/null 2> /dev/null
45 baz commit -s "added second link and modify b"
41 baz commit -s "added second link and modify b"
46
42
47 echo % b file to link and a-link-2 to regular file
43 echo % b file to link and a-link-2 to regular file
48 rm -f a-link-2
44 rm -f a-link-2
49 echo 'this is now a regular file' > a-link-2
45 echo 'this is now a regular file' > a-link-2
50 ln -sf ../a b
46 ln -sf ../a b
51 baz commit -s "file to link and link to file test"
47 baz commit -s "file to link and link to file test"
52
48
53 echo % move a-link-2 file and src directory
49 echo % move a-link-2 file and src directory
54 cd ..
50 cd ..
55 baz mv src/a-link-2 c
51 baz mv src/a-link-2 c
56 baz mv src test
52 baz mv src test
57 baz commit -s "move and rename a-link-2 file and src directory"
53 baz commit -s "move and rename a-link-2 file and src directory"
58
54
59 echo % move and add the moved file again
55 echo % move and add the moved file again
60 echo e > e
56 echo e > e
61 baz add e
57 baz add e
62 baz commit -s "add e"
58 baz commit -s "add e"
63 baz mv e f
59 baz mv e f
64 echo ee > e
60 echo ee > e
65 baz add e
61 baz add e
66 baz commit -s "move e and recreate it again"
62 baz commit -s "move e and recreate it again"
67 cd ..
63 cd ..
68
64
69 echo % converting baz repo to Mercurial
65 echo % converting baz repo to Mercurial
70 hg convert baz-repo baz-repo-hg
66 hg convert baz-repo baz-repo-hg
71
67
72 baz register-archive -d baz@mercurial--convert
68 baz register-archive -d baz@mercurial--convert
73
69
74 glog()
70 glog()
75 {
71 {
76 hg glog --template '{rev} "{desc|firstline}" files: {files}\n' "$@"
72 hg glog --template '{rev} "{desc|firstline}" files: {files}\n' "$@"
77 }
73 }
78
74
79 echo % show graph log
75 echo % show graph log
80 glog -R baz-repo-hg
76 glog -R baz-repo-hg
81 hg up -q -R baz-repo-hg
77 hg up -q -R baz-repo-hg
82 hg -R baz-repo-hg manifest --debug
78 hg -R baz-repo-hg manifest --debug
83 hg -R baz-repo-hg log -r 5 -r 7 -C --debug | grep copies
79 hg -R baz-repo-hg log -r 5 -r 7 -C --debug | grep copies
@@ -1,144 +1,143
1
1
2 $ "$TESTDIR/hghave" darcs || exit 80
2 $ "$TESTDIR/hghave" darcs || exit 80
3 $ echo "[extensions]" >> $HGRCPATH
3 $ echo "[extensions]" >> $HGRCPATH
4 $ echo "convert=" >> $HGRCPATH
4 $ echo "convert=" >> $HGRCPATH
5 $ echo 'graphlog =' >> $HGRCPATH
5 $ echo 'graphlog =' >> $HGRCPATH
6 $ DARCS_EMAIL='test@example.org'; export DARCS_EMAIL
6 $ DARCS_EMAIL='test@example.org'; export DARCS_EMAIL
7 $ HOME=`pwd`/do_not_use_HOME_darcs; export HOME
8
7
9 skip if we can't import elementtree
8 skip if we can't import elementtree
10
9
11 $ mkdir dummy
10 $ mkdir dummy
12 $ mkdir dummy/_darcs
11 $ mkdir dummy/_darcs
13 $ if hg convert dummy 2>&1 | grep ElementTree > /dev/null; then
12 $ if hg convert dummy 2>&1 | grep ElementTree > /dev/null; then
14 > echo 'skipped: missing feature: elementtree module'
13 > echo 'skipped: missing feature: elementtree module'
15 > exit 80
14 > exit 80
16 > fi
15 > fi
17
16
18 try converting darcs1 repository
17 try converting darcs1 repository
19
18
20 $ hg clone -q "$TESTDIR/darcs1.hg" darcs
19 $ hg clone -q "$TESTDIR/darcs1.hg" darcs
21 $ hg convert -s darcs darcs/darcs1 2>&1 | grep darcs-1.0
20 $ hg convert -s darcs darcs/darcs1 2>&1 | grep darcs-1.0
22 darcs-1.0 repository format is unsupported, please upgrade
21 darcs-1.0 repository format is unsupported, please upgrade
23
22
24 initialize darcs repo
23 initialize darcs repo
25
24
26 $ mkdir darcs-repo
25 $ mkdir darcs-repo
27 $ cd darcs-repo
26 $ cd darcs-repo
28 $ darcs init
27 $ darcs init
29 $ echo a > a
28 $ echo a > a
30 $ darcs record -a -l -m p0
29 $ darcs record -a -l -m p0
31 Finished recording patch 'p0'
30 Finished recording patch 'p0'
32 $ cd ..
31 $ cd ..
33
32
34 branch and update
33 branch and update
35
34
36 $ darcs get darcs-repo darcs-clone >/dev/null
35 $ darcs get darcs-repo darcs-clone >/dev/null
37 $ cd darcs-clone
36 $ cd darcs-clone
38 $ echo c >> a
37 $ echo c >> a
39 $ echo c > c
38 $ echo c > c
40 $ darcs record -a -l -m p1.1
39 $ darcs record -a -l -m p1.1
41 Finished recording patch 'p1.1'
40 Finished recording patch 'p1.1'
42 $ cd ..
41 $ cd ..
43
42
44 update source
43 update source
45
44
46 $ cd darcs-repo
45 $ cd darcs-repo
47 $ echo b >> a
46 $ echo b >> a
48 $ echo b > b
47 $ echo b > b
49 $ darcs record -a -l -m p1.2
48 $ darcs record -a -l -m p1.2
50 Finished recording patch 'p1.2'
49 Finished recording patch 'p1.2'
51
50
52 $ darcs pull -a ../darcs-clone
51 $ darcs pull -a ../darcs-clone
53 Backing up ./a(-darcs-backup0)
52 Backing up ./a(-darcs-backup0)
54 We have conflicts in the following files:
53 We have conflicts in the following files:
55 ./a
54 ./a
56 Finished pulling and applying.
55 Finished pulling and applying.
57 $ sleep 1
56 $ sleep 1
58 $ echo e > a
57 $ echo e > a
59 $ echo f > f
58 $ echo f > f
60 $ mkdir dir
59 $ mkdir dir
61 $ echo d > dir/d
60 $ echo d > dir/d
62 $ echo d > dir/d2
61 $ echo d > dir/d2
63 $ darcs record -a -l -m p2
62 $ darcs record -a -l -m p2
64 Finished recording patch 'p2'
63 Finished recording patch 'p2'
65
64
66 test file and directory move
65 test file and directory move
67
66
68 $ darcs mv f ff
67 $ darcs mv f ff
69
68
70 Test remove + move
69 Test remove + move
71
70
72 $ darcs remove dir/d2
71 $ darcs remove dir/d2
73 $ rm dir/d2
72 $ rm dir/d2
74 $ darcs mv dir dir2
73 $ darcs mv dir dir2
75 $ darcs record -a -l -m p3
74 $ darcs record -a -l -m p3
76 Finished recording patch 'p3'
75 Finished recording patch 'p3'
77
76
78 test utf-8 commit message and author
77 test utf-8 commit message and author
79
78
80 $ echo g > g
79 $ echo g > g
81
80
82 darcs is encoding agnostic, so it takes whatever bytes it's given
81 darcs is encoding agnostic, so it takes whatever bytes it's given
83
82
84 $ darcs record -a -l -m 'p4: desc Γ±' -A 'author Γ±'
83 $ darcs record -a -l -m 'p4: desc Γ±' -A 'author Γ±'
85 Finished recording patch 'p4: desc \xc3\xb1' (esc)
84 Finished recording patch 'p4: desc \xc3\xb1' (esc)
86
85
87 Test latin-1 commit message
86 Test latin-1 commit message
88
87
89 $ echo h > h
88 $ echo h > h
90 $ printf "p5: desc " > ../p5
89 $ printf "p5: desc " > ../p5
91 $ python -c 'print "".join([chr(i) for i in range(128, 256)])' >> ../p5
90 $ python -c 'print "".join([chr(i) for i in range(128, 256)])' >> ../p5
92 $ darcs record -a -l --logfile ../p5
91 $ darcs record -a -l --logfile ../p5
93 Finished recording patch 'p5: desc \x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff' (esc)
92 Finished recording patch 'p5: desc \x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff' (esc)
94
93
95 $ glog()
94 $ glog()
96 > {
95 > {
97 > HGENCODING=utf-8 hg glog --template '{rev} "{desc|firstline}" ({author}) files: {files}\n' "$@"
96 > HGENCODING=utf-8 hg glog --template '{rev} "{desc|firstline}" ({author}) files: {files}\n' "$@"
98 > }
97 > }
99 $ cd ..
98 $ cd ..
100 $ hg convert darcs-repo darcs-repo-hg
99 $ hg convert darcs-repo darcs-repo-hg
101 initializing destination darcs-repo-hg repository
100 initializing destination darcs-repo-hg repository
102 scanning source...
101 scanning source...
103 sorting...
102 sorting...
104 converting...
103 converting...
105 6 p0
104 6 p0
106 5 p1.2
105 5 p1.2
107 4 p1.1
106 4 p1.1
108 3 p2
107 3 p2
109 2 p3
108 2 p3
110 1 p4: desc ?
109 1 p4: desc ?
111 0 p5: desc ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
110 0 p5: desc ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
112
111
113 The converter does not currently handle patch conflicts very well.
112 The converter does not currently handle patch conflicts very well.
114 When they occur, it reverts *all* changes and moves forward,
113 When they occur, it reverts *all* changes and moves forward,
115 letting the conflict resolving patch fix collisions.
114 letting the conflict resolving patch fix collisions.
116 Unfortunately, non-conflicting changes, like the addition of the
115 Unfortunately, non-conflicting changes, like the addition of the
117 "c" file in p1.1 patch are reverted too.
116 "c" file in p1.1 patch are reverted too.
118 Just to say that manifest not listing "c" here is a bug.
117 Just to say that manifest not listing "c" here is a bug.
119
118
120 $ HGENCODING=latin-1 glog -R darcs-repo-hg -r 6
119 $ HGENCODING=latin-1 glog -R darcs-repo-hg -r 6
121 o 6 "p5: desc \xc2\x80\xc2\x81\xc2\x82\xc2\x83\xc2\x84\xc2\x85\xc2\x86\xc2\x87\xc2\x88\xc2\x89\xc2\x8a\xc2\x8b\xc2\x8c\xc2\x8d\xc2\x8e\xc2\x8f\xc2\x90\xc2\x91\xc2\x92\xc2\x93\xc2\x94\xc2\x95\xc2\x96\xc2\x97\xc2\x98\xc2\x99\xc2\x9a\xc2\x9b\xc2\x9c\xc2\x9d\xc2\x9e\xc2\x9f\xc2\xa0\xc2\xa1\xc2\xa2\xc2\xa3\xc2\xa4\xc2\xa5\xc2\xa6\xc2\xa7\xc2\xa8\xc2\xa9\xc2\xaa\xc2\xab\xc2\xac\xc2\xad\xc2\xae\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3\xc2\xb4\xc2\xb5\xc2\xb6\xc2\xb7\xc2\xb8\xc2\xb9\xc2\xba\xc2\xbb\xc2\xbc\xc2\xbd\xc2\xbe\xc2\xbf\xc3\x80\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85\xc3\x86\xc3\x87\xc3\x88\xc3\x89\xc3\x8a\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\xc3\x90\xc3\x91\xc3\x92\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x97\xc3\x98\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\xc3\x9d\xc3\x9e\xc3\x9f\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\xc3\xac\xc3\xad\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\xc3\xb5\xc3\xb6\xc3\xb7\xc3\xb8\xc3\xb9\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf" (test@example.org) files: h (esc)
120 o 6 "p5: desc \xc2\x80\xc2\x81\xc2\x82\xc2\x83\xc2\x84\xc2\x85\xc2\x86\xc2\x87\xc2\x88\xc2\x89\xc2\x8a\xc2\x8b\xc2\x8c\xc2\x8d\xc2\x8e\xc2\x8f\xc2\x90\xc2\x91\xc2\x92\xc2\x93\xc2\x94\xc2\x95\xc2\x96\xc2\x97\xc2\x98\xc2\x99\xc2\x9a\xc2\x9b\xc2\x9c\xc2\x9d\xc2\x9e\xc2\x9f\xc2\xa0\xc2\xa1\xc2\xa2\xc2\xa3\xc2\xa4\xc2\xa5\xc2\xa6\xc2\xa7\xc2\xa8\xc2\xa9\xc2\xaa\xc2\xab\xc2\xac\xc2\xad\xc2\xae\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3\xc2\xb4\xc2\xb5\xc2\xb6\xc2\xb7\xc2\xb8\xc2\xb9\xc2\xba\xc2\xbb\xc2\xbc\xc2\xbd\xc2\xbe\xc2\xbf\xc3\x80\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85\xc3\x86\xc3\x87\xc3\x88\xc3\x89\xc3\x8a\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\xc3\x90\xc3\x91\xc3\x92\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x97\xc3\x98\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\xc3\x9d\xc3\x9e\xc3\x9f\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\xc3\xac\xc3\xad\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\xc3\xb5\xc3\xb6\xc3\xb7\xc3\xb8\xc3\xb9\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf" (test@example.org) files: h (esc)
122 |
121 |
123 $ HGENCODING=utf-8 glog -R darcs-repo-hg -r 0:5
122 $ HGENCODING=utf-8 glog -R darcs-repo-hg -r 0:5
124 o 5 "p4: desc \xc3\xb1" (author \xc3\xb1) files: g (esc)
123 o 5 "p4: desc \xc3\xb1" (author \xc3\xb1) files: g (esc)
125 |
124 |
126 o 4 "p3" (test@example.org) files: dir/d dir/d2 dir2/d f ff
125 o 4 "p3" (test@example.org) files: dir/d dir/d2 dir2/d f ff
127 |
126 |
128 o 3 "p2" (test@example.org) files: a dir/d dir/d2 f
127 o 3 "p2" (test@example.org) files: a dir/d dir/d2 f
129 |
128 |
130 o 2 "p1.1" (test@example.org) files:
129 o 2 "p1.1" (test@example.org) files:
131 |
130 |
132 o 1 "p1.2" (test@example.org) files: a b
131 o 1 "p1.2" (test@example.org) files: a b
133 |
132 |
134 o 0 "p0" (test@example.org) files: a
133 o 0 "p0" (test@example.org) files: a
135
134
136
135
137 $ hg up -q -R darcs-repo-hg
136 $ hg up -q -R darcs-repo-hg
138 $ hg -R darcs-repo-hg manifest --debug
137 $ hg -R darcs-repo-hg manifest --debug
139 7225b30cdf38257d5cc7780772c051b6f33e6d6b 644 a
138 7225b30cdf38257d5cc7780772c051b6f33e6d6b 644 a
140 1e88685f5ddec574a34c70af492f95b6debc8741 644 b
139 1e88685f5ddec574a34c70af492f95b6debc8741 644 b
141 37406831adc447ec2385014019599dfec953c806 644 dir2/d
140 37406831adc447ec2385014019599dfec953c806 644 dir2/d
142 b783a337463792a5c7d548ad85a7d3253c16ba8c 644 ff
141 b783a337463792a5c7d548ad85a7d3253c16ba8c 644 ff
143 0973eb1b2ecc4de7fafe7447ce1b7462108b4848 644 g
142 0973eb1b2ecc4de7fafe7447ce1b7462108b4848 644 g
144 fe6f8b4f507fe3eb524c527192a84920a4288dac 644 h
143 fe6f8b4f507fe3eb524c527192a84920a4288dac 644 h
@@ -1,358 +1,357
1
1
2 $ "$TESTDIR/hghave" mtn || exit 80
2 $ "$TESTDIR/hghave" mtn || exit 80
3
3
4 Monotone directory is called .monotone on *nix and monotone
4 Monotone directory is called .monotone on *nix and monotone
5 on Windows. Having a variable here ease test patching.
5 on Windows. Having a variable here ease test patching.
6
6
7 $ mtndir=.monotone
7 $ mtndir=.monotone
8 $ echo "[extensions]" >> $HGRCPATH
8 $ echo "[extensions]" >> $HGRCPATH
9 $ echo "convert=" >> $HGRCPATH
9 $ echo "convert=" >> $HGRCPATH
10 $ echo 'graphlog =' >> $HGRCPATH
10 $ echo 'graphlog =' >> $HGRCPATH
11 $ HOME=`pwd`/do_not_use_HOME_mtn; export HOME
12
11
13 Windows version of monotone home
12 Windows version of monotone home
14
13
15 $ APPDATA=$HOME; export APPDATA
14 $ APPDATA=$HOME; export APPDATA
16
15
17 tedious monotone keys configuration
16 tedious monotone keys configuration
18 The /dev/null redirection is necessary under Windows, or
17 The /dev/null redirection is necessary under Windows, or
19 it complains about home directory permissions
18 it complains about home directory permissions
20
19
21 $ mtn --quiet genkey test@selenic.com 1>/dev/null 2>&1 <<EOF
20 $ mtn --quiet genkey test@selenic.com 1>/dev/null 2>&1 <<EOF
22 > passphrase
21 > passphrase
23 > passphrase
22 > passphrase
24 > EOF
23 > EOF
25 $ cat >> $HOME/$mtndir/monotonerc <<EOF
24 $ cat >> $HOME/$mtndir/monotonerc <<EOF
26 > function get_passphrase(keypair_id)
25 > function get_passphrase(keypair_id)
27 > return "passphrase"
26 > return "passphrase"
28 > end
27 > end
29 > EOF
28 > EOF
30
29
31 create monotone repository
30 create monotone repository
32
31
33 $ mtn db init --db=repo.mtn
32 $ mtn db init --db=repo.mtn
34 $ mtn --db=repo.mtn --branch=com.selenic.test setup workingdir
33 $ mtn --db=repo.mtn --branch=com.selenic.test setup workingdir
35 $ cd workingdir
34 $ cd workingdir
36 $ echo a > a
35 $ echo a > a
37 $ mkdir dir
36 $ mkdir dir
38 $ echo b > dir/b
37 $ echo b > dir/b
39 $ echo d > dir/d
38 $ echo d > dir/d
40 $ python -c 'file("bin", "wb").write("a\\x00b")'
39 $ python -c 'file("bin", "wb").write("a\\x00b")'
41 $ echo c > c
40 $ echo c > c
42 $ mtn add a dir/b dir/d c bin
41 $ mtn add a dir/b dir/d c bin
43 mtn: adding a to workspace manifest
42 mtn: adding a to workspace manifest
44 mtn: adding bin to workspace manifest
43 mtn: adding bin to workspace manifest
45 mtn: adding c to workspace manifest
44 mtn: adding c to workspace manifest
46 mtn: adding dir to workspace manifest
45 mtn: adding dir to workspace manifest
47 mtn: adding dir/b to workspace manifest
46 mtn: adding dir/b to workspace manifest
48 mtn: adding dir/d to workspace manifest
47 mtn: adding dir/d to workspace manifest
49 $ mtn ci -m initialize
48 $ mtn ci -m initialize
50 mtn: beginning commit on branch 'com.selenic.test'
49 mtn: beginning commit on branch 'com.selenic.test'
51 mtn: committed revision 0f6e5e4f2e7d2a8ef312408f57618abf026afd90
50 mtn: committed revision 0f6e5e4f2e7d2a8ef312408f57618abf026afd90
52
51
53 update monotone working directory
52 update monotone working directory
54
53
55 $ mtn mv a dir/a
54 $ mtn mv a dir/a
56 mtn: skipping dir, already accounted for in workspace
55 mtn: skipping dir, already accounted for in workspace
57 mtn: renaming a to dir/a in workspace manifest
56 mtn: renaming a to dir/a in workspace manifest
58 $ echo a >> dir/a
57 $ echo a >> dir/a
59 $ echo b >> dir/b
58 $ echo b >> dir/b
60 $ mtn drop c
59 $ mtn drop c
61 mtn: dropping c from workspace manifest
60 mtn: dropping c from workspace manifest
62 $ python -c 'file("bin", "wb").write("b\\x00c")'
61 $ python -c 'file("bin", "wb").write("b\\x00c")'
63 $ mtn ci -m update1
62 $ mtn ci -m update1
64 mtn: beginning commit on branch 'com.selenic.test'
63 mtn: beginning commit on branch 'com.selenic.test'
65 mtn: committed revision 51d0a982464573a2a2cf5ee2c9219c652aaebeff
64 mtn: committed revision 51d0a982464573a2a2cf5ee2c9219c652aaebeff
66 $ cd ..
65 $ cd ..
67
66
68 convert once
67 convert once
69
68
70 $ hg convert -s mtn repo.mtn
69 $ hg convert -s mtn repo.mtn
71 assuming destination repo.mtn-hg
70 assuming destination repo.mtn-hg
72 initializing destination repo.mtn-hg repository
71 initializing destination repo.mtn-hg repository
73 scanning source...
72 scanning source...
74 sorting...
73 sorting...
75 converting...
74 converting...
76 1 initialize
75 1 initialize
77 0 update1
76 0 update1
78 $ cd workingdir
77 $ cd workingdir
79 $ echo e > e
78 $ echo e > e
80 $ mtn add e
79 $ mtn add e
81 mtn: adding e to workspace manifest
80 mtn: adding e to workspace manifest
82 $ mtn drop dir/b
81 $ mtn drop dir/b
83 mtn: dropping dir/b from workspace manifest
82 mtn: dropping dir/b from workspace manifest
84 $ mtn mv bin bin2
83 $ mtn mv bin bin2
85 mtn: renaming bin to bin2 in workspace manifest
84 mtn: renaming bin to bin2 in workspace manifest
86 $ mtn ci -m 'update2 "with" quotes'
85 $ mtn ci -m 'update2 "with" quotes'
87 mtn: beginning commit on branch 'com.selenic.test'
86 mtn: beginning commit on branch 'com.selenic.test'
88 mtn: committed revision ebe58335d85d8cb176b6d0a12be04f5314b998da
87 mtn: committed revision ebe58335d85d8cb176b6d0a12be04f5314b998da
89
88
90 test directory move
89 test directory move
91
90
92 $ mkdir -p dir1/subdir1
91 $ mkdir -p dir1/subdir1
93 $ mkdir -p dir1/subdir2_other
92 $ mkdir -p dir1/subdir2_other
94 $ echo file1 > dir1/subdir1/file1
93 $ echo file1 > dir1/subdir1/file1
95 $ echo file2 > dir1/subdir2_other/file1
94 $ echo file2 > dir1/subdir2_other/file1
96 $ mtn add dir1/subdir1/file1 dir1/subdir2_other/file1
95 $ mtn add dir1/subdir1/file1 dir1/subdir2_other/file1
97 mtn: adding dir1 to workspace manifest
96 mtn: adding dir1 to workspace manifest
98 mtn: adding dir1/subdir1 to workspace manifest
97 mtn: adding dir1/subdir1 to workspace manifest
99 mtn: adding dir1/subdir1/file1 to workspace manifest
98 mtn: adding dir1/subdir1/file1 to workspace manifest
100 mtn: adding dir1/subdir2_other to workspace manifest
99 mtn: adding dir1/subdir2_other to workspace manifest
101 mtn: adding dir1/subdir2_other/file1 to workspace manifest
100 mtn: adding dir1/subdir2_other/file1 to workspace manifest
102 $ mtn ci -m createdir1
101 $ mtn ci -m createdir1
103 mtn: beginning commit on branch 'com.selenic.test'
102 mtn: beginning commit on branch 'com.selenic.test'
104 mtn: committed revision a8d62bc04fee4d2936d28e98bbcc81686dd74306
103 mtn: committed revision a8d62bc04fee4d2936d28e98bbcc81686dd74306
105 $ mtn rename dir1/subdir1 dir1/subdir2
104 $ mtn rename dir1/subdir1 dir1/subdir2
106 mtn: skipping dir1, already accounted for in workspace
105 mtn: skipping dir1, already accounted for in workspace
107 mtn: renaming dir1/subdir1 to dir1/subdir2 in workspace manifest
106 mtn: renaming dir1/subdir1 to dir1/subdir2 in workspace manifest
108 $ mtn ci -m movedir1
107 $ mtn ci -m movedir1
109 mtn: beginning commit on branch 'com.selenic.test'
108 mtn: beginning commit on branch 'com.selenic.test'
110 mtn: committed revision 2c3d241bbbfe538b1b51d910f5676407e3f4d3a6
109 mtn: committed revision 2c3d241bbbfe538b1b51d910f5676407e3f4d3a6
111
110
112 test subdirectory move
111 test subdirectory move
113
112
114 $ mtn mv dir dir2
113 $ mtn mv dir dir2
115 mtn: renaming dir to dir2 in workspace manifest
114 mtn: renaming dir to dir2 in workspace manifest
116 $ echo newfile > dir2/newfile
115 $ echo newfile > dir2/newfile
117 $ mtn drop dir2/d
116 $ mtn drop dir2/d
118 mtn: dropping dir2/d from workspace manifest
117 mtn: dropping dir2/d from workspace manifest
119 $ mtn add dir2/newfile
118 $ mtn add dir2/newfile
120 mtn: adding dir2/newfile to workspace manifest
119 mtn: adding dir2/newfile to workspace manifest
121 $ mtn ci -m movedir
120 $ mtn ci -m movedir
122 mtn: beginning commit on branch 'com.selenic.test'
121 mtn: beginning commit on branch 'com.selenic.test'
123 mtn: committed revision fdb5a02dae8bfce3a79b3393680af471016e1b4c
122 mtn: committed revision fdb5a02dae8bfce3a79b3393680af471016e1b4c
124
123
125 Test directory removal with empty directory
124 Test directory removal with empty directory
126
125
127 $ mkdir dir2/dir
126 $ mkdir dir2/dir
128 $ mkdir dir2/dir/subdir
127 $ mkdir dir2/dir/subdir
129 $ echo f > dir2/dir/subdir/f
128 $ echo f > dir2/dir/subdir/f
130 $ mkdir dir2/dir/emptydir
129 $ mkdir dir2/dir/emptydir
131 $ mtn add --quiet -R dir2/dir
130 $ mtn add --quiet -R dir2/dir
132 $ mtn ci -m emptydir
131 $ mtn ci -m emptydir
133 mtn: beginning commit on branch 'com.selenic.test'
132 mtn: beginning commit on branch 'com.selenic.test'
134 mtn: committed revision 8bbf76d717001d24964e4604739fdcd0f539fc88
133 mtn: committed revision 8bbf76d717001d24964e4604739fdcd0f539fc88
135 $ mtn drop -R dir2/dir
134 $ mtn drop -R dir2/dir
136 mtn: dropping dir2/dir/subdir/f from workspace manifest
135 mtn: dropping dir2/dir/subdir/f from workspace manifest
137 mtn: dropping dir2/dir/subdir from workspace manifest
136 mtn: dropping dir2/dir/subdir from workspace manifest
138 mtn: dropping dir2/dir/emptydir from workspace manifest
137 mtn: dropping dir2/dir/emptydir from workspace manifest
139 mtn: dropping dir2/dir from workspace manifest
138 mtn: dropping dir2/dir from workspace manifest
140 $ mtn ci -m dropdirectory
139 $ mtn ci -m dropdirectory
141 mtn: beginning commit on branch 'com.selenic.test'
140 mtn: beginning commit on branch 'com.selenic.test'
142 mtn: committed revision 2323d4bc324e6c82628dc04d47a9fd32ad24e322
141 mtn: committed revision 2323d4bc324e6c82628dc04d47a9fd32ad24e322
143
142
144 test directory and file move
143 test directory and file move
145
144
146 $ mkdir -p dir3/d1
145 $ mkdir -p dir3/d1
147 $ echo a > dir3/a
146 $ echo a > dir3/a
148 $ mtn add dir3/a dir3/d1
147 $ mtn add dir3/a dir3/d1
149 mtn: adding dir3 to workspace manifest
148 mtn: adding dir3 to workspace manifest
150 mtn: adding dir3/a to workspace manifest
149 mtn: adding dir3/a to workspace manifest
151 mtn: adding dir3/d1 to workspace manifest
150 mtn: adding dir3/d1 to workspace manifest
152 $ mtn ci -m dirfilemove
151 $ mtn ci -m dirfilemove
153 mtn: beginning commit on branch 'com.selenic.test'
152 mtn: beginning commit on branch 'com.selenic.test'
154 mtn: committed revision 47b192f720faa622f48c68d1eb075b26d405aa8b
153 mtn: committed revision 47b192f720faa622f48c68d1eb075b26d405aa8b
155 $ mtn mv dir3/a dir3/d1/a
154 $ mtn mv dir3/a dir3/d1/a
156 mtn: skipping dir3/d1, already accounted for in workspace
155 mtn: skipping dir3/d1, already accounted for in workspace
157 mtn: renaming dir3/a to dir3/d1/a in workspace manifest
156 mtn: renaming dir3/a to dir3/d1/a in workspace manifest
158 $ mtn mv dir3/d1 dir3/d2
157 $ mtn mv dir3/d1 dir3/d2
159 mtn: skipping dir3, already accounted for in workspace
158 mtn: skipping dir3, already accounted for in workspace
160 mtn: renaming dir3/d1 to dir3/d2 in workspace manifest
159 mtn: renaming dir3/d1 to dir3/d2 in workspace manifest
161 $ mtn ci -m dirfilemove2
160 $ mtn ci -m dirfilemove2
162 mtn: beginning commit on branch 'com.selenic.test'
161 mtn: beginning commit on branch 'com.selenic.test'
163 mtn: committed revision 8b543a400d3ee7f6d4bb1835b9b9e3747c8cb632
162 mtn: committed revision 8b543a400d3ee7f6d4bb1835b9b9e3747c8cb632
164
163
165 test directory move into another directory move
164 test directory move into another directory move
166
165
167 $ mkdir dir4
166 $ mkdir dir4
168 $ mkdir dir5
167 $ mkdir dir5
169 $ echo a > dir4/a
168 $ echo a > dir4/a
170 $ mtn add dir4/a dir5
169 $ mtn add dir4/a dir5
171 mtn: adding dir4 to workspace manifest
170 mtn: adding dir4 to workspace manifest
172 mtn: adding dir4/a to workspace manifest
171 mtn: adding dir4/a to workspace manifest
173 mtn: adding dir5 to workspace manifest
172 mtn: adding dir5 to workspace manifest
174 $ mtn ci -m dirdirmove
173 $ mtn ci -m dirdirmove
175 mtn: beginning commit on branch 'com.selenic.test'
174 mtn: beginning commit on branch 'com.selenic.test'
176 mtn: committed revision 466e0b2afc7a55aa2b4ab2f57cb240bb6cd66fc7
175 mtn: committed revision 466e0b2afc7a55aa2b4ab2f57cb240bb6cd66fc7
177 $ mtn mv dir5 dir6
176 $ mtn mv dir5 dir6
178 mtn: renaming dir5 to dir6 in workspace manifest
177 mtn: renaming dir5 to dir6 in workspace manifest
179 $ mtn mv dir4 dir6/dir4
178 $ mtn mv dir4 dir6/dir4
180 mtn: skipping dir6, already accounted for in workspace
179 mtn: skipping dir6, already accounted for in workspace
181 mtn: renaming dir4 to dir6/dir4 in workspace manifest
180 mtn: renaming dir4 to dir6/dir4 in workspace manifest
182 $ mtn ci -m dirdirmove2
181 $ mtn ci -m dirdirmove2
183 mtn: beginning commit on branch 'com.selenic.test'
182 mtn: beginning commit on branch 'com.selenic.test'
184 mtn: committed revision 3d1f77ebad0c23a5d14911be3b670f990991b749
183 mtn: committed revision 3d1f77ebad0c23a5d14911be3b670f990991b749
185
184
186 test diverging directory moves
185 test diverging directory moves
187
186
188 $ mkdir -p dir7/dir9/dir8
187 $ mkdir -p dir7/dir9/dir8
189 $ echo a > dir7/dir9/dir8/a
188 $ echo a > dir7/dir9/dir8/a
190 $ echo b > dir7/dir9/b
189 $ echo b > dir7/dir9/b
191 $ echo c > dir7/c
190 $ echo c > dir7/c
192 $ mtn add -R dir7
191 $ mtn add -R dir7
193 mtn: adding dir7 to workspace manifest
192 mtn: adding dir7 to workspace manifest
194 mtn: adding dir7/c to workspace manifest
193 mtn: adding dir7/c to workspace manifest
195 mtn: adding dir7/dir9 to workspace manifest
194 mtn: adding dir7/dir9 to workspace manifest
196 mtn: adding dir7/dir9/b to workspace manifest
195 mtn: adding dir7/dir9/b to workspace manifest
197 mtn: adding dir7/dir9/dir8 to workspace manifest
196 mtn: adding dir7/dir9/dir8 to workspace manifest
198 mtn: adding dir7/dir9/dir8/a to workspace manifest
197 mtn: adding dir7/dir9/dir8/a to workspace manifest
199 $ mtn ci -m divergentdirmove
198 $ mtn ci -m divergentdirmove
200 mtn: beginning commit on branch 'com.selenic.test'
199 mtn: beginning commit on branch 'com.selenic.test'
201 mtn: committed revision 08a08511f18b428d840199b062de90d0396bc2ed
200 mtn: committed revision 08a08511f18b428d840199b062de90d0396bc2ed
202 $ mtn mv dir7 dir7-2
201 $ mtn mv dir7 dir7-2
203 mtn: renaming dir7 to dir7-2 in workspace manifest
202 mtn: renaming dir7 to dir7-2 in workspace manifest
204 $ mtn mv dir7-2/dir9 dir9-2
203 $ mtn mv dir7-2/dir9 dir9-2
205 mtn: renaming dir7-2/dir9 to dir9-2 in workspace manifest
204 mtn: renaming dir7-2/dir9 to dir9-2 in workspace manifest
206 $ mtn mv dir9-2/dir8 dir8-2
205 $ mtn mv dir9-2/dir8 dir8-2
207 mtn: renaming dir9-2/dir8 to dir8-2 in workspace manifest
206 mtn: renaming dir9-2/dir8 to dir8-2 in workspace manifest
208 $ mtn ci -m divergentdirmove2
207 $ mtn ci -m divergentdirmove2
209 mtn: beginning commit on branch 'com.selenic.test'
208 mtn: beginning commit on branch 'com.selenic.test'
210 mtn: committed revision 4a736634505795f17786fffdf2c9cbf5b11df6f6
209 mtn: committed revision 4a736634505795f17786fffdf2c9cbf5b11df6f6
211 $ cd ..
210 $ cd ..
212
211
213 convert incrementally
212 convert incrementally
214
213
215 $ hg convert -s mtn repo.mtn
214 $ hg convert -s mtn repo.mtn
216 assuming destination repo.mtn-hg
215 assuming destination repo.mtn-hg
217 scanning source...
216 scanning source...
218 sorting...
217 sorting...
219 converting...
218 converting...
220 11 update2 "with" quotes
219 11 update2 "with" quotes
221 10 createdir1
220 10 createdir1
222 9 movedir1
221 9 movedir1
223 8 movedir
222 8 movedir
224 7 emptydir
223 7 emptydir
225 6 dropdirectory
224 6 dropdirectory
226 5 dirfilemove
225 5 dirfilemove
227 4 dirfilemove2
226 4 dirfilemove2
228 3 dirdirmove
227 3 dirdirmove
229 2 dirdirmove2
228 2 dirdirmove2
230 1 divergentdirmove
229 1 divergentdirmove
231 0 divergentdirmove2
230 0 divergentdirmove2
232 $ glog()
231 $ glog()
233 > {
232 > {
234 > hg glog --template '{rev} "{desc|firstline}" files: {files}\n' "$@"
233 > hg glog --template '{rev} "{desc|firstline}" files: {files}\n' "$@"
235 > }
234 > }
236 $ cd repo.mtn-hg
235 $ cd repo.mtn-hg
237 $ hg up -C
236 $ hg up -C
238 11 files updated, 0 files merged, 0 files removed, 0 files unresolved
237 11 files updated, 0 files merged, 0 files removed, 0 files unresolved
239 $ glog
238 $ glog
240 @ 13 "divergentdirmove2" files: dir7-2/c dir7/c dir7/dir9/b dir7/dir9/dir8/a dir8-2/a dir9-2/b
239 @ 13 "divergentdirmove2" files: dir7-2/c dir7/c dir7/dir9/b dir7/dir9/dir8/a dir8-2/a dir9-2/b
241 |
240 |
242 o 12 "divergentdirmove" files: dir7/c dir7/dir9/b dir7/dir9/dir8/a
241 o 12 "divergentdirmove" files: dir7/c dir7/dir9/b dir7/dir9/dir8/a
243 |
242 |
244 o 11 "dirdirmove2" files: dir4/a dir6/dir4/a
243 o 11 "dirdirmove2" files: dir4/a dir6/dir4/a
245 |
244 |
246 o 10 "dirdirmove" files: dir4/a
245 o 10 "dirdirmove" files: dir4/a
247 |
246 |
248 o 9 "dirfilemove2" files: dir3/a dir3/d2/a
247 o 9 "dirfilemove2" files: dir3/a dir3/d2/a
249 |
248 |
250 o 8 "dirfilemove" files: dir3/a
249 o 8 "dirfilemove" files: dir3/a
251 |
250 |
252 o 7 "dropdirectory" files: dir2/dir/subdir/f
251 o 7 "dropdirectory" files: dir2/dir/subdir/f
253 |
252 |
254 o 6 "emptydir" files: dir2/dir/subdir/f
253 o 6 "emptydir" files: dir2/dir/subdir/f
255 |
254 |
256 o 5 "movedir" files: dir/a dir/d dir2/a dir2/newfile
255 o 5 "movedir" files: dir/a dir/d dir2/a dir2/newfile
257 |
256 |
258 o 4 "movedir1" files: dir1/subdir1/file1 dir1/subdir2/file1
257 o 4 "movedir1" files: dir1/subdir1/file1 dir1/subdir2/file1
259 |
258 |
260 o 3 "createdir1" files: dir1/subdir1/file1 dir1/subdir2_other/file1
259 o 3 "createdir1" files: dir1/subdir1/file1 dir1/subdir2_other/file1
261 |
260 |
262 o 2 "update2 "with" quotes" files: bin bin2 dir/b e
261 o 2 "update2 "with" quotes" files: bin bin2 dir/b e
263 |
262 |
264 o 1 "update1" files: a bin c dir/a dir/b
263 o 1 "update1" files: a bin c dir/a dir/b
265 |
264 |
266 o 0 "initialize" files: a bin c dir/b dir/d
265 o 0 "initialize" files: a bin c dir/b dir/d
267
266
268
267
269 manifest
268 manifest
270
269
271 $ hg manifest
270 $ hg manifest
272 bin2
271 bin2
273 dir1/subdir2/file1
272 dir1/subdir2/file1
274 dir1/subdir2_other/file1
273 dir1/subdir2_other/file1
275 dir2/a
274 dir2/a
276 dir2/newfile
275 dir2/newfile
277 dir3/d2/a
276 dir3/d2/a
278 dir6/dir4/a
277 dir6/dir4/a
279 dir7-2/c
278 dir7-2/c
280 dir8-2/a
279 dir8-2/a
281 dir9-2/b
280 dir9-2/b
282 e
281 e
283
282
284 contents
283 contents
285
284
286 $ cat dir2/a
285 $ cat dir2/a
287 a
286 a
288 a
287 a
289 $ test -d dir2/dir && echo 'removed dir2/dir is still there!'
288 $ test -d dir2/dir && echo 'removed dir2/dir is still there!'
290 [1]
289 [1]
291
290
292 file move
291 file move
293
292
294 $ hg log -v -C -r 1 | grep copies
293 $ hg log -v -C -r 1 | grep copies
295 copies: dir/a (a)
294 copies: dir/a (a)
296
295
297 check directory move
296 check directory move
298
297
299 $ hg manifest -r 4
298 $ hg manifest -r 4
300 bin2
299 bin2
301 dir/a
300 dir/a
302 dir/d
301 dir/d
303 dir1/subdir2/file1
302 dir1/subdir2/file1
304 dir1/subdir2_other/file1
303 dir1/subdir2_other/file1
305 e
304 e
306 $ test -d dir1/subdir2 || echo 'new dir1/subdir2 does not exist!'
305 $ test -d dir1/subdir2 || echo 'new dir1/subdir2 does not exist!'
307 $ test -d dir1/subdir1 && echo 'renamed dir1/subdir1 is still there!'
306 $ test -d dir1/subdir1 && echo 'renamed dir1/subdir1 is still there!'
308 [1]
307 [1]
309 $ hg log -v -C -r 4 | grep copies
308 $ hg log -v -C -r 4 | grep copies
310 copies: dir1/subdir2/file1 (dir1/subdir1/file1)
309 copies: dir1/subdir2/file1 (dir1/subdir1/file1)
311
310
312 check file remove with directory move
311 check file remove with directory move
313
312
314 $ hg manifest -r 5
313 $ hg manifest -r 5
315 bin2
314 bin2
316 dir1/subdir2/file1
315 dir1/subdir2/file1
317 dir1/subdir2_other/file1
316 dir1/subdir2_other/file1
318 dir2/a
317 dir2/a
319 dir2/newfile
318 dir2/newfile
320 e
319 e
321
320
322 check file move with directory move
321 check file move with directory move
323
322
324 $ hg manifest -r 9
323 $ hg manifest -r 9
325 bin2
324 bin2
326 dir1/subdir2/file1
325 dir1/subdir2/file1
327 dir1/subdir2_other/file1
326 dir1/subdir2_other/file1
328 dir2/a
327 dir2/a
329 dir2/newfile
328 dir2/newfile
330 dir3/d2/a
329 dir3/d2/a
331 e
330 e
332
331
333 check file directory directory move
332 check file directory directory move
334
333
335 $ hg manifest -r 11
334 $ hg manifest -r 11
336 bin2
335 bin2
337 dir1/subdir2/file1
336 dir1/subdir2/file1
338 dir1/subdir2_other/file1
337 dir1/subdir2_other/file1
339 dir2/a
338 dir2/a
340 dir2/newfile
339 dir2/newfile
341 dir3/d2/a
340 dir3/d2/a
342 dir6/dir4/a
341 dir6/dir4/a
343 e
342 e
344
343
345 check divergent directory moves
344 check divergent directory moves
346
345
347 $ hg manifest -r 13
346 $ hg manifest -r 13
348 bin2
347 bin2
349 dir1/subdir2/file1
348 dir1/subdir2/file1
350 dir1/subdir2_other/file1
349 dir1/subdir2_other/file1
351 dir2/a
350 dir2/a
352 dir2/newfile
351 dir2/newfile
353 dir3/d2/a
352 dir3/d2/a
354 dir6/dir4/a
353 dir6/dir4/a
355 dir7-2/c
354 dir7-2/c
356 dir8-2/a
355 dir8-2/a
357 dir9-2/b
356 dir9-2/b
358 e
357 e
@@ -1,139 +1,135
1
1
2 $ "$TESTDIR/hghave" tla || exit 80
2 $ "$TESTDIR/hghave" tla || exit 80
3 $ mkdir do_not_use_HOME_tla
4 $ cd do_not_use_HOME_tla
5 $ HOME=`pwd`; export HOME
6 $ cd ..
7 $ tla my-id "mercurial <mercurial@selenic.com>"
3 $ tla my-id "mercurial <mercurial@selenic.com>"
8 $ echo "[extensions]" >> $HGRCPATH
4 $ echo "[extensions]" >> $HGRCPATH
9 $ echo "convert=" >> $HGRCPATH
5 $ echo "convert=" >> $HGRCPATH
10 $ echo 'graphlog =' >> $HGRCPATH
6 $ echo 'graphlog =' >> $HGRCPATH
11
7
12 create tla archive
8 create tla archive
13
9
14 $ tla make-archive tla@mercurial--convert `pwd`/hg-test-convert-tla
10 $ tla make-archive tla@mercurial--convert `pwd`/hg-test-convert-tla
15
11
16 initialize tla repo
12 initialize tla repo
17
13
18 $ mkdir tla-repo
14 $ mkdir tla-repo
19 $ cd tla-repo/
15 $ cd tla-repo/
20 $ tla init-tree tla@mercurial--convert/tla--test--0
16 $ tla init-tree tla@mercurial--convert/tla--test--0
21 $ tla import
17 $ tla import
22 * creating version tla@mercurial--convert/tla--test--0
18 * creating version tla@mercurial--convert/tla--test--0
23 * imported tla@mercurial--convert/tla--test--0
19 * imported tla@mercurial--convert/tla--test--0
24
20
25 create initial files
21 create initial files
26
22
27 $ echo 'this is a file' > a
23 $ echo 'this is a file' > a
28 $ tla add a
24 $ tla add a
29 $ mkdir src
25 $ mkdir src
30 $ tla add src
26 $ tla add src
31 $ cd src
27 $ cd src
32 $ dd count=1 if=/dev/zero of=b > /dev/null 2> /dev/null
28 $ dd count=1 if=/dev/zero of=b > /dev/null 2> /dev/null
33 $ tla add b
29 $ tla add b
34 $ tla commit -s "added a file, src and src/b (binary)"
30 $ tla commit -s "added a file, src and src/b (binary)"
35 A/ .arch-ids
31 A/ .arch-ids
36 A/ src
32 A/ src
37 A/ src/.arch-ids
33 A/ src/.arch-ids
38 A .arch-ids/a.id
34 A .arch-ids/a.id
39 A a
35 A a
40 A src/.arch-ids/=id
36 A src/.arch-ids/=id
41 A src/.arch-ids/b.id
37 A src/.arch-ids/b.id
42 A src/b
38 A src/b
43 * update pristine tree (tla@mercurial--convert/tla--test--0--base-0 => tla--test--0--patch-1)
39 * update pristine tree (tla@mercurial--convert/tla--test--0--base-0 => tla--test--0--patch-1)
44 * committed tla@mercurial--convert/tla--test--0--patch-1
40 * committed tla@mercurial--convert/tla--test--0--patch-1
45
41
46 create link file and modify a
42 create link file and modify a
47
43
48 $ ln -s ../a a-link
44 $ ln -s ../a a-link
49 $ tla add a-link
45 $ tla add a-link
50 $ echo 'this a modification to a' >> ../a
46 $ echo 'this a modification to a' >> ../a
51 $ tla commit -s "added link to a and modify a"
47 $ tla commit -s "added link to a and modify a"
52 A src/.arch-ids/a-link.id
48 A src/.arch-ids/a-link.id
53 A src/a-link
49 A src/a-link
54 M a
50 M a
55 * update pristine tree (tla@mercurial--convert/tla--test--0--patch-1 => tla--test--0--patch-2)
51 * update pristine tree (tla@mercurial--convert/tla--test--0--patch-1 => tla--test--0--patch-2)
56 * committed tla@mercurial--convert/tla--test--0--patch-2
52 * committed tla@mercurial--convert/tla--test--0--patch-2
57
53
58 create second link and modify b
54 create second link and modify b
59
55
60 $ ln -s ../a a-link-2
56 $ ln -s ../a a-link-2
61 $ tla add a-link-2
57 $ tla add a-link-2
62 $ dd count=1 seek=1 if=/dev/zero of=b > /dev/null 2> /dev/null
58 $ dd count=1 seek=1 if=/dev/zero of=b > /dev/null 2> /dev/null
63 $ tla commit -s "added second link and modify b"
59 $ tla commit -s "added second link and modify b"
64 A src/.arch-ids/a-link-2.id
60 A src/.arch-ids/a-link-2.id
65 A src/a-link-2
61 A src/a-link-2
66 Mb src/b
62 Mb src/b
67 * update pristine tree (tla@mercurial--convert/tla--test--0--patch-2 => tla--test--0--patch-3)
63 * update pristine tree (tla@mercurial--convert/tla--test--0--patch-2 => tla--test--0--patch-3)
68 * committed tla@mercurial--convert/tla--test--0--patch-3
64 * committed tla@mercurial--convert/tla--test--0--patch-3
69
65
70 b file to link and a-link-2 to regular file
66 b file to link and a-link-2 to regular file
71
67
72 $ rm -f a-link-2
68 $ rm -f a-link-2
73 $ echo 'this is now a regular file' > a-link-2
69 $ echo 'this is now a regular file' > a-link-2
74 $ ln -sf ../a b
70 $ ln -sf ../a b
75 $ tla commit -s "file to link and link to file test"
71 $ tla commit -s "file to link and link to file test"
76 fl src/b
72 fl src/b
77 lf src/a-link-2
73 lf src/a-link-2
78 * update pristine tree (tla@mercurial--convert/tla--test--0--patch-3 => tla--test--0--patch-4)
74 * update pristine tree (tla@mercurial--convert/tla--test--0--patch-3 => tla--test--0--patch-4)
79 * committed tla@mercurial--convert/tla--test--0--patch-4
75 * committed tla@mercurial--convert/tla--test--0--patch-4
80
76
81 move a-link-2 file and src directory
77 move a-link-2 file and src directory
82
78
83 $ cd ..
79 $ cd ..
84 $ tla mv src/a-link-2 c
80 $ tla mv src/a-link-2 c
85 $ tla mv src test
81 $ tla mv src test
86 $ tla commit -s "move and rename a-link-2 file and src directory"
82 $ tla commit -s "move and rename a-link-2 file and src directory"
87 D/ src/.arch-ids
83 D/ src/.arch-ids
88 A/ test/.arch-ids
84 A/ test/.arch-ids
89 /> src test
85 /> src test
90 => src/.arch-ids/a-link-2.id .arch-ids/c.id
86 => src/.arch-ids/a-link-2.id .arch-ids/c.id
91 => src/a-link-2 c
87 => src/a-link-2 c
92 => src/.arch-ids/=id test/.arch-ids/=id
88 => src/.arch-ids/=id test/.arch-ids/=id
93 => src/.arch-ids/a-link.id test/.arch-ids/a-link.id
89 => src/.arch-ids/a-link.id test/.arch-ids/a-link.id
94 => src/.arch-ids/b.id test/.arch-ids/b.id
90 => src/.arch-ids/b.id test/.arch-ids/b.id
95 * update pristine tree (tla@mercurial--convert/tla--test--0--patch-4 => tla--test--0--patch-5)
91 * update pristine tree (tla@mercurial--convert/tla--test--0--patch-4 => tla--test--0--patch-5)
96 * committed tla@mercurial--convert/tla--test--0--patch-5
92 * committed tla@mercurial--convert/tla--test--0--patch-5
97 $ cd ..
93 $ cd ..
98
94
99 converting tla repo to Mercurial
95 converting tla repo to Mercurial
100
96
101 $ hg convert tla-repo tla-repo-hg
97 $ hg convert tla-repo tla-repo-hg
102 initializing destination tla-repo-hg repository
98 initializing destination tla-repo-hg repository
103 analyzing tree version tla@mercurial--convert/tla--test--0...
99 analyzing tree version tla@mercurial--convert/tla--test--0...
104 scanning source...
100 scanning source...
105 sorting...
101 sorting...
106 converting...
102 converting...
107 5 initial import
103 5 initial import
108 4 added a file, src and src/b (binary)
104 4 added a file, src and src/b (binary)
109 3 added link to a and modify a
105 3 added link to a and modify a
110 2 added second link and modify b
106 2 added second link and modify b
111 1 file to link and link to file test
107 1 file to link and link to file test
112 0 move and rename a-link-2 file and src directory
108 0 move and rename a-link-2 file and src directory
113 $ tla register-archive -d tla@mercurial--convert
109 $ tla register-archive -d tla@mercurial--convert
114 $ glog()
110 $ glog()
115 > {
111 > {
116 > hg glog --template '{rev} "{desc|firstline}" files: {files}\n' "$@"
112 > hg glog --template '{rev} "{desc|firstline}" files: {files}\n' "$@"
117 > }
113 > }
118
114
119 show graph log
115 show graph log
120
116
121 $ glog -R tla-repo-hg
117 $ glog -R tla-repo-hg
122 o 5 "move and rename a-link-2 file and src directory" files: c src/a-link src/a-link-2 src/b test/a-link test/b
118 o 5 "move and rename a-link-2 file and src directory" files: c src/a-link src/a-link-2 src/b test/a-link test/b
123 |
119 |
124 o 4 "file to link and link to file test" files: src/a-link-2 src/b
120 o 4 "file to link and link to file test" files: src/a-link-2 src/b
125 |
121 |
126 o 3 "added second link and modify b" files: src/a-link-2 src/b
122 o 3 "added second link and modify b" files: src/a-link-2 src/b
127 |
123 |
128 o 2 "added link to a and modify a" files: a src/a-link
124 o 2 "added link to a and modify a" files: a src/a-link
129 |
125 |
130 o 1 "added a file, src and src/b (binary)" files: a src/b
126 o 1 "added a file, src and src/b (binary)" files: a src/b
131 |
127 |
132 o 0 "initial import" files:
128 o 0 "initial import" files:
133
129
134 $ hg up -q -R tla-repo-hg
130 $ hg up -q -R tla-repo-hg
135 $ hg -R tla-repo-hg manifest --debug
131 $ hg -R tla-repo-hg manifest --debug
136 c4072c4b72e1cabace081888efa148ee80ca3cbb 644 a
132 c4072c4b72e1cabace081888efa148ee80ca3cbb 644 a
137 0201ac32a3a8e86e303dff60366382a54b48a72e 644 c
133 0201ac32a3a8e86e303dff60366382a54b48a72e 644 c
138 c0067ba5ff0b7c9a3eb17270839d04614c435623 644 @ test/a-link
134 c0067ba5ff0b7c9a3eb17270839d04614c435623 644 @ test/a-link
139 375f4263d86feacdea7e3c27100abd1560f2a973 644 @ test/b
135 375f4263d86feacdea7e3c27100abd1560f2a973 644 @ test/b
General Comments 0
You need to be logged in to leave comments. Login now