Arc land behaviour

After using a little bit arc, it seems that it’s not doing what I’m expecting it to do. If you create a revision on a branch arc diff and after that keep making changes, commit those changes to the local branch and then land it (once the revision is accepted), it seems that it will land the committed (not revised) commits. Even If I understand that arc diffs should be tied to a branch, I don’t think that landing a revision should basically land the commits you have in your local changes. Or at least, it should ask you first. We had a major bug because of this, and its not clear in the docs as it says:

      land [options] [ref]
          Supports: git, hg

          Publish an accepted revision after review. This command is the last
          step in the standard Differential pre-publish code review workflow.

But… the local commits are not accepted. It just merges a local branch (without even caring the diff). Seems really imprecise to me. It should either tell you that your local diff is different that the one in the revision and accept if you want to do that (because they are not accepted).

arc land lands the current working copy state, not the state as it existed at the time arc diff was executed. It should print out which commits it is affecting, e.g.:


This commit will be landed:

      - 0286e5582b In "Move task to..." workflow, separate visible and hidden columns in the dropdown


This behavior is intended to make it easier to address minor feedback from reviewers (like comment typos or naming suggestions), and to merge or rebase locally without needing to go through another arc diff + review workflow. For example, if a reviewer identifies a spelling mistake but has no substantive feedback, they may “Accept” the revision with an inline pointing at the spelling mistake. The author can then correct the mistake locally and arc land the change without additional overhead.