##// END OF EJS Templates
phabricator: warn if unable to amend, instead of aborting after posting...
phabricator: warn if unable to amend, instead of aborting after posting There was a divergence in behavior here between obsolete and strip based amending. I first noticed the abort when testing outside of the test harness, but then had trouble recreating it here after reverting the code changes. It turns out, strip based amend was successfully amending the public commit after it was posted! It looks like the protection is in the `commit --amend` command, not in the underlying code that it calls. I considered doing a preflight check and aborting. But the locks are only acquired at the end, if amending, and this is too large a section of code to be wrapped in a maybe-it's-held-or-not context manager for my tastes. Additionally, some people do post-push reviews, and amending is the default behavior, so they shouldn't see a misleading error message. The lack of a 'Differential Revision' entry in the commit message breaks a {phabreview} test, so it had to be partially conditionalized.

File last commit:

r40132:12a72729 default
r41198:0101a35d default
Show More
test-close-head.t
74 lines | 1.8 KiB | text/troff | Tads3Lexer
/ tests / test-close-head.t
Joerg Sonnenberger
extensions: new closehead module for closing arbitrary heads...
r40029 $ hg init test-content
$ cd test-content
Joerg Sonnenberger
closehead: fix close-head -r listification...
r40132 $ hg debugbuilddag '+2*2*3*4+7'
Joerg Sonnenberger
extensions: new closehead module for closing arbitrary heads...
r40029 $ hg bookmark -r 1 @
$ hg log -G --template '{rev}:{node|short}'
Joerg Sonnenberger
closehead: fix close-head -r listification...
r40132 o 11:1d876b1f862c
|
o 10:ea5f71948eb8
|
o 9:f1b0356d867a
|
o 8:e8d1253fb0d7
|
o 7:d423bbba4459
|
o 6:a2f58e9c1e56
|
o 5:3a367db1fabc
|
Joerg Sonnenberger
extensions: new closehead module for closing arbitrary heads...
r40029 o 4:e7bd5218ca15
|
| o 3:6100d3090acf
|/
| o 2:fa942426a6fd
|/
| o 1:66f7d451a68b
|/
o 0:1ea73414a91b
$ hg --config extensions.closehead= close-head -m 'Not a head' 0 1
abort: revision is not an open head: 0
[255]
$ hg --config extensions.closehead= close-head -m 'Not a head' -r 0 1
abort: revision is not an open head: 0
[255]
$ hg --config extensions.closehead= close-head -m 'Close old heads' -r 1 2
$ hg bookmark
@ 1:66f7d451a68b
$ hg heads
Joerg Sonnenberger
closehead: fix close-head -r listification...
r40132 changeset: 11:1d876b1f862c
Joerg Sonnenberger
extensions: new closehead module for closing arbitrary heads...
r40029 user: debugbuilddag
Joerg Sonnenberger
closehead: fix close-head -r listification...
r40132 date: Thu Jan 01 00:00:11 1970 +0000
summary: r11
Joerg Sonnenberger
extensions: new closehead module for closing arbitrary heads...
r40029
changeset: 3:6100d3090acf
parent: 0:1ea73414a91b
user: debugbuilddag
date: Thu Jan 01 00:00:03 1970 +0000
summary: r3
Joerg Sonnenberger
closehead: fix close-head -r listification...
r40132 $ hg --config extensions.closehead= close-head -m 'Close more old heads' -r 11
Joerg Sonnenberger
extensions: new closehead module for closing arbitrary heads...
r40029 $ hg heads
changeset: 3:6100d3090acf
parent: 0:1ea73414a91b
user: debugbuilddag
date: Thu Jan 01 00:00:03 1970 +0000
summary: r3
$ hg --config extensions.closehead= close-head -m 'Not a head' 0
abort: revision is not an open head: 0
[255]
$ hg --config extensions.closehead= close-head -m 'Already closed head' 1
abort: revision is not an open head: 1
[255]
$ hg init ../test-empty
$ cd ../test-empty
$ hg debugbuilddag '+1'
$ hg log -G --template '{rev}:{node|short}'
o 0:1ea73414a91b
$ hg --config extensions.closehead= close-head -m 'Close initial revision' 0
$ hg heads
[1]