D6008: context: add specialized way of getting copy source file only
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Sat Feb 23 17:09:00 UTC 2019
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
I'm working on support for storing copy metadata in the changeset
instead of the filelog. I don't intend to include the file nodeid
there, but most callers don't need that anyway. This patch introduces
a method similar to ctx.renamed(), but the new method returns only the
source filename, not the nodeid. Subsequent patches will move callers
over to this new method.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D6008
AFFECTED FILES
hgext/remotefilelog/remotefilectx.py
mercurial/context.py
CHANGE DETAILS
diff --git a/mercurial/context.py b/mercurial/context.py
--- a/mercurial/context.py
+++ b/mercurial/context.py
@@ -691,6 +691,8 @@
return self._changectx
def renamed(self):
return self._copied
+ def copysource(self):
+ return self._copied and self._copied[0]
def repo(self):
return self._repo
def size(self):
@@ -1703,6 +1705,8 @@
if not rp:
return None
return rp, self._changectx._parents[0]._manifest.get(rp, nullid)
+ def copysource(self):
+ return self._repo.dirstate.copied(self._path)
def size(self):
return self._repo.wvfs.lstat(self._path).st_size
@@ -2148,6 +2152,9 @@
return None
return path, self._changectx._parents[0]._manifest.get(path, nullid)
+ def copysource(self):
+ return self._parent.copydata(self._path)
+
def size(self):
return self._parent.size(self._path)
diff --git a/hgext/remotefilelog/remotefilectx.py b/hgext/remotefilelog/remotefilectx.py
--- a/hgext/remotefilelog/remotefilectx.py
+++ b/hgext/remotefilelog/remotefilectx.py
@@ -136,6 +136,10 @@
pass
return renamed
+ def copysource(self):
+ copy = self.renamed()
+ return copy and copy[0]
+
def ancestormap(self):
if not self._ancestormap:
self._ancestormap = self.filelog().ancestormap(self._filenode)
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list