# HG changeset patch # User Martin von Zweigbergk # Date 1522038736 25200 # Node ID 041d829575ede0abee081eb57b5cb9f46dc47f92 # Parent 1c1c4ef8b72e39f5ed1c62dc4e31e02e9e08b652 context: add specialized way of getting copy source file only 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. Differential Revision: https://phab.mercurial-scm.org/D6008 diff -r 1c1c4ef8b72e -r 041d829575ed hgext/remotefilelog/remotefilectx.py --- a/hgext/remotefilelog/remotefilectx.py Thu Feb 21 21:27:42 2019 -0800 +++ b/hgext/remotefilelog/remotefilectx.py Sun Mar 25 21:32:16 2018 -0700 @@ -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) diff -r 1c1c4ef8b72e -r 041d829575ed mercurial/context.py --- a/mercurial/context.py Thu Feb 21 21:27:42 2019 -0800 +++ b/mercurial/context.py Sun Mar 25 21:32:16 2018 -0700 @@ -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)