##// END OF EJS Templates
merge: use labels in subrepo merge...
Simon Farnsworth -
r30060:a145161d default
parent child Browse files
Show More
@@ -1150,7 +1150,7 b' def applyupdates(repo, actions, wctx, mc'
1150 numupdates = sum(len(l) for m, l in actions.items() if m != 'k')
1150 numupdates = sum(len(l) for m, l in actions.items() if m != 'k')
1151
1151
1152 if [a for a in actions['r'] if a[0] == '.hgsubstate']:
1152 if [a for a in actions['r'] if a[0] == '.hgsubstate']:
1153 subrepo.submerge(repo, wctx, mctx, wctx, overwrite)
1153 subrepo.submerge(repo, wctx, mctx, wctx, overwrite, labels)
1154
1154
1155 # remove in parallel (must come first)
1155 # remove in parallel (must come first)
1156 z = 0
1156 z = 0
@@ -1168,7 +1168,7 b' def applyupdates(repo, actions, wctx, mc'
1168 updated = len(actions['g'])
1168 updated = len(actions['g'])
1169
1169
1170 if [a for a in actions['g'] if a[0] == '.hgsubstate']:
1170 if [a for a in actions['g'] if a[0] == '.hgsubstate']:
1171 subrepo.submerge(repo, wctx, mctx, wctx, overwrite)
1171 subrepo.submerge(repo, wctx, mctx, wctx, overwrite, labels)
1172
1172
1173 # forget (manifest only, just log it) (must come first)
1173 # forget (manifest only, just log it) (must come first)
1174 for f, args, msg in actions['f']:
1174 for f, args, msg in actions['f']:
@@ -1253,7 +1253,7 b' def applyupdates(repo, actions, wctx, mc'
1253 progress(_updating, z, item=f, total=numupdates, unit=_files)
1253 progress(_updating, z, item=f, total=numupdates, unit=_files)
1254 if f == '.hgsubstate': # subrepo states need updating
1254 if f == '.hgsubstate': # subrepo states need updating
1255 subrepo.submerge(repo, wctx, mctx, wctx.ancestor(mctx),
1255 subrepo.submerge(repo, wctx, mctx, wctx.ancestor(mctx),
1256 overwrite)
1256 overwrite, labels)
1257 continue
1257 continue
1258 audit(f)
1258 audit(f)
1259 complete, r = ms.preresolve(f, wctx)
1259 complete, r = ms.preresolve(f, wctx)
@@ -26,6 +26,7 b' from . import ('
26 config,
26 config,
27 error,
27 error,
28 exchange,
28 exchange,
29 filemerge,
29 match as matchmod,
30 match as matchmod,
30 node,
31 node,
31 pathutil,
32 pathutil,
@@ -174,7 +175,7 b' def writestate(repo, state):'
174 if state[s][1] != nullstate[1]]
175 if state[s][1] != nullstate[1]]
175 repo.wwrite('.hgsubstate', ''.join(lines), '')
176 repo.wwrite('.hgsubstate', ''.join(lines), '')
176
177
177 def submerge(repo, wctx, mctx, actx, overwrite):
178 def submerge(repo, wctx, mctx, actx, overwrite, labels=None):
178 """delegated from merge.applyupdates: merging of .hgsubstate file
179 """delegated from merge.applyupdates: merging of .hgsubstate file
179 in working context, merging context and ancestor context"""
180 in working context, merging context and ancestor context"""
180 if mctx == actx: # backwards?
181 if mctx == actx: # backwards?
@@ -200,6 +201,8 b' def submerge(repo, wctx, mctx, actx, ove'
200 a = ld
201 a = ld
201
202
202 if s in s2:
203 if s in s2:
204 prompts = filemerge.partextras(labels)
205 prompts['s'] = s
203 r = s2[s]
206 r = s2[s]
204 if ld == r or r == a: # no change or local is newer
207 if ld == r or r == a: # no change or local is newer
205 sm[s] = l
208 sm[s] = l
@@ -209,10 +212,13 b' def submerge(repo, wctx, mctx, actx, ove'
209 wctx.sub(s).get(r, overwrite)
212 wctx.sub(s).get(r, overwrite)
210 sm[s] = r
213 sm[s] = r
211 elif ld[0] != r[0]: # sources differ
214 elif ld[0] != r[0]: # sources differ
215 prompts['lo'] = l[0]
216 prompts['ro'] = r[0]
212 if repo.ui.promptchoice(
217 if repo.ui.promptchoice(
213 _(' subrepository sources for %s differ\n'
218 _(' subrepository sources for %(s)s differ\n'
214 'use (l)ocal source (%s) or (r)emote source (%s)?'
219 'use (l)ocal%(l)s source (%(lo)s)'
215 '$$ &Local $$ &Remote') % (s, l[0], r[0]), 0):
220 ' or (r)emote%(o)s source (%(ro)s)?'
221 '$$ &Local $$ &Remote') % prompts, 0):
216 debug(s, "prompt changed, get", r)
222 debug(s, "prompt changed, get", r)
217 wctx.sub(s).get(r, overwrite)
223 wctx.sub(s).get(r, overwrite)
218 sm[s] = r
224 sm[s] = r
@@ -223,12 +229,14 b' def submerge(repo, wctx, mctx, actx, ove'
223 else:
229 else:
224 debug(s, "both sides changed")
230 debug(s, "both sides changed")
225 srepo = wctx.sub(s)
231 srepo = wctx.sub(s)
232 prompts['sl'] = srepo.shortid(l[1])
233 prompts['sr'] = srepo.shortid(r[1])
226 option = repo.ui.promptchoice(
234 option = repo.ui.promptchoice(
227 _(' subrepository %s diverged (local revision: %s, '
235 _(' subrepository %(s)s diverged (local revision: %(sl)s, '
228 'remote revision: %s)\n'
236 'remote revision: %(sr)s)\n'
229 '(M)erge, keep (l)ocal or keep (r)emote?'
237 '(M)erge, keep (l)ocal%(l)s or keep (r)emote%(o)s?'
230 '$$ &Merge $$ &Local $$ &Remote')
238 '$$ &Merge $$ &Local $$ &Remote')
231 % (s, srepo.shortid(l[1]), srepo.shortid(r[1])), 0)
239 % prompts, 0)
232 if option == 0:
240 if option == 0:
233 wctx.sub(s).merge(r)
241 wctx.sub(s).merge(r)
234 sm[s] = l
242 sm[s] = l
@@ -249,9 +257,10 b' def submerge(repo, wctx, mctx, actx, ove'
249 continue
257 continue
250 else:
258 else:
251 if repo.ui.promptchoice(
259 if repo.ui.promptchoice(
252 _(' local changed subrepository %s which remote removed\n'
260 _(' local%(l)s changed subrepository %(s)s'
261 ' which remote%(o)s removed\n'
253 'use (c)hanged version or (d)elete?'
262 'use (c)hanged version or (d)elete?'
254 '$$ &Changed $$ &Delete') % s, 0):
263 '$$ &Changed $$ &Delete') % prompts, 0):
255 debug(s, "prompt remove")
264 debug(s, "prompt remove")
256 wctx.sub(s).remove()
265 wctx.sub(s).remove()
257
266
@@ -264,9 +273,10 b' def submerge(repo, wctx, mctx, actx, ove'
264 sm[s] = r
273 sm[s] = r
265 elif r != sa[s]:
274 elif r != sa[s]:
266 if repo.ui.promptchoice(
275 if repo.ui.promptchoice(
267 _(' remote changed subrepository %s which local removed\n'
276 _(' remote%(o)s changed subrepository %(s)s'
277 ' which local%(l)s removed\n'
268 'use (c)hanged version or (d)elete?'
278 'use (c)hanged version or (d)elete?'
269 '$$ &Changed $$ &Delete') % s, 0) == 0:
279 '$$ &Changed $$ &Delete') % prompts, 0) == 0:
270 debug(s, "prompt recreate", r)
280 debug(s, "prompt recreate", r)
271 mctx.sub(s).get(r)
281 mctx.sub(s).get(r)
272 sm[s] = r
282 sm[s] = r
@@ -546,7 +546,7 b' Test that the internal linear merging wo'
546 > l
546 > l
547 > EOF
547 > EOF
548 subrepository sub diverged (local revision: f74e50bd9e55, remote revision: d65e59e952a9)
548 subrepository sub diverged (local revision: f74e50bd9e55, remote revision: d65e59e952a9)
549 (M)erge, keep (l)ocal or keep (r)emote? m
549 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
550 subrepository sources for sub differ (in checked out version)
550 subrepository sources for sub differ (in checked out version)
551 use (l)ocal source (f74e50bd9e55) or (r)emote source (d65e59e952a9)? r
551 use (l)ocal source (f74e50bd9e55) or (r)emote source (d65e59e952a9)? r
552 remote turned local largefile large2 into a normal file
552 remote turned local largefile large2 into a normal file
@@ -507,7 +507,7 b' Sticky subrepositories, file changes'
507 $ cd ..
507 $ cd ..
508 $ hg update 4
508 $ hg update 4
509 subrepository s diverged (local revision: da5f5b1, remote revision: aa84837)
509 subrepository s diverged (local revision: da5f5b1, remote revision: aa84837)
510 (M)erge, keep (l)ocal or keep (r)emote? m
510 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
511 subrepository sources for s differ
511 subrepository sources for s differ
512 use (l)ocal source (da5f5b1) or (r)emote source (aa84837)? l
512 use (l)ocal source (da5f5b1) or (r)emote source (aa84837)? l
513 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
513 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -533,7 +533,7 b' Sticky subrepository, revision updates'
533 $ cd ..
533 $ cd ..
534 $ hg update 1
534 $ hg update 1
535 subrepository s diverged (local revision: 32a3438, remote revision: da5f5b1)
535 subrepository s diverged (local revision: 32a3438, remote revision: da5f5b1)
536 (M)erge, keep (l)ocal or keep (r)emote? m
536 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
537 subrepository sources for s differ (in checked out version)
537 subrepository sources for s differ (in checked out version)
538 use (l)ocal source (32a3438) or (r)emote source (da5f5b1)? l
538 use (l)ocal source (32a3438) or (r)emote source (da5f5b1)? l
539 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
539 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -555,7 +555,7 b' Sticky subrepository, file changes and r'
555 1+
555 1+
556 $ hg update 7
556 $ hg update 7
557 subrepository s diverged (local revision: 32a3438, remote revision: 32a3438)
557 subrepository s diverged (local revision: 32a3438, remote revision: 32a3438)
558 (M)erge, keep (l)ocal or keep (r)emote? m
558 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
559 subrepository sources for s differ
559 subrepository sources for s differ
560 use (l)ocal source (32a3438) or (r)emote source (32a3438)? l
560 use (l)ocal source (32a3438) or (r)emote source (32a3438)? l
561 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
561 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -310,7 +310,7 b' Sticky subrepositories, file changes'
310 $ cd ..
310 $ cd ..
311 $ hg update tip
311 $ hg update tip
312 subrepository s diverged (local revision: 2, remote revision: 3)
312 subrepository s diverged (local revision: 2, remote revision: 3)
313 (M)erge, keep (l)ocal or keep (r)emote? m
313 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
314 subrepository sources for s differ
314 subrepository sources for s differ
315 use (l)ocal source (2) or (r)emote source (3)? l
315 use (l)ocal source (2) or (r)emote source (3)? l
316 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
316 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -341,7 +341,7 b' Sticky subrepository, revision updates'
341 $ cd ..
341 $ cd ..
342 $ hg update 1
342 $ hg update 1
343 subrepository s diverged (local revision: 3, remote revision: 2)
343 subrepository s diverged (local revision: 3, remote revision: 2)
344 (M)erge, keep (l)ocal or keep (r)emote? m
344 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
345 subrepository sources for s differ (in checked out version)
345 subrepository sources for s differ (in checked out version)
346 use (l)ocal source (1) or (r)emote source (2)? l
346 use (l)ocal source (1) or (r)emote source (2)? l
347 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
347 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -364,7 +364,7 b' Sticky subrepository, file changes and r'
364 1+
364 1+
365 $ hg update tip
365 $ hg update tip
366 subrepository s diverged (local revision: 3, remote revision: 3)
366 subrepository s diverged (local revision: 3, remote revision: 3)
367 (M)erge, keep (l)ocal or keep (r)emote? m
367 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
368 subrepository sources for s differ
368 subrepository sources for s differ
369 use (l)ocal source (1) or (r)emote source (3)? l
369 use (l)ocal source (1) or (r)emote source (3)? l
370 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
370 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -398,7 +398,7 b' Test subrepo already at intended revisio'
398 $ cd ..
398 $ cd ..
399 $ hg update 1
399 $ hg update 1
400 subrepository s diverged (local revision: 3, remote revision: 2)
400 subrepository s diverged (local revision: 3, remote revision: 2)
401 (M)erge, keep (l)ocal or keep (r)emote? m
401 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
402 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
402 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
403 $ hg id -n
403 $ hg id -n
404 1+
404 1+
@@ -303,6 +303,7 b' merge tests'
303 subrepo merge e45c8b14af55+ f94576341bcf 1831e14459c4
303 subrepo merge e45c8b14af55+ f94576341bcf 1831e14459c4
304 subrepo t: both sides changed
304 subrepo t: both sides changed
305 subrepository t diverged (local revision: 20a0db6fbf6c, remote revision: 7af322bc1198)
305 subrepository t diverged (local revision: 20a0db6fbf6c, remote revision: 7af322bc1198)
306 starting 4 threads for background file closing (?)
306 (M)erge, keep (l)ocal or keep (r)emote? m
307 (M)erge, keep (l)ocal or keep (r)emote? m
307 merging subrepo t
308 merging subrepo t
308 searching for copies back to rev 2
309 searching for copies back to rev 2
@@ -310,7 +311,6 b' merge tests'
310 branchmerge: True, force: False, partial: False
311 branchmerge: True, force: False, partial: False
311 ancestor: 6747d179aa9a, local: 20a0db6fbf6c+, remote: 7af322bc1198
312 ancestor: 6747d179aa9a, local: 20a0db6fbf6c+, remote: 7af322bc1198
312 preserving t for resolve of t
313 preserving t for resolve of t
313 starting 4 threads for background file closing (?)
314 t: versions differ -> m (premerge)
314 t: versions differ -> m (premerge)
315 picked tool ':merge' for t (binary False symlink False changedelete False)
315 picked tool ':merge' for t (binary False symlink False changedelete False)
316 merging t
316 merging t
@@ -349,7 +349,7 b' 11: remove subrepo t'
349 local removed, remote changed, keep changed
349 local removed, remote changed, keep changed
350
350
351 $ hg merge 6
351 $ hg merge 6
352 remote changed subrepository t which local removed
352 remote changed subrepository s which local removed
353 use (c)hanged version or (d)elete? c
353 use (c)hanged version or (d)elete? c
354 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
354 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
355 (branch merge, don't forget to commit)
355 (branch merge, don't forget to commit)
@@ -380,7 +380,7 b' local removed, remote changed, keep remo'
380 $ hg merge --config ui.interactive=true 6 <<EOF
380 $ hg merge --config ui.interactive=true 6 <<EOF
381 > d
381 > d
382 > EOF
382 > EOF
383 remote changed subrepository t which local removed
383 remote changed subrepository s which local removed
384 use (c)hanged version or (d)elete? d
384 use (c)hanged version or (d)elete? d
385 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
385 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
386 (branch merge, don't forget to commit)
386 (branch merge, don't forget to commit)
@@ -404,7 +404,7 b' local changed, remote removed, keep chan'
404 $ hg co -C 6
404 $ hg co -C 6
405 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
405 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
406 $ hg merge 11
406 $ hg merge 11
407 local changed subrepository t which remote removed
407 local changed subrepository s which remote removed
408 use (c)hanged version or (d)elete? c
408 use (c)hanged version or (d)elete? c
409 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
409 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
410 (branch merge, don't forget to commit)
410 (branch merge, don't forget to commit)
@@ -436,7 +436,7 b' local changed, remote removed, keep remo'
436 $ hg merge --config ui.interactive=true 11 <<EOF
436 $ hg merge --config ui.interactive=true 11 <<EOF
437 > d
437 > d
438 > EOF
438 > EOF
439 local changed subrepository t which remote removed
439 local changed subrepository s which remote removed
440 use (c)hanged version or (d)elete? d
440 use (c)hanged version or (d)elete? d
441 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
441 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
442 (branch merge, don't forget to commit)
442 (branch merge, don't forget to commit)
@@ -1129,7 +1129,7 b" Check that merge of a new subrepo doesn'"
1129 adding file changes
1129 adding file changes
1130 added 1 changesets with 2 changes to 2 files
1130 added 1 changesets with 2 changes to 2 files
1131 subrepository sub/repo diverged (local revision: f42d5c7504a8, remote revision: 46cd4aac504c)
1131 subrepository sub/repo diverged (local revision: f42d5c7504a8, remote revision: 46cd4aac504c)
1132 (M)erge, keep (l)ocal or keep (r)emote? m
1132 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
1133 pulling subrepo sub/repo from $TESTTMP/issue1852a/sub/repo (glob)
1133 pulling subrepo sub/repo from $TESTTMP/issue1852a/sub/repo (glob)
1134 searching for changes
1134 searching for changes
1135 adding changesets
1135 adding changesets
@@ -1238,11 +1238,11 b' Sticky subrepositories, file changes'
1238 e95bcfa18a35+
1238 e95bcfa18a35+
1239 $ hg update tip
1239 $ hg update tip
1240 subrepository s diverged (local revision: fc627a69481f, remote revision: 12a213df6fa9)
1240 subrepository s diverged (local revision: fc627a69481f, remote revision: 12a213df6fa9)
1241 (M)erge, keep (l)ocal or keep (r)emote? m
1241 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
1242 subrepository sources for s differ
1242 subrepository sources for s differ
1243 use (l)ocal source (fc627a69481f) or (r)emote source (12a213df6fa9)? l
1243 use (l)ocal source (fc627a69481f) or (r)emote source (12a213df6fa9)? l
1244 subrepository t diverged (local revision: e95bcfa18a35, remote revision: 52c0adc0515a)
1244 subrepository t diverged (local revision: e95bcfa18a35, remote revision: 52c0adc0515a)
1245 (M)erge, keep (l)ocal or keep (r)emote? m
1245 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
1246 subrepository sources for t differ
1246 subrepository sources for t differ
1247 use (l)ocal source (e95bcfa18a35) or (r)emote source (52c0adc0515a)? l
1247 use (l)ocal source (e95bcfa18a35) or (r)emote source (52c0adc0515a)? l
1248 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1248 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -1271,9 +1271,9 b' Sticky subrepository, revision updates'
1271 $ cd ..
1271 $ cd ..
1272 $ hg update 10
1272 $ hg update 10
1273 subrepository s diverged (local revision: 12a213df6fa9, remote revision: fc627a69481f)
1273 subrepository s diverged (local revision: 12a213df6fa9, remote revision: fc627a69481f)
1274 (M)erge, keep (l)ocal or keep (r)emote? m
1274 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
1275 subrepository t diverged (local revision: 52c0adc0515a, remote revision: 20a0db6fbf6c)
1275 subrepository t diverged (local revision: 52c0adc0515a, remote revision: 20a0db6fbf6c)
1276 (M)erge, keep (l)ocal or keep (r)emote? m
1276 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
1277 subrepository sources for t differ (in checked out version)
1277 subrepository sources for t differ (in checked out version)
1278 use (l)ocal source (7af322bc1198) or (r)emote source (20a0db6fbf6c)? l
1278 use (l)ocal source (7af322bc1198) or (r)emote source (20a0db6fbf6c)? l
1279 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1279 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -1297,11 +1297,11 b' Sticky subrepository, file changes and r'
1297 7af322bc1198+
1297 7af322bc1198+
1298 $ hg update tip
1298 $ hg update tip
1299 subrepository s diverged (local revision: 12a213df6fa9, remote revision: 12a213df6fa9)
1299 subrepository s diverged (local revision: 12a213df6fa9, remote revision: 12a213df6fa9)
1300 (M)erge, keep (l)ocal or keep (r)emote? m
1300 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
1301 subrepository sources for s differ
1301 subrepository sources for s differ
1302 use (l)ocal source (02dcf1d70411) or (r)emote source (12a213df6fa9)? l
1302 use (l)ocal source (02dcf1d70411) or (r)emote source (12a213df6fa9)? l
1303 subrepository t diverged (local revision: 52c0adc0515a, remote revision: 52c0adc0515a)
1303 subrepository t diverged (local revision: 52c0adc0515a, remote revision: 52c0adc0515a)
1304 (M)erge, keep (l)ocal or keep (r)emote? m
1304 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
1305 subrepository sources for t differ
1305 subrepository sources for t differ
1306 use (l)ocal source (7af322bc1198) or (r)emote source (52c0adc0515a)? l
1306 use (l)ocal source (7af322bc1198) or (r)emote source (52c0adc0515a)? l
1307 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1307 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -1329,7 +1329,7 b' Test subrepo already at intended revisio'
1329 $ cd ..
1329 $ cd ..
1330 $ hg update 11
1330 $ hg update 11
1331 subrepository s diverged (local revision: 12a213df6fa9, remote revision: fc627a69481f)
1331 subrepository s diverged (local revision: 12a213df6fa9, remote revision: fc627a69481f)
1332 (M)erge, keep (l)ocal or keep (r)emote? m
1332 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
1333 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1333 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1334 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1334 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1335 $ hg id -n
1335 $ hg id -n
General Comments 0
You need to be logged in to leave comments. Login now