Forking from T7339#97782:
I found it difficult to find out how to use `arc land` properly, even after reading the [docs](https://secure.phabricator.com/book/phabricator/article/arcanist_diff/).
My first mistake was not using feature branches:
```lang=text
$ arc land
Landing current branch 'default'.
Usage Exception: You can not land a branch onto itself -- you are trying to land 'default' onto 'default'. For more information on how to push changes, see 'Pushing and Closing Revisions' in 'Arcanist User Guide: arc diff' in the documentation.
```
The next issue was that `arc land` needs a named branch and cannot operate on the bookmarks created by `arc patch`. Nevertheless it will use a bookmark for the missing `<branch>` parameter, even if the branch is named:
```lang=text
$ hg strip -r tip
$ hg branch test/umlaut
$ arc patch D1
$ arc land
Landing current bookmark 'arcpatch-D1'.
Usage Exception: Source arcpatch-D1 is a bookmark but destination default is a branch. When landing a bookmark, the destination must also be a bookmark. Use --onto to specify a bookmark, or set arc.land.onto.default in .arcconfig.
```
Thus I specified the branch name manually, but that was not enough, since this type of operation is not supported for Mercurial:
```lang=text
$ arc land test/umlaut
[…]
Updating default...
The following commit(s) will be landed:
11ec2683cc37 Ümläüt Test 2
Switched to branch test/umlaut. Identifying and merging...
Usage Exception: --merge is not currently supported for hg repos.
```
So I tried to squash instead of merge, but `arc land` apparently "forgot" where the commit, created by the previous `arc patch`, came from:
```lang=text
$ arc land test/umlaut --squash
[…]
Updating default...
The following commit(s) will be landed:
11ec2683cc37 Ümläüt Test 2
Switched to branch test/umlaut. Identifying and merging...
Usage Exception: arc can not identify which revision exists on branch 'test/umlaut'. Update the revision with recent changes to synchronize the branch name and hashes, or use 'arc amend' to amend the commit message at HEAD, or use '--revision <id>' to select a revision exp
licitly.
```
Finally, after giving all the information manually, it worked:
```lang=text
$ arc land test/umlaut --squash --revision D1
[…]
Updating default...
The following commit(s) will be landed:
11ec2683cc37 Ümläüt Test 2
Switched to branch test/umlaut. Identifying and merging...
Landing revision 'D1: Ümläüt Test 2'...
Pushing change...
pushing to ssh://…/diffusion/…/…/
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 0 changes to 0 files
Cleaning up feature branch...
Done.
```
What I would like to know is how Mercurial bookmarks (created by `arc patch`) are properly used, how `arc land` would usually figure out which revision it is operating on and why that did not work in my case, etc. Maybe the docs could be extended a bit, and at least include the information that `arc land` will break badly if I do not use feature branches.