[PATCH 4 of 5 STABLE] merge: add "other" file node in the merge state file

pierre-yves.david at ens-lyon.org pierre-yves.david at ens-lyon.org
Wed Feb 26 16:58:06 CST 2014


# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at fb.com>
# Date 1393383287 28800
#      Tue Feb 25 18:54:47 2014 -0800
# Branch stable
# Node ID 2405ad3c020f8c3b5e415922172096012b53a416
# Parent  343f7acb1a8e68f02f1dc4cf82660e8968565cf1
merge: add "other" file node in the merge state file

This data is mostly redundant with the "other" changeset node (+ other changeset
file path). However, more data never hurt.

diff --git a/mercurial/merge.py b/mercurial/merge.py
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -97,12 +97,14 @@ class mergestate(object):
                 f.write(_pack(format, key, len(data), data))
             f.close()
     def add(self, fcl, fco, fca, fd):
         hash = util.sha1(fcl.path()).hexdigest()
         self._repo.opener.write("merge/" + hash, fcl.data())
-        self._state[fd] = ['u', hash, fcl.path(), fca.path(),
-                           hex(fca.filenode()), fco.path(), fcl.flags()]
+        self._state[fd] = ['u', hash, fcl.path(),
+                           fca.path(), hex(fca.filenode()),
+                           fco.path(), hex(fco.filenode()),
+                           fcl.flags()]
         self._dirty = True
     def __contains__(self, dfile):
         return dfile in self._state
     def __getitem__(self, dfile):
         return self._state[dfile][0]
@@ -117,11 +119,12 @@ class mergestate(object):
         self._state[dfile][0] = state
         self._dirty = True
     def resolve(self, dfile, wctx, octx):
         if self[dfile] == 'r':
             return 0
-        state, hash, lfile, afile, anode, ofile, flags = self._state[dfile]
+        stateentry = self._state[dfile]
+        state, hash, lfile, afile, anode, ofile, onode, flags = stateentry
         fcd = wctx[dfile]
         fco = octx[ofile]
         fca = self._repo.filectx(afile, fileid=anode)
         # "premerge" x flags
         flo = fco.flags()


More information about the Mercurial-devel mailing list