Show More
@@ -362,11 +362,14 b' def compare(repo, srcmarks, dstmarks,' | |||||
362 |
|
362 | |||
363 | return results |
|
363 | return results | |
364 |
|
364 | |||
365 | def _diverge(ui, b, path, localmarks): |
|
365 | def _diverge(ui, b, path, localmarks, remotenode): | |
366 | '''Return appropriate diverged bookmark for specified ``path`` |
|
366 | '''Return appropriate diverged bookmark for specified ``path`` | |
367 |
|
367 | |||
368 | This returns None, if it is failed to assign any divergent |
|
368 | This returns None, if it is failed to assign any divergent | |
369 | bookmark name. |
|
369 | bookmark name. | |
|
370 | ||||
|
371 | This reuses already existing one with "@number" suffix, if it | |||
|
372 | refers ``remotenode``. | |||
370 | ''' |
|
373 | ''' | |
371 | if b == '@': |
|
374 | if b == '@': | |
372 | b = '' |
|
375 | b = '' | |
@@ -383,7 +386,7 b' def _diverge(ui, b, path, localmarks):' | |||||
383 | # assign a unique "@number" suffix newly |
|
386 | # assign a unique "@number" suffix newly | |
384 | for x in range(1, 100): |
|
387 | for x in range(1, 100): | |
385 | n = '%s@%d' % (b, x) |
|
388 | n = '%s@%d' % (b, x) | |
386 | if n not in localmarks: |
|
389 | if n not in localmarks or localmarks[n] == remotenode: | |
387 | return n |
|
390 | return n | |
388 |
|
391 | |||
389 | return None |
|
392 | return None | |
@@ -417,9 +420,10 b' def updatefromremote(ui, repo, remotemar' | |||||
417 | changed.append((b, bin(scid), status, |
|
420 | changed.append((b, bin(scid), status, | |
418 | _("importing bookmark %s\n") % (b))) |
|
421 | _("importing bookmark %s\n") % (b))) | |
419 | else: |
|
422 | else: | |
420 | db = _diverge(ui, b, path, localmarks) |
|
423 | snode = bin(scid) | |
|
424 | db = _diverge(ui, b, path, localmarks, snode) | |||
421 | if db: |
|
425 | if db: | |
422 |
changed.append((db, |
|
426 | changed.append((db, snode, warn, | |
423 | _("divergent bookmark %s stored as %s\n") % |
|
427 | _("divergent bookmark %s stored as %s\n") % | |
424 | (b, db))) |
|
428 | (b, db))) | |
425 | else: |
|
429 | else: |
@@ -182,6 +182,24 b' divergent bookmarks' | |||||
182 | $ hg bookmarks | grep '^ X' | grep -v ':000000000000' |
|
182 | $ hg bookmarks | grep '^ X' | grep -v ':000000000000' | |
183 | X 1:9b140be10808 |
|
183 | X 1:9b140be10808 | |
184 | X@foo 2:0d2164f0ce0d |
|
184 | X@foo 2:0d2164f0ce0d | |
|
185 | ||||
|
186 | (test that remotely diverged bookmarks are reused if they aren't changed) | |||
|
187 | ||||
|
188 | $ hg bookmarks | grep '^ @' | |||
|
189 | @ 1:9b140be10808 | |||
|
190 | @1 2:0d2164f0ce0d | |||
|
191 | @foo 2:0d2164f0ce0d | |||
|
192 | $ hg pull ../a | |||
|
193 | pulling from ../a | |||
|
194 | searching for changes | |||
|
195 | no changes found | |||
|
196 | warning: failed to assign numbered name to divergent bookmark X | |||
|
197 | divergent bookmark @ stored as @1 | |||
|
198 | $ hg bookmarks | grep '^ @' | |||
|
199 | @ 1:9b140be10808 | |||
|
200 | @1 2:0d2164f0ce0d | |||
|
201 | @foo 2:0d2164f0ce0d | |||
|
202 | ||||
185 | $ python $TESTTMP/seq.py 1 100 | while read i; do hg bookmarks -d "X@${i}"; done |
|
203 | $ python $TESTTMP/seq.py 1 100 | while read i; do hg bookmarks -d "X@${i}"; done | |
186 | $ hg bookmarks -d "@1" |
|
204 | $ hg bookmarks -d "@1" | |
187 |
|
205 |
General Comments 0
You need to be logged in to leave comments.
Login now