[PATCH 5 of 5 mergedriver V2] merge.mergestate: compute dirstate action
Martin von Zweigbergk
martinvonz at google.com
Thu Nov 19 15:22:27 CST 2015
These are pushed to the clowncopter, thanks!
On Thu, Nov 19, 2015 at 10:57 AM Siddharth Agarwal <sid0 at fb.com> wrote:
> # HG changeset patch
> # User Siddharth Agarwal <sid0 at fb.com>
> # Date 1447959002 28800
> # Thu Nov 19 10:50:02 2015 -0800
> # Node ID 0ce719f9080e9dccb02929b675a14f1b36bf74f4
> # Parent 5ac34a97b978556e38e2e264ecefb7e903e98c16
> # Available At http://42.netv6.net/sid0-wip/hg/
> # hg pull http://42.netv6.net/sid0-wip/hg/ -r 0ce719f9080e
> merge.mergestate: compute dirstate action
>
> In upcoming patches we're going to queue these actions up to be applied to
> the
> dirstate at the end.
>
> diff --git a/mercurial/merge.py b/mercurial/merge.py
> --- a/mercurial/merge.py
> +++ b/mercurial/merge.py
> @@ -410,7 +410,7 @@ class mergestate(object):
> def _resolve(self, preresolve, dfile, wctx, labels=None):
> """rerun merge process for file path `dfile`"""
> if self[dfile] in 'rd':
> - return True, 0
> + return True, 0, None
> stateentry = self._state[dfile]
> state, hash, lfile, afile, anode, ofile, onode, flags = stateentry
> octx = self._repo[self._other]
> @@ -445,19 +445,35 @@ class mergestate(object):
> self._dirty = True
> elif not r:
> self.mark(dfile, 'r')
> - return complete, r
> +
> + action = None
> + if complete:
> + if deleted:
> + if not fcd.isabsent(): # cd: remote picked (or otherwise
> deleted)
>
test-check-code-hg.t did not like the long line, so I moved the comment to
the next line.
> + action = 'r'
> + # else: dc: local picked (no action necessary)
> + else:
> + if fcd.isabsent(): # dc: remote picked
> + action = 'g'
> + elif fco.isabsent(): # cd: local picked
> + action = 'a'
> + # else: regular merges (no action necessary)
> +
> + return complete, r, action
>
> def preresolve(self, dfile, wctx, labels=None):
> """run premerge process for dfile
>
> Returns whether the merge is complete, and the exit code."""
> - return self._resolve(True, dfile, wctx, labels=labels)
> + complete, r, action = self._resolve(True, dfile, wctx,
> labels=labels)
> + return complete, r
>
> def resolve(self, dfile, wctx, labels=None):
> """run merge process (assuming premerge was run) for dfile
>
> Returns the exit code of the merge."""
> - return self._resolve(False, dfile, wctx, labels=labels)[1]
> + complete, r, action = self._resolve(False, dfile, wctx,
> labels=labels)
> + return r
>
> def _checkunknownfile(repo, wctx, mctx, f, f2=None):
> if f2 is None:
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> https://selenic.com/mailman/listinfo/mercurial-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20151119/32b530c0/attachment.html>
More information about the Mercurial-devel
mailing list