mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 15:27:13 +03:00
destutil: show message about other branch heads, even if on a closed head
Before this patch, bare "hg update" displays message below, if there is at least one non-closed branch head other than current parent: 1. 'XX other heads for branch "BRANCH"' message, if current parent is on a non-closed branch head This suggests user to invoke "hg heads" or so for merging them. 2. no message, if current parent is on a closed branch head At this patch, bare "hg update" might choose closed branch head as update destination, and it causes this situation easily. 3. no message, otherwise (= current parent isn't on any branch head) 'XX other heads for branch "BRANCH"' should be displayed also in #2 case above, because user might overlook other non-closed branch heads. This patch gets a list of all branch heads regardless of closed-ness of it, and uses it (= 'allheads') to distinguish #1/#2 from #3 above.
This commit is contained in:
parent
4bd619a29e
commit
c83f9e65b1
@ -358,9 +358,10 @@ def _statusotherbook(ui, repo):
|
||||
|
||||
def _statusotherbranchheads(ui, repo):
|
||||
currentbranch = repo.dirstate.branch()
|
||||
allheads = repo.branchheads(currentbranch, closed=True)
|
||||
heads = repo.branchheads(currentbranch)
|
||||
if repo.revs('%ln and parents()', heads):
|
||||
# we are on a head
|
||||
if repo.revs('%ln and parents()', allheads):
|
||||
# we are on a head, even though it might be closed
|
||||
otherheads = repo.revs('%ln - parents()', heads)
|
||||
if otherheads:
|
||||
ui.status(_('%i other heads for branch "%s"\n') %
|
||||
|
@ -175,6 +175,41 @@ Cases are run as shown in that table, row by row.
|
||||
parent=1
|
||||
M foo
|
||||
|
||||
$ cd ..
|
||||
|
||||
Test updating with closed head
|
||||
---------------------------------------------------------------------
|
||||
|
||||
$ hg clone -U -q b1 closed-heads
|
||||
$ cd closed-heads
|
||||
|
||||
Test updating if at least one non-closed branch head exists
|
||||
|
||||
if on the closed branch head:
|
||||
- updating is no-op
|
||||
- "N other heads for ...." message is displayed
|
||||
|
||||
$ hg update -q -C 3
|
||||
$ hg commit --close-branch -m 6
|
||||
$ norevtest "on closed branch head" clean 6
|
||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
1 other heads for branch "default"
|
||||
parent=6
|
||||
|
||||
Test updating if all branch heads are closed
|
||||
|
||||
if on the closed branch head:
|
||||
- updating is no-op
|
||||
- "N other heads for ...." message isn't displayed
|
||||
|
||||
$ hg update -q -C 2
|
||||
$ hg commit --close-branch -m 7
|
||||
$ norevtest "all heads of branch default are closed" clean 6
|
||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
parent=6
|
||||
|
||||
$ cd ../b1
|
||||
|
||||
Test obsolescence behavior
|
||||
---------------------------------------------------------------------
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user