##// END OF EJS Templates
bookmarks: reuse @number bookmark, if it refers changeset referred remotely...
FUJIWARA Katsunori -
r24355:ca4b8968 default
parent child Browse files
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, bin(scid), warn,
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