fold: clarify message for empty revision set and abort instead (BC)
I find it clearer that there are no revisions to fold because none
were specified. Otherwise it seems ambiguous: maybe there are no
revisions to fold because it's impossible to fold whatever was given?
In analogy of other commands that are given no revisions (e.g. strip,
graft), this is also now an abort instead of a mere error message,
which is a BC.
Initial setup
$ . $TESTDIR/_exc-util.sh
=== B.4 Pruned changeset on common part of history ===
.. {{{
.. ⊗ C
.. | ● B
.. | |
.. | ● A
.. |/
.. ● O
.. }}}
..
.. Marker exist from:
..
.. * C (prune)
..
.. Command run:
..
.. * hg push -r B
.. * hg push
..
.. Expected exchange:
..
.. * prune for C
$ setuprepos B.4
creating test repo for test case B.4
- pulldest
- main
- pushdest
cd into `main` and proceed with env setup
$ cd main
$ mkcommit A
$ mkcommit B
$ hg phase --public .
$ hg push ../pushdest
pushing to ../pushdest
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
$ hg push ../pulldest
pushing to ../pulldest
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
$ hg update -q 0
$ mkcommit C
created new head
$ hg prune -qd '0 0' .
$ hg log -G --hidden
x 7f7f229b13a6 (draft): C
|
| o f6fbb35d8ac9 (public): B
| |
| o f5bc6836db60 (public): A
|/
@ a9bdc8b26820 (public): O
$ hg debugobsolete
7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
$ cd ..
$ cd ..
$ cp -r B.4 B.4.a
$ cp -r B.4 B.4.b
Actual Test (explicit push version)
-----------------------------------
$ dotest B.4.a O
## Running testcase B.4.a
# testing echange of "O" (a9bdc8b26820)
## initial state
# obstore: main
7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
# obstore: pushdest
# obstore: pulldest
## pushing "O" from main to pushdest
pushing to pushdest
searching for changes
no changes found
OBSEXC: computing relevant nodes
OBSEXC: computing markers relevant to 1 nodes
OBSEXC: pushing 1 markers (89 bytes)
OBSEXC: DONE
## post push state
# obstore: main
7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
# obstore: pushdest
7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
# obstore: pulldest
## pulling "a9bdc8b26820" from main into pulldest
pulling from main
no changes found
OBSEXC: pull obsolescence markers
OBSEXC: merging obsolescence markers (89 bytes)
OBSEXC: 1 markers added
OBSEXC: DONE
## post pull state
# obstore: main
7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
# obstore: pushdest
7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
# obstore: pulldest
7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
Actual Test (bare push version)
-----------------------------------
$ dotest B.4.b
## Running testcase B.4.b
## initial state
# obstore: main
7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
# obstore: pushdest
# obstore: pulldest
## pushing from main to pushdest
pushing to pushdest
searching for changes
no changes found
OBSEXC: computing relevant nodes
OBSEXC: computing markers relevant to 3 nodes
OBSEXC: pushing 1 markers (89 bytes)
OBSEXC: DONE
## post push state
# obstore: main
7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
# obstore: pushdest
7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
# obstore: pulldest
## pulling from main into pulldest
pulling from main
searching for changes
no changes found
OBSEXC: pull obsolescence markers
OBSEXC: merging obsolescence markers (89 bytes)
OBSEXC: 1 markers added
OBSEXC: DONE
## post pull state
# obstore: main
7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
# obstore: pushdest
7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
# obstore: pulldest
7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}