##// END OF EJS Templates
test-convert-git: stablize for git 1.7.7.6...
Matt Harbison -
r25721:5b9b7063 default
parent child Browse files
Show More
@@ -1,647 +1,636 b''
1 #require git
1 #require git
2
2
3 $ echo "[core]" >> $HOME/.gitconfig
3 $ echo "[core]" >> $HOME/.gitconfig
4 $ echo "autocrlf = false" >> $HOME/.gitconfig
4 $ echo "autocrlf = false" >> $HOME/.gitconfig
5 $ echo "[core]" >> $HOME/.gitconfig
5 $ echo "[core]" >> $HOME/.gitconfig
6 $ echo "autocrlf = false" >> $HOME/.gitconfig
6 $ echo "autocrlf = false" >> $HOME/.gitconfig
7 $ echo "[extensions]" >> $HGRCPATH
7 $ echo "[extensions]" >> $HGRCPATH
8 $ echo "convert=" >> $HGRCPATH
8 $ echo "convert=" >> $HGRCPATH
9 $ GIT_AUTHOR_NAME='test'; export GIT_AUTHOR_NAME
9 $ GIT_AUTHOR_NAME='test'; export GIT_AUTHOR_NAME
10 $ GIT_AUTHOR_EMAIL='test@example.org'; export GIT_AUTHOR_EMAIL
10 $ GIT_AUTHOR_EMAIL='test@example.org'; export GIT_AUTHOR_EMAIL
11 $ GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0000"; export GIT_AUTHOR_DATE
11 $ GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0000"; export GIT_AUTHOR_DATE
12 $ GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"; export GIT_COMMITTER_NAME
12 $ GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"; export GIT_COMMITTER_NAME
13 $ GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"; export GIT_COMMITTER_EMAIL
13 $ GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"; export GIT_COMMITTER_EMAIL
14 $ GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"; export GIT_COMMITTER_DATE
14 $ GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"; export GIT_COMMITTER_DATE
15 $ INVALIDID1=afd12345af
15 $ INVALIDID1=afd12345af
16 $ INVALIDID2=28173x36ddd1e67bf7098d541130558ef5534a86
16 $ INVALIDID2=28173x36ddd1e67bf7098d541130558ef5534a86
17 $ VALIDID1=39b3d83f9a69a9ba4ebb111461071a0af0027357
17 $ VALIDID1=39b3d83f9a69a9ba4ebb111461071a0af0027357
18 $ VALIDID2=8dd6476bd09d9c7776355dc454dafe38efaec5da
18 $ VALIDID2=8dd6476bd09d9c7776355dc454dafe38efaec5da
19 $ count=10
19 $ count=10
20 $ commit()
20 $ commit()
21 > {
21 > {
22 > GIT_AUTHOR_DATE="2007-01-01 00:00:$count +0000"
22 > GIT_AUTHOR_DATE="2007-01-01 00:00:$count +0000"
23 > GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"
23 > GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"
24 > git commit "$@" >/dev/null 2>/dev/null || echo "git commit error"
24 > git commit "$@" >/dev/null 2>/dev/null || echo "git commit error"
25 > count=`expr $count + 1`
25 > count=`expr $count + 1`
26 > }
26 > }
27 $ mkdir git-repo
27 $ mkdir git-repo
28 $ cd git-repo
28 $ cd git-repo
29 $ git init-db >/dev/null 2>/dev/null
29 $ git init-db >/dev/null 2>/dev/null
30 $ echo a > a
30 $ echo a > a
31 $ mkdir d
31 $ mkdir d
32 $ echo b > d/b
32 $ echo b > d/b
33 $ git add a d
33 $ git add a d
34 $ commit -a -m t1
34 $ commit -a -m t1
35
35
36 Remove the directory, then try to replace it with a file (issue754)
36 Remove the directory, then try to replace it with a file (issue754)
37
37
38 $ git rm -f d/b
38 $ git rm -f d/b
39 rm 'd/b'
39 rm 'd/b'
40 $ commit -m t2
40 $ commit -m t2
41 $ echo d > d
41 $ echo d > d
42 $ git add d
42 $ git add d
43 $ commit -m t3
43 $ commit -m t3
44 $ echo b >> a
44 $ echo b >> a
45 $ commit -a -m t4.1
45 $ commit -a -m t4.1
46 $ git checkout -b other HEAD~ >/dev/null 2>/dev/null
46 $ git checkout -b other HEAD~ >/dev/null 2>/dev/null
47 $ echo c > a
47 $ echo c > a
48 $ echo a >> a
48 $ echo a >> a
49 $ commit -a -m t4.2
49 $ commit -a -m t4.2
50 $ git checkout master >/dev/null 2>/dev/null
50 $ git checkout master >/dev/null 2>/dev/null
51 $ git pull --no-commit . other > /dev/null 2>/dev/null
51 $ git pull --no-commit . other > /dev/null 2>/dev/null
52 $ commit -m 'Merge branch other'
52 $ commit -m 'Merge branch other'
53 $ cd ..
53 $ cd ..
54 $ hg convert --config extensions.progress= --config progress.assume-tty=1 \
54 $ hg convert --config extensions.progress= --config progress.assume-tty=1 \
55 > --config progress.delay=0 --config progress.changedelay=0 \
55 > --config progress.delay=0 --config progress.changedelay=0 \
56 > --config progress.refresh=0 --config progress.width=60 \
56 > --config progress.refresh=0 --config progress.width=60 \
57 > --datesort git-repo
57 > --datesort git-repo
58 \r (no-eol) (esc)
58 \r (no-eol) (esc)
59 scanning [======> ] 1/6\r (no-eol) (esc)
59 scanning [======> ] 1/6\r (no-eol) (esc)
60 scanning [=============> ] 2/6\r (no-eol) (esc)
60 scanning [=============> ] 2/6\r (no-eol) (esc)
61 scanning [=====================> ] 3/6\r (no-eol) (esc)
61 scanning [=====================> ] 3/6\r (no-eol) (esc)
62 scanning [============================> ] 4/6\r (no-eol) (esc)
62 scanning [============================> ] 4/6\r (no-eol) (esc)
63 scanning [===================================> ] 5/6\r (no-eol) (esc)
63 scanning [===================================> ] 5/6\r (no-eol) (esc)
64 scanning [===========================================>] 6/6\r (no-eol) (esc)
64 scanning [===========================================>] 6/6\r (no-eol) (esc)
65 \r (no-eol) (esc)
65 \r (no-eol) (esc)
66 \r (no-eol) (esc)
66 \r (no-eol) (esc)
67 converting [ ] 0/6\r (no-eol) (esc)
67 converting [ ] 0/6\r (no-eol) (esc)
68 getting files [==================> ] 1/2\r (no-eol) (esc)
68 getting files [==================> ] 1/2\r (no-eol) (esc)
69 getting files [======================================>] 2/2\r (no-eol) (esc)
69 getting files [======================================>] 2/2\r (no-eol) (esc)
70 \r (no-eol) (esc)
70 \r (no-eol) (esc)
71 \r (no-eol) (esc)
71 \r (no-eol) (esc)
72 converting [======> ] 1/6\r (no-eol) (esc)
72 converting [======> ] 1/6\r (no-eol) (esc)
73 getting files [======================================>] 1/1\r (no-eol) (esc)
73 getting files [======================================>] 1/1\r (no-eol) (esc)
74 \r (no-eol) (esc)
74 \r (no-eol) (esc)
75 \r (no-eol) (esc)
75 \r (no-eol) (esc)
76 converting [=============> ] 2/6\r (no-eol) (esc)
76 converting [=============> ] 2/6\r (no-eol) (esc)
77 getting files [======================================>] 1/1\r (no-eol) (esc)
77 getting files [======================================>] 1/1\r (no-eol) (esc)
78 \r (no-eol) (esc)
78 \r (no-eol) (esc)
79 \r (no-eol) (esc)
79 \r (no-eol) (esc)
80 converting [====================> ] 3/6\r (no-eol) (esc)
80 converting [====================> ] 3/6\r (no-eol) (esc)
81 getting files [======================================>] 1/1\r (no-eol) (esc)
81 getting files [======================================>] 1/1\r (no-eol) (esc)
82 \r (no-eol) (esc)
82 \r (no-eol) (esc)
83 \r (no-eol) (esc)
83 \r (no-eol) (esc)
84 converting [===========================> ] 4/6\r (no-eol) (esc)
84 converting [===========================> ] 4/6\r (no-eol) (esc)
85 getting files [======================================>] 1/1\r (no-eol) (esc)
85 getting files [======================================>] 1/1\r (no-eol) (esc)
86 \r (no-eol) (esc)
86 \r (no-eol) (esc)
87 \r (no-eol) (esc)
87 \r (no-eol) (esc)
88 converting [==================================> ] 5/6\r (no-eol) (esc)
88 converting [==================================> ] 5/6\r (no-eol) (esc)
89 getting files [======================================>] 1/1\r (no-eol) (esc)
89 getting files [======================================>] 1/1\r (no-eol) (esc)
90 \r (no-eol) (esc)
90 \r (no-eol) (esc)
91 assuming destination git-repo-hg
91 assuming destination git-repo-hg
92 initializing destination git-repo-hg repository
92 initializing destination git-repo-hg repository
93 scanning source...
93 scanning source...
94 sorting...
94 sorting...
95 converting...
95 converting...
96 5 t1
96 5 t1
97 4 t2
97 4 t2
98 3 t3
98 3 t3
99 2 t4.1
99 2 t4.1
100 1 t4.2
100 1 t4.2
101 0 Merge branch other
101 0 Merge branch other
102 updating bookmarks
102 updating bookmarks
103 $ hg up -q -R git-repo-hg
103 $ hg up -q -R git-repo-hg
104 $ hg -R git-repo-hg tip -v
104 $ hg -R git-repo-hg tip -v
105 changeset: 5:c78094926be2
105 changeset: 5:c78094926be2
106 bookmark: master
106 bookmark: master
107 tag: tip
107 tag: tip
108 parent: 3:f5f5cb45432b
108 parent: 3:f5f5cb45432b
109 parent: 4:4e174f80c67c
109 parent: 4:4e174f80c67c
110 user: test <test@example.org>
110 user: test <test@example.org>
111 date: Mon Jan 01 00:00:15 2007 +0000
111 date: Mon Jan 01 00:00:15 2007 +0000
112 files: a
112 files: a
113 description:
113 description:
114 Merge branch other
114 Merge branch other
115
115
116
116
117 $ count=10
117 $ count=10
118 $ mkdir git-repo2
118 $ mkdir git-repo2
119 $ cd git-repo2
119 $ cd git-repo2
120 $ git init-db >/dev/null 2>/dev/null
120 $ git init-db >/dev/null 2>/dev/null
121 $ echo foo > foo
121 $ echo foo > foo
122 $ git add foo
122 $ git add foo
123 $ commit -a -m 'add foo'
123 $ commit -a -m 'add foo'
124 $ echo >> foo
124 $ echo >> foo
125 $ commit -a -m 'change foo'
125 $ commit -a -m 'change foo'
126 $ git checkout -b Bar HEAD~ >/dev/null 2>/dev/null
126 $ git checkout -b Bar HEAD~ >/dev/null 2>/dev/null
127 $ echo quux >> quux
127 $ echo quux >> quux
128 $ git add quux
128 $ git add quux
129 $ commit -a -m 'add quux'
129 $ commit -a -m 'add quux'
130 $ echo bar > bar
130 $ echo bar > bar
131 $ git add bar
131 $ git add bar
132 $ commit -a -m 'add bar'
132 $ commit -a -m 'add bar'
133 $ git checkout -b Baz HEAD~ >/dev/null 2>/dev/null
133 $ git checkout -b Baz HEAD~ >/dev/null 2>/dev/null
134 $ echo baz > baz
134 $ echo baz > baz
135 $ git add baz
135 $ git add baz
136 $ commit -a -m 'add baz'
136 $ commit -a -m 'add baz'
137 $ git checkout master >/dev/null 2>/dev/null
137 $ git checkout master >/dev/null 2>/dev/null
138 $ git pull --no-commit . Bar Baz > /dev/null 2>/dev/null
138 $ git pull --no-commit . Bar Baz > /dev/null 2>/dev/null
139 $ commit -m 'Octopus merge'
139 $ commit -m 'Octopus merge'
140 $ echo bar >> bar
140 $ echo bar >> bar
141 $ commit -a -m 'change bar'
141 $ commit -a -m 'change bar'
142 $ git checkout -b Foo HEAD~ >/dev/null 2>/dev/null
142 $ git checkout -b Foo HEAD~ >/dev/null 2>/dev/null
143 $ echo >> foo
143 $ echo >> foo
144 $ commit -a -m 'change foo'
144 $ commit -a -m 'change foo'
145 $ git checkout master >/dev/null 2>/dev/null
145 $ git checkout master >/dev/null 2>/dev/null
146 $ git pull --no-commit -s ours . Foo > /dev/null 2>/dev/null
146 $ git pull --no-commit -s ours . Foo > /dev/null 2>/dev/null
147 $ commit -m 'Discard change to foo'
147 $ commit -m 'Discard change to foo'
148 $ cd ..
148 $ cd ..
149 $ glog()
149 $ glog()
150 > {
150 > {
151 > hg log -G --template '{rev} "{desc|firstline}" files: {files}\n' "$@"
151 > hg log -G --template '{rev} "{desc|firstline}" files: {files}\n' "$@"
152 > }
152 > }
153 $ splitrepo()
153 $ splitrepo()
154 > {
154 > {
155 > msg="$1"
155 > msg="$1"
156 > files="$2"
156 > files="$2"
157 > opts=$3
157 > opts=$3
158 > echo "% $files: $msg"
158 > echo "% $files: $msg"
159 > prefix=`echo "$files" | sed -e 's/ /-/g'`
159 > prefix=`echo "$files" | sed -e 's/ /-/g'`
160 > fmap="$prefix.fmap"
160 > fmap="$prefix.fmap"
161 > repo="$prefix.repo"
161 > repo="$prefix.repo"
162 > for i in $files; do
162 > for i in $files; do
163 > echo "include $i" >> "$fmap"
163 > echo "include $i" >> "$fmap"
164 > done
164 > done
165 > hg -q convert $opts --filemap "$fmap" --datesort git-repo2 "$repo"
165 > hg -q convert $opts --filemap "$fmap" --datesort git-repo2 "$repo"
166 > hg up -q -R "$repo"
166 > hg up -q -R "$repo"
167 > glog -R "$repo"
167 > glog -R "$repo"
168 > hg -R "$repo" manifest --debug
168 > hg -R "$repo" manifest --debug
169 > }
169 > }
170
170
171 full conversion
171 full conversion
172
172
173 $ hg convert --datesort git-repo2 fullrepo \
173 $ hg convert --datesort git-repo2 fullrepo \
174 > --config extensions.progress= --config progress.assume-tty=1 \
174 > --config extensions.progress= --config progress.assume-tty=1 \
175 > --config progress.delay=0 --config progress.changedelay=0 \
175 > --config progress.delay=0 --config progress.changedelay=0 \
176 > --config progress.refresh=0 --config progress.width=60
176 > --config progress.refresh=0 --config progress.width=60
177 \r (no-eol) (esc)
177 \r (no-eol) (esc)
178 scanning [===> ] 1/9\r (no-eol) (esc)
178 scanning [===> ] 1/9\r (no-eol) (esc)
179 scanning [========> ] 2/9\r (no-eol) (esc)
179 scanning [========> ] 2/9\r (no-eol) (esc)
180 scanning [=============> ] 3/9\r (no-eol) (esc)
180 scanning [=============> ] 3/9\r (no-eol) (esc)
181 scanning [==================> ] 4/9\r (no-eol) (esc)
181 scanning [==================> ] 4/9\r (no-eol) (esc)
182 scanning [=======================> ] 5/9\r (no-eol) (esc)
182 scanning [=======================> ] 5/9\r (no-eol) (esc)
183 scanning [============================> ] 6/9\r (no-eol) (esc)
183 scanning [============================> ] 6/9\r (no-eol) (esc)
184 scanning [=================================> ] 7/9\r (no-eol) (esc)
184 scanning [=================================> ] 7/9\r (no-eol) (esc)
185 scanning [======================================> ] 8/9\r (no-eol) (esc)
185 scanning [======================================> ] 8/9\r (no-eol) (esc)
186 scanning [===========================================>] 9/9\r (no-eol) (esc)
186 scanning [===========================================>] 9/9\r (no-eol) (esc)
187 \r (no-eol) (esc)
187 \r (no-eol) (esc)
188 \r (no-eol) (esc)
188 \r (no-eol) (esc)
189 converting [ ] 0/9\r (no-eol) (esc)
189 converting [ ] 0/9\r (no-eol) (esc)
190 getting files [======================================>] 1/1\r (no-eol) (esc)
190 getting files [======================================>] 1/1\r (no-eol) (esc)
191 \r (no-eol) (esc)
191 \r (no-eol) (esc)
192 \r (no-eol) (esc)
192 \r (no-eol) (esc)
193 converting [===> ] 1/9\r (no-eol) (esc)
193 converting [===> ] 1/9\r (no-eol) (esc)
194 getting files [======================================>] 1/1\r (no-eol) (esc)
194 getting files [======================================>] 1/1\r (no-eol) (esc)
195 \r (no-eol) (esc)
195 \r (no-eol) (esc)
196 \r (no-eol) (esc)
196 \r (no-eol) (esc)
197 converting [========> ] 2/9\r (no-eol) (esc)
197 converting [========> ] 2/9\r (no-eol) (esc)
198 getting files [======================================>] 1/1\r (no-eol) (esc)
198 getting files [======================================>] 1/1\r (no-eol) (esc)
199 \r (no-eol) (esc)
199 \r (no-eol) (esc)
200 \r (no-eol) (esc)
200 \r (no-eol) (esc)
201 converting [=============> ] 3/9\r (no-eol) (esc)
201 converting [=============> ] 3/9\r (no-eol) (esc)
202 getting files [======================================>] 1/1\r (no-eol) (esc)
202 getting files [======================================>] 1/1\r (no-eol) (esc)
203 \r (no-eol) (esc)
203 \r (no-eol) (esc)
204 \r (no-eol) (esc)
204 \r (no-eol) (esc)
205 converting [=================> ] 4/9\r (no-eol) (esc)
205 converting [=================> ] 4/9\r (no-eol) (esc)
206 getting files [======================================>] 1/1\r (no-eol) (esc)
206 getting files [======================================>] 1/1\r (no-eol) (esc)
207 \r (no-eol) (esc)
207 \r (no-eol) (esc)
208 \r (no-eol) (esc)
208 \r (no-eol) (esc)
209 converting [======================> ] 5/9\r (no-eol) (esc)
209 converting [======================> ] 5/9\r (no-eol) (esc)
210 getting files [===> ] 1/8\r (no-eol) (esc)
210 getting files [===> ] 1/8\r (no-eol) (esc)
211 getting files [========> ] 2/8\r (no-eol) (esc)
211 getting files [========> ] 2/8\r (no-eol) (esc)
212 getting files [=============> ] 3/8\r (no-eol) (esc)
212 getting files [=============> ] 3/8\r (no-eol) (esc)
213 getting files [==================> ] 4/8\r (no-eol) (esc)
213 getting files [==================> ] 4/8\r (no-eol) (esc)
214 getting files [=======================> ] 5/8\r (no-eol) (esc)
214 getting files [=======================> ] 5/8\r (no-eol) (esc)
215 getting files [============================> ] 6/8\r (no-eol) (esc)
215 getting files [============================> ] 6/8\r (no-eol) (esc)
216 getting files [=================================> ] 7/8\r (no-eol) (esc)
216 getting files [=================================> ] 7/8\r (no-eol) (esc)
217 getting files [======================================>] 8/8\r (no-eol) (esc)
217 getting files [======================================>] 8/8\r (no-eol) (esc)
218 \r (no-eol) (esc)
218 \r (no-eol) (esc)
219 \r (no-eol) (esc)
219 \r (no-eol) (esc)
220 converting [===========================> ] 6/9\r (no-eol) (esc)
220 converting [===========================> ] 6/9\r (no-eol) (esc)
221 getting files [======================================>] 1/1\r (no-eol) (esc)
221 getting files [======================================>] 1/1\r (no-eol) (esc)
222 \r (no-eol) (esc)
222 \r (no-eol) (esc)
223 \r (no-eol) (esc)
223 \r (no-eol) (esc)
224 converting [===============================> ] 7/9\r (no-eol) (esc)
224 converting [===============================> ] 7/9\r (no-eol) (esc)
225 getting files [======================================>] 1/1\r (no-eol) (esc)
225 getting files [======================================>] 1/1\r (no-eol) (esc)
226 \r (no-eol) (esc)
226 \r (no-eol) (esc)
227 \r (no-eol) (esc)
227 \r (no-eol) (esc)
228 converting [====================================> ] 8/9\r (no-eol) (esc)
228 converting [====================================> ] 8/9\r (no-eol) (esc)
229 getting files [==================> ] 1/2\r (no-eol) (esc)
229 getting files [==================> ] 1/2\r (no-eol) (esc)
230 getting files [======================================>] 2/2\r (no-eol) (esc)
230 getting files [======================================>] 2/2\r (no-eol) (esc)
231 \r (no-eol) (esc)
231 \r (no-eol) (esc)
232 initializing destination fullrepo repository
232 initializing destination fullrepo repository
233 scanning source...
233 scanning source...
234 sorting...
234 sorting...
235 converting...
235 converting...
236 8 add foo
236 8 add foo
237 7 change foo
237 7 change foo
238 6 add quux
238 6 add quux
239 5 add bar
239 5 add bar
240 4 add baz
240 4 add baz
241 3 Octopus merge
241 3 Octopus merge
242 2 change bar
242 2 change bar
243 1 change foo
243 1 change foo
244 0 Discard change to foo
244 0 Discard change to foo
245 updating bookmarks
245 updating bookmarks
246 $ hg up -q -R fullrepo
246 $ hg up -q -R fullrepo
247 $ glog -R fullrepo
247 $ glog -R fullrepo
248 @ 9 "Discard change to foo" files: foo
248 @ 9 "Discard change to foo" files: foo
249 |\
249 |\
250 | o 8 "change foo" files: foo
250 | o 8 "change foo" files: foo
251 | |
251 | |
252 o | 7 "change bar" files: bar
252 o | 7 "change bar" files: bar
253 |/
253 |/
254 o 6 "(octopus merge fixup)" files:
254 o 6 "(octopus merge fixup)" files:
255 |\
255 |\
256 | o 5 "Octopus merge" files: baz
256 | o 5 "Octopus merge" files: baz
257 | |\
257 | |\
258 o | | 4 "add baz" files: baz
258 o | | 4 "add baz" files: baz
259 | | |
259 | | |
260 +---o 3 "add bar" files: bar
260 +---o 3 "add bar" files: bar
261 | |
261 | |
262 o | 2 "add quux" files: quux
262 o | 2 "add quux" files: quux
263 | |
263 | |
264 | o 1 "change foo" files: foo
264 | o 1 "change foo" files: foo
265 |/
265 |/
266 o 0 "add foo" files: foo
266 o 0 "add foo" files: foo
267
267
268 $ hg -R fullrepo manifest --debug
268 $ hg -R fullrepo manifest --debug
269 245a3b8bc653999c2b22cdabd517ccb47aecafdf 644 bar
269 245a3b8bc653999c2b22cdabd517ccb47aecafdf 644 bar
270 354ae8da6e890359ef49ade27b68bbc361f3ca88 644 baz
270 354ae8da6e890359ef49ade27b68bbc361f3ca88 644 baz
271 9277c9cc8dd4576fc01a17939b4351e5ada93466 644 foo
271 9277c9cc8dd4576fc01a17939b4351e5ada93466 644 foo
272 88dfeab657e8cf2cef3dec67b914f49791ae76b1 644 quux
272 88dfeab657e8cf2cef3dec67b914f49791ae76b1 644 quux
273 $ splitrepo 'octopus merge' 'foo bar baz'
273 $ splitrepo 'octopus merge' 'foo bar baz'
274 % foo bar baz: octopus merge
274 % foo bar baz: octopus merge
275 @ 8 "Discard change to foo" files: foo
275 @ 8 "Discard change to foo" files: foo
276 |\
276 |\
277 | o 7 "change foo" files: foo
277 | o 7 "change foo" files: foo
278 | |
278 | |
279 o | 6 "change bar" files: bar
279 o | 6 "change bar" files: bar
280 |/
280 |/
281 o 5 "(octopus merge fixup)" files:
281 o 5 "(octopus merge fixup)" files:
282 |\
282 |\
283 | o 4 "Octopus merge" files: baz
283 | o 4 "Octopus merge" files: baz
284 | |\
284 | |\
285 o | | 3 "add baz" files: baz
285 o | | 3 "add baz" files: baz
286 | | |
286 | | |
287 +---o 2 "add bar" files: bar
287 +---o 2 "add bar" files: bar
288 | |
288 | |
289 | o 1 "change foo" files: foo
289 | o 1 "change foo" files: foo
290 |/
290 |/
291 o 0 "add foo" files: foo
291 o 0 "add foo" files: foo
292
292
293 245a3b8bc653999c2b22cdabd517ccb47aecafdf 644 bar
293 245a3b8bc653999c2b22cdabd517ccb47aecafdf 644 bar
294 354ae8da6e890359ef49ade27b68bbc361f3ca88 644 baz
294 354ae8da6e890359ef49ade27b68bbc361f3ca88 644 baz
295 9277c9cc8dd4576fc01a17939b4351e5ada93466 644 foo
295 9277c9cc8dd4576fc01a17939b4351e5ada93466 644 foo
296 $ splitrepo 'only some parents of an octopus merge; "discard" a head' 'foo baz quux'
296 $ splitrepo 'only some parents of an octopus merge; "discard" a head' 'foo baz quux'
297 % foo baz quux: only some parents of an octopus merge; "discard" a head
297 % foo baz quux: only some parents of an octopus merge; "discard" a head
298 @ 6 "Discard change to foo" files: foo
298 @ 6 "Discard change to foo" files: foo
299 |
299 |
300 o 5 "change foo" files: foo
300 o 5 "change foo" files: foo
301 |
301 |
302 o 4 "Octopus merge" files:
302 o 4 "Octopus merge" files:
303 |\
303 |\
304 | o 3 "add baz" files: baz
304 | o 3 "add baz" files: baz
305 | |
305 | |
306 | o 2 "add quux" files: quux
306 | o 2 "add quux" files: quux
307 | |
307 | |
308 o | 1 "change foo" files: foo
308 o | 1 "change foo" files: foo
309 |/
309 |/
310 o 0 "add foo" files: foo
310 o 0 "add foo" files: foo
311
311
312 354ae8da6e890359ef49ade27b68bbc361f3ca88 644 baz
312 354ae8da6e890359ef49ade27b68bbc361f3ca88 644 baz
313 9277c9cc8dd4576fc01a17939b4351e5ada93466 644 foo
313 9277c9cc8dd4576fc01a17939b4351e5ada93466 644 foo
314 88dfeab657e8cf2cef3dec67b914f49791ae76b1 644 quux
314 88dfeab657e8cf2cef3dec67b914f49791ae76b1 644 quux
315
315
316 test importing git renames and copies
316 test importing git renames and copies
317
317
318 $ cd git-repo2
318 $ cd git-repo2
319 $ git mv foo foo-renamed
319 $ git mv foo foo-renamed
320 since bar is not touched in this commit, this copy will not be detected
320 since bar is not touched in this commit, this copy will not be detected
321 $ cp bar bar-copied
321 $ cp bar bar-copied
322 $ cp baz baz-copied
322 $ cp baz baz-copied
323 $ cp baz baz-copied2
323 $ cp baz baz-copied2
324 $ echo baz2 >> baz
324 $ echo baz2 >> baz
325 $ git add bar-copied baz-copied baz-copied2
325 $ git add bar-copied baz-copied baz-copied2
326 $ commit -a -m 'rename and copy'
326 $ commit -a -m 'rename and copy'
327 $ cd ..
327 $ cd ..
328
328
329 input validation
329 input validation
330 $ hg convert --config convert.git.similarity=foo --datesort git-repo2 fullrepo
330 $ hg convert --config convert.git.similarity=foo --datesort git-repo2 fullrepo
331 abort: convert.git.similarity is not an integer ('foo')
331 abort: convert.git.similarity is not an integer ('foo')
332 [255]
332 [255]
333 $ hg convert --config convert.git.similarity=-1 --datesort git-repo2 fullrepo
333 $ hg convert --config convert.git.similarity=-1 --datesort git-repo2 fullrepo
334 abort: similarity must be between 0 and 100
334 abort: similarity must be between 0 and 100
335 [255]
335 [255]
336 $ hg convert --config convert.git.similarity=101 --datesort git-repo2 fullrepo
336 $ hg convert --config convert.git.similarity=101 --datesort git-repo2 fullrepo
337 abort: similarity must be between 0 and 100
337 abort: similarity must be between 0 and 100
338 [255]
338 [255]
339
339
340 $ hg -q convert --config convert.git.similarity=100 --datesort git-repo2 fullrepo
340 $ hg -q convert --config convert.git.similarity=100 --datesort git-repo2 fullrepo
341 $ hg -R fullrepo status -C --change master
341 $ hg -R fullrepo status -C --change master
342 M baz
342 M baz
343 A bar-copied
343 A bar-copied
344 A baz-copied
344 A baz-copied
345 baz
345 baz
346 A baz-copied2
346 A baz-copied2
347 baz
347 baz
348 A foo-renamed
348 A foo-renamed
349 foo
349 foo
350 R foo
350 R foo
351
351
352 $ cd git-repo2
352 $ cd git-repo2
353 $ echo bar2 >> bar
353 $ echo bar2 >> bar
354 $ commit -a -m 'change bar'
354 $ commit -a -m 'change bar'
355 $ cp bar bar-copied2
355 $ cp bar bar-copied2
356 $ git add bar-copied2
356 $ git add bar-copied2
357 $ commit -a -m 'copy with no changes'
357 $ commit -a -m 'copy with no changes'
358 $ cd ..
358 $ cd ..
359
359
360 $ hg -q convert --config convert.git.similarity=100 \
360 $ hg -q convert --config convert.git.similarity=100 \
361 > --config convert.git.findcopiesharder=1 --datesort git-repo2 fullrepo
361 > --config convert.git.findcopiesharder=1 --datesort git-repo2 fullrepo
362 $ hg -R fullrepo status -C --change master
362 $ hg -R fullrepo status -C --change master
363 A bar-copied2
363 A bar-copied2
364 bar
364 bar
365
365
366 test binary conversion (issue1359)
366 test binary conversion (issue1359)
367
367
368 $ count=19
368 $ count=19
369 $ mkdir git-repo3
369 $ mkdir git-repo3
370 $ cd git-repo3
370 $ cd git-repo3
371 $ git init-db >/dev/null 2>/dev/null
371 $ git init-db >/dev/null 2>/dev/null
372 $ $PYTHON -c 'file("b", "wb").write("".join([chr(i) for i in range(256)])*16)'
372 $ $PYTHON -c 'file("b", "wb").write("".join([chr(i) for i in range(256)])*16)'
373 $ git add b
373 $ git add b
374 $ commit -a -m addbinary
374 $ commit -a -m addbinary
375 $ cd ..
375 $ cd ..
376
376
377 convert binary file
377 convert binary file
378
378
379 $ hg convert git-repo3 git-repo3-hg
379 $ hg convert git-repo3 git-repo3-hg
380 initializing destination git-repo3-hg repository
380 initializing destination git-repo3-hg repository
381 scanning source...
381 scanning source...
382 sorting...
382 sorting...
383 converting...
383 converting...
384 0 addbinary
384 0 addbinary
385 updating bookmarks
385 updating bookmarks
386 $ cd git-repo3-hg
386 $ cd git-repo3-hg
387 $ hg up -C
387 $ hg up -C
388 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
388 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
389 $ $PYTHON -c 'print len(file("b", "rb").read())'
389 $ $PYTHON -c 'print len(file("b", "rb").read())'
390 4096
390 4096
391 $ cd ..
391 $ cd ..
392
392
393 test author vs committer
393 test author vs committer
394
394
395 $ mkdir git-repo4
395 $ mkdir git-repo4
396 $ cd git-repo4
396 $ cd git-repo4
397 $ git init-db >/dev/null 2>/dev/null
397 $ git init-db >/dev/null 2>/dev/null
398 $ echo >> foo
398 $ echo >> foo
399 $ git add foo
399 $ git add foo
400 $ commit -a -m addfoo
400 $ commit -a -m addfoo
401 $ echo >> foo
401 $ echo >> foo
402 $ GIT_AUTHOR_NAME="nottest"
402 $ GIT_AUTHOR_NAME="nottest"
403 $ commit -a -m addfoo2
403 $ commit -a -m addfoo2
404 $ cd ..
404 $ cd ..
405
405
406 convert author committer
406 convert author committer
407
407
408 $ hg convert git-repo4 git-repo4-hg
408 $ hg convert git-repo4 git-repo4-hg
409 initializing destination git-repo4-hg repository
409 initializing destination git-repo4-hg repository
410 scanning source...
410 scanning source...
411 sorting...
411 sorting...
412 converting...
412 converting...
413 1 addfoo
413 1 addfoo
414 0 addfoo2
414 0 addfoo2
415 updating bookmarks
415 updating bookmarks
416 $ hg -R git-repo4-hg log -v
416 $ hg -R git-repo4-hg log -v
417 changeset: 1:d63e967f93da
417 changeset: 1:d63e967f93da
418 bookmark: master
418 bookmark: master
419 tag: tip
419 tag: tip
420 user: nottest <test@example.org>
420 user: nottest <test@example.org>
421 date: Mon Jan 01 00:00:21 2007 +0000
421 date: Mon Jan 01 00:00:21 2007 +0000
422 files: foo
422 files: foo
423 description:
423 description:
424 addfoo2
424 addfoo2
425
425
426 committer: test <test@example.org>
426 committer: test <test@example.org>
427
427
428
428
429 changeset: 0:0735477b0224
429 changeset: 0:0735477b0224
430 user: test <test@example.org>
430 user: test <test@example.org>
431 date: Mon Jan 01 00:00:20 2007 +0000
431 date: Mon Jan 01 00:00:20 2007 +0000
432 files: foo
432 files: foo
433 description:
433 description:
434 addfoo
434 addfoo
435
435
436
436
437
437
438 --sourceorder should fail
438 --sourceorder should fail
439
439
440 $ hg convert --sourcesort git-repo4 git-repo4-sourcesort-hg
440 $ hg convert --sourcesort git-repo4 git-repo4-sourcesort-hg
441 initializing destination git-repo4-sourcesort-hg repository
441 initializing destination git-repo4-sourcesort-hg repository
442 abort: --sourcesort is not supported by this data source
442 abort: --sourcesort is not supported by this data source
443 [255]
443 [255]
444
444
445 test sub modules
445 test sub modules
446
446
447 $ mkdir git-repo5
447 $ mkdir git-repo5
448 $ cd git-repo5
448 $ cd git-repo5
449 $ git init-db >/dev/null 2>/dev/null
449 $ git init-db >/dev/null 2>/dev/null
450 $ echo 'sub' >> foo
450 $ echo 'sub' >> foo
451 $ git add foo
451 $ git add foo
452 $ commit -a -m 'addfoo'
452 $ commit -a -m 'addfoo'
453 $ BASE=`pwd`
453 $ BASE=`pwd`
454 $ cd ..
454 $ cd ..
455 $ mkdir git-repo6
455 $ mkdir git-repo6
456 $ cd git-repo6
456 $ cd git-repo6
457 $ git init-db >/dev/null 2>/dev/null
457 $ git init-db >/dev/null 2>/dev/null
458 $ git submodule add ${BASE} >/dev/null 2>/dev/null
458 $ git submodule add ${BASE} >/dev/null 2>/dev/null
459 $ commit -a -m 'addsubmodule' >/dev/null 2>/dev/null
459 $ commit -a -m 'addsubmodule' >/dev/null 2>/dev/null
460
460
461 test non-tab whitespace .gitmodules
461 test non-tab whitespace .gitmodules
462
462
463 $ cat >> .gitmodules <<EOF
463 $ cat >> .gitmodules <<EOF
464 > [submodule "git-repo5"]
464 > [submodule "git-repo5"]
465 > path = git-repo5
465 > path = git-repo5
466 > url = $TESTTMP/git-repo5
466 > url = $TESTTMP/git-repo5
467 > EOF
467 > EOF
468 $ git commit -a -m "weird white space submodule"
468 $ git commit -q -a -m "weird white space submodule"
469 [master *] weird white space submodule (glob)
470 Author: nottest <test@example.org>
471 1 file changed, 3 insertions(+)
472 $ cd ..
469 $ cd ..
473 $ hg convert git-repo6 hg-repo6
470 $ hg convert git-repo6 hg-repo6
474 initializing destination hg-repo6 repository
471 initializing destination hg-repo6 repository
475 scanning source...
472 scanning source...
476 sorting...
473 sorting...
477 converting...
474 converting...
478 1 addsubmodule
475 1 addsubmodule
479 0 weird white space submodule
476 0 weird white space submodule
480 updating bookmarks
477 updating bookmarks
481
478
482 $ rm -rf hg-repo6
479 $ rm -rf hg-repo6
483 $ cd git-repo6
480 $ cd git-repo6
484 $ git reset --hard 'HEAD^' > /dev/null
481 $ git reset --hard 'HEAD^' > /dev/null
485
482
486 test missing .gitmodules
483 test missing .gitmodules
487
484
488 $ git submodule add ../git-repo4 >/dev/null 2>/dev/null
485 $ git submodule add ../git-repo4 >/dev/null 2>/dev/null
489 $ git checkout HEAD .gitmodules
486 $ git checkout HEAD .gitmodules
490 $ git rm .gitmodules
487 $ git rm .gitmodules
491 rm '.gitmodules'
488 rm '.gitmodules'
492 $ git commit -m "remove .gitmodules" .gitmodules
489 $ git commit -q -m "remove .gitmodules" .gitmodules
493 [master *] remove .gitmodules (glob)
490 $ git commit -q -m "missing .gitmodules"
494 Author: nottest <test@example.org>
495 1 file changed, 3 deletions(-)
496 delete mode 100644 .gitmodules
497 $ git commit -m "missing .gitmodules"
498 [master *] missing .gitmodules (glob)
499 Author: nottest <test@example.org>
500 1 file changed, 1 insertion(+)
501 create mode 160000 git-repo4
502 $ cd ..
491 $ cd ..
503 $ hg convert git-repo6 hg-repo6 --traceback
492 $ hg convert git-repo6 hg-repo6 --traceback
504 fatal: Path '.gitmodules' does not exist in '*' (glob)
493 fatal: Path '.gitmodules' does not exist in '*' (glob)
505 initializing destination hg-repo6 repository
494 initializing destination hg-repo6 repository
506 scanning source...
495 scanning source...
507 sorting...
496 sorting...
508 converting...
497 converting...
509 2 addsubmodule
498 2 addsubmodule
510 1 remove .gitmodules
499 1 remove .gitmodules
511 0 missing .gitmodules
500 0 missing .gitmodules
512 warning: cannot read submodules config file in * (glob)
501 warning: cannot read submodules config file in * (glob)
513 updating bookmarks
502 updating bookmarks
514 $ rm -rf hg-repo6
503 $ rm -rf hg-repo6
515 $ cd git-repo6
504 $ cd git-repo6
516 $ rm -rf git-repo4
505 $ rm -rf git-repo4
517 $ git reset --hard 'HEAD^^' > /dev/null
506 $ git reset --hard 'HEAD^^' > /dev/null
518 $ cd ..
507 $ cd ..
519
508
520 test invalid splicemap1
509 test invalid splicemap1
521
510
522 $ cat > splicemap <<EOF
511 $ cat > splicemap <<EOF
523 > $VALIDID1
512 > $VALIDID1
524 > EOF
513 > EOF
525 $ hg convert --splicemap splicemap git-repo2 git-repo2-splicemap1-hg
514 $ hg convert --splicemap splicemap git-repo2 git-repo2-splicemap1-hg
526 initializing destination git-repo2-splicemap1-hg repository
515 initializing destination git-repo2-splicemap1-hg repository
527 abort: syntax error in splicemap(1): child parent1[,parent2] expected
516 abort: syntax error in splicemap(1): child parent1[,parent2] expected
528 [255]
517 [255]
529
518
530 test invalid splicemap2
519 test invalid splicemap2
531
520
532 $ cat > splicemap <<EOF
521 $ cat > splicemap <<EOF
533 > $VALIDID1 $VALIDID2, $VALIDID2, $VALIDID2
522 > $VALIDID1 $VALIDID2, $VALIDID2, $VALIDID2
534 > EOF
523 > EOF
535 $ hg convert --splicemap splicemap git-repo2 git-repo2-splicemap2-hg
524 $ hg convert --splicemap splicemap git-repo2 git-repo2-splicemap2-hg
536 initializing destination git-repo2-splicemap2-hg repository
525 initializing destination git-repo2-splicemap2-hg repository
537 abort: syntax error in splicemap(1): child parent1[,parent2] expected
526 abort: syntax error in splicemap(1): child parent1[,parent2] expected
538 [255]
527 [255]
539
528
540 test invalid splicemap3
529 test invalid splicemap3
541
530
542 $ cat > splicemap <<EOF
531 $ cat > splicemap <<EOF
543 > $INVALIDID1 $INVALIDID2
532 > $INVALIDID1 $INVALIDID2
544 > EOF
533 > EOF
545 $ hg convert --splicemap splicemap git-repo2 git-repo2-splicemap3-hg
534 $ hg convert --splicemap splicemap git-repo2 git-repo2-splicemap3-hg
546 initializing destination git-repo2-splicemap3-hg repository
535 initializing destination git-repo2-splicemap3-hg repository
547 abort: splicemap entry afd12345af is not a valid revision identifier
536 abort: splicemap entry afd12345af is not a valid revision identifier
548 [255]
537 [255]
549
538
550 convert sub modules
539 convert sub modules
551 $ hg convert git-repo6 git-repo6-hg
540 $ hg convert git-repo6 git-repo6-hg
552 initializing destination git-repo6-hg repository
541 initializing destination git-repo6-hg repository
553 scanning source...
542 scanning source...
554 sorting...
543 sorting...
555 converting...
544 converting...
556 0 addsubmodule
545 0 addsubmodule
557 updating bookmarks
546 updating bookmarks
558 $ hg -R git-repo6-hg log -v
547 $ hg -R git-repo6-hg log -v
559 changeset: 0:* (glob)
548 changeset: 0:* (glob)
560 bookmark: master
549 bookmark: master
561 tag: tip
550 tag: tip
562 user: nottest <test@example.org>
551 user: nottest <test@example.org>
563 date: Mon Jan 01 00:00:23 2007 +0000
552 date: Mon Jan 01 00:00:23 2007 +0000
564 files: .hgsub .hgsubstate
553 files: .hgsub .hgsubstate
565 description:
554 description:
566 addsubmodule
555 addsubmodule
567
556
568 committer: test <test@example.org>
557 committer: test <test@example.org>
569
558
570
559
571
560
572 $ cd git-repo6-hg
561 $ cd git-repo6-hg
573 $ hg up >/dev/null 2>/dev/null
562 $ hg up >/dev/null 2>/dev/null
574 $ cat .hgsubstate
563 $ cat .hgsubstate
575 * git-repo5 (glob)
564 * git-repo5 (glob)
576 $ cd git-repo5
565 $ cd git-repo5
577 $ cat foo
566 $ cat foo
578 sub
567 sub
579
568
580 $ cd ../..
569 $ cd ../..
581
570
582 make sure rename detection doesn't break removing and adding gitmodules
571 make sure rename detection doesn't break removing and adding gitmodules
583
572
584 $ cd git-repo6
573 $ cd git-repo6
585 $ git mv .gitmodules .gitmodules-renamed
574 $ git mv .gitmodules .gitmodules-renamed
586 $ commit -a -m 'rename .gitmodules'
575 $ commit -a -m 'rename .gitmodules'
587 $ git mv .gitmodules-renamed .gitmodules
576 $ git mv .gitmodules-renamed .gitmodules
588 $ commit -a -m 'rename .gitmodules back'
577 $ commit -a -m 'rename .gitmodules back'
589 $ cd ..
578 $ cd ..
590
579
591 $ hg --config convert.git.similarity=100 convert -q git-repo6 git-repo6-hg
580 $ hg --config convert.git.similarity=100 convert -q git-repo6 git-repo6-hg
592 $ hg -R git-repo6-hg log -r 'tip^' -T "{desc|firstline}\n"
581 $ hg -R git-repo6-hg log -r 'tip^' -T "{desc|firstline}\n"
593 rename .gitmodules
582 rename .gitmodules
594 $ hg -R git-repo6-hg status -C --change 'tip^'
583 $ hg -R git-repo6-hg status -C --change 'tip^'
595 A .gitmodules-renamed
584 A .gitmodules-renamed
596 R .hgsub
585 R .hgsub
597 R .hgsubstate
586 R .hgsubstate
598 $ hg -R git-repo6-hg log -r tip -T "{desc|firstline}\n"
587 $ hg -R git-repo6-hg log -r tip -T "{desc|firstline}\n"
599 rename .gitmodules back
588 rename .gitmodules back
600 $ hg -R git-repo6-hg status -C --change tip
589 $ hg -R git-repo6-hg status -C --change tip
601 A .hgsub
590 A .hgsub
602 A .hgsubstate
591 A .hgsubstate
603 R .gitmodules-renamed
592 R .gitmodules-renamed
604
593
605 convert the revision removing '.gitmodules' itself (and related
594 convert the revision removing '.gitmodules' itself (and related
606 submodules)
595 submodules)
607
596
608 $ cd git-repo6
597 $ cd git-repo6
609 $ git rm .gitmodules
598 $ git rm .gitmodules
610 rm '.gitmodules'
599 rm '.gitmodules'
611 $ git rm --cached git-repo5
600 $ git rm --cached git-repo5
612 rm 'git-repo5'
601 rm 'git-repo5'
613 $ commit -a -m 'remove .gitmodules and submodule git-repo5'
602 $ commit -a -m 'remove .gitmodules and submodule git-repo5'
614 $ cd ..
603 $ cd ..
615
604
616 $ hg convert -q git-repo6 git-repo6-hg
605 $ hg convert -q git-repo6 git-repo6-hg
617 $ hg -R git-repo6-hg tip -T "{desc|firstline}\n"
606 $ hg -R git-repo6-hg tip -T "{desc|firstline}\n"
618 remove .gitmodules and submodule git-repo5
607 remove .gitmodules and submodule git-repo5
619 $ hg -R git-repo6-hg tip -T "{file_dels}\n"
608 $ hg -R git-repo6-hg tip -T "{file_dels}\n"
620 .hgsub .hgsubstate
609 .hgsub .hgsubstate
621
610
622 damaged git repository tests:
611 damaged git repository tests:
623 In case the hard-coded hashes change, the following commands can be used to
612 In case the hard-coded hashes change, the following commands can be used to
624 list the hashes and their corresponding types in the repository:
613 list the hashes and their corresponding types in the repository:
625 cd git-repo4/.git/objects
614 cd git-repo4/.git/objects
626 find . -type f | cut -c 3- | sed 's_/__' | xargs -n 1 -t git cat-file -t
615 find . -type f | cut -c 3- | sed 's_/__' | xargs -n 1 -t git cat-file -t
627 cd ../../..
616 cd ../../..
628
617
629 damage git repository by renaming a commit object
618 damage git repository by renaming a commit object
630 $ COMMIT_OBJ=1c/0ce3c5886f83a1d78a7b517cdff5cf9ca17bdd
619 $ COMMIT_OBJ=1c/0ce3c5886f83a1d78a7b517cdff5cf9ca17bdd
631 $ mv git-repo4/.git/objects/$COMMIT_OBJ git-repo4/.git/objects/$COMMIT_OBJ.tmp
620 $ mv git-repo4/.git/objects/$COMMIT_OBJ git-repo4/.git/objects/$COMMIT_OBJ.tmp
632 $ hg convert git-repo4 git-repo4-broken-hg 2>&1 | grep 'abort:'
621 $ hg convert git-repo4 git-repo4-broken-hg 2>&1 | grep 'abort:'
633 abort: cannot read tags from git-repo4/.git
622 abort: cannot read tags from git-repo4/.git
634 $ mv git-repo4/.git/objects/$COMMIT_OBJ.tmp git-repo4/.git/objects/$COMMIT_OBJ
623 $ mv git-repo4/.git/objects/$COMMIT_OBJ.tmp git-repo4/.git/objects/$COMMIT_OBJ
635 damage git repository by renaming a blob object
624 damage git repository by renaming a blob object
636
625
637 $ BLOB_OBJ=8b/137891791fe96927ad78e64b0aad7bded08bdc
626 $ BLOB_OBJ=8b/137891791fe96927ad78e64b0aad7bded08bdc
638 $ mv git-repo4/.git/objects/$BLOB_OBJ git-repo4/.git/objects/$BLOB_OBJ.tmp
627 $ mv git-repo4/.git/objects/$BLOB_OBJ git-repo4/.git/objects/$BLOB_OBJ.tmp
639 $ hg convert git-repo4 git-repo4-broken-hg 2>&1 | grep 'abort:'
628 $ hg convert git-repo4 git-repo4-broken-hg 2>&1 | grep 'abort:'
640 abort: cannot read 'blob' object at 8b137891791fe96927ad78e64b0aad7bded08bdc
629 abort: cannot read 'blob' object at 8b137891791fe96927ad78e64b0aad7bded08bdc
641 $ mv git-repo4/.git/objects/$BLOB_OBJ.tmp git-repo4/.git/objects/$BLOB_OBJ
630 $ mv git-repo4/.git/objects/$BLOB_OBJ.tmp git-repo4/.git/objects/$BLOB_OBJ
642 damage git repository by renaming a tree object
631 damage git repository by renaming a tree object
643
632
644 $ TREE_OBJ=72/49f083d2a63a41cc737764a86981eb5f3e4635
633 $ TREE_OBJ=72/49f083d2a63a41cc737764a86981eb5f3e4635
645 $ mv git-repo4/.git/objects/$TREE_OBJ git-repo4/.git/objects/$TREE_OBJ.tmp
634 $ mv git-repo4/.git/objects/$TREE_OBJ git-repo4/.git/objects/$TREE_OBJ.tmp
646 $ hg convert git-repo4 git-repo4-broken-hg 2>&1 | grep 'abort:'
635 $ hg convert git-repo4 git-repo4-broken-hg 2>&1 | grep 'abort:'
647 abort: cannot read changes in 1c0ce3c5886f83a1d78a7b517cdff5cf9ca17bdd
636 abort: cannot read changes in 1c0ce3c5886f83a1d78a7b517cdff5cf9ca17bdd
General Comments 0
You need to be logged in to leave comments. Login now