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) 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)