1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-12-23 22:10:54 +01:00
No description
Find a file
epriestley 563230b0fb Implement "arc:amended" and fix various problems with ArcanistMercurialAPI
Summary:
  - Implement "arc:amended", a base commit DSL rule which always selects HEAD (git) or `.` (hg) if it has "differential revision:" in the commit message. This is unambiguously correct in amend workflows, and can cover holes in other rules like "git:branch-unique(*)".
  - Fix a bunch of Mercurial stuff:
    - Our use of '.' is wrong, and based on a misunderstanding on my part of the behavior of `hg diff --rev . --rev .`, which means "ignore the second --rev flag", not ". means working directory state". As far as I know there's no explicit way to say "the working copy plus all its changes".
    - The `--prune` argument to "hg log" does not support symbolic names like ".^". Use revsets instead.
    - Reduce the number of times we need to run `hg branch`.
    - We can safely use "." to mean "the working copy revision", and do not need to do "hg --debug id" or similar.
    - Generally simplify some of the nonsense in the implementation left over from me having no idea how Mercurial works.

Test Plan:
Ran "arc which" in various scenarios in a mercurial working copy. I //think// I exercised all the changes.

Ran "arc which --base arc:amended" in hg and git working copies without "Differential Revision:" in head/. (no match) and with it (matched head/.).

Reviewers: dschleimer

Reviewed By: dschleimer

CC: Makinde, tido, phleet, aran

Maniphest Tasks: T1233

Differential Revision: https://secure.phabricator.com/D2876
2012-07-01 11:06:05 -07:00
bin Minor, correct arc handling of relative symlinking (from @makinde). 2012-04-02 16:33:36 -07:00
externals arc lint: fix/enable PEP8 linter 2011-05-18 16:47:23 -07:00
resources Warn about PHP 5.3 only functions and parameters 2012-06-22 15:52:10 -07:00
scripts Remove all libphutil v1 support 2012-06-26 12:40:42 -07:00
src Implement "arc:amended" and fix various problems with ArcanistMercurialAPI 2012-07-01 11:06:05 -07:00
.arcconfig Automatically detect when to mark revisions committed 2011-09-27 11:06:02 -07:00
.divinerconfig Remove PhutilModuleRequirements 2012-06-26 18:22:36 -07:00
.gitignore [Arcanist] move scratch directory into the vcs metadata directory 2012-06-12 12:39:15 -07:00
LICENSE Initial commit. 2011-01-09 15:22:25 -08:00
README Update Arcanist README text 2011-11-06 18:12:50 -08:00

WHAT IS ARCANIST?

Arcanist is the command-line tool for Phabricator. It allows you to interact
with Phabricator installs to send code for review, download patches, transfer
files, view status, make API calls, and various other things. You can find
a complete user guide here:

  http://www.phabricator.com/docs/phabricator/article/Arcanist_User_Guide.html

For more information about Phabricator, see:

  http://phabricator.org/