Page MenuHomePhabricator

`arc diff` uploads an update to the dependent Diff instead of creating a new diff
Closed, ResolvedPublic

Description

This happens when working on a Diff depending on another Diff.

STEPS TO REPRODUCE

$ arc feature foo
$ <hack>
$ git commit -am "First diff"
$ arc diff  # This creates a first Diff
$ arc feature bar foo
$ <hack>
$ git commit -am "Second diff"
$ arc diff

WHAT HAPPENS
It tries to update the first Diff.

WHAT SHOULD HAPPEN
It creates a new Diff with only the difference to the tracking branch (here, foo).

WORKAROUND
Last step, instead of arc diff, do arc diff foo. It will create a second Diff, only containing the diff with foo.

Event Timeline

What does arc which say before you run the final arc diff?

REPOSITORY
To identify the repository associated with this working copy, arc followed this process:

    Configuration value "repository.callsign" is set to "BLA".

    Found a unique matching repository.

This working copy is associated with the bla repository.

COMMIT RANGE
If you run 'arc diff', changes between the commit:

    0ca53ecf6c4af514  <this is the base of diff 1>

...and the current working copy state will be sent to Differential, because
it is the merge-base of 'origin/master' and HEAD, as specified in
'git.default-relative-commit' in '.arcconfig'. This setting overrides other
settings.

You can see the exact changes that will be sent by running this command:

    $ git diff 0ca53ecf6c4af514..HEAD

These commits will be included in the diff:

    1aa32c3f31549c10  <diff1 patch 1>
    7bbfe546900107bb  <diff1 patch 2>
    914f35c61f12065a  <diff1 patch 3>
    74073467cfb1de51  <diff1 patch 4>


MATCHING REVISIONS
These Differential revisions match the changes in this working copy:

    D683 <Diff 1>
        Reason: Commit message for '914f35c61f12065a' has explicit 'Differential Revision'.

Since exactly one revision in Differential matches this working copy, it will
be updated if you run 'arc diff'.

So it seems that git.default-relative-commit is set in that repo project to always diff with origin/master. :(

Looks this is working as intended and is a configuration issue. Thanks!

epriestley claimed this task.