sapling/remotefilelog
Durham Goode 1d96446f97 push: fix pushing multiple manifests with the same file node
Summary:
Previously remotefilelog did not produce all the necessary local data blobs
when doing a peer push/pull if the incoming changegroup had two manifests
that referred to the same file revision.  We would only create a file blob
containing the history for the first occurrence, then if the user tried to
access the file history for other occurrences they got an exception.

The fix is to add linkrev fixup logic, similar to the adjustlinkrev() method
from core Mercurial's filectx. Now, if no valid local file blob can be found, we
will compute a valid history by reading the changelog.

We might be able to write this data to disk in the future as well to prevent
having to repeatedly compute this.

Test Plan: Added a test

Reviewers: sid0, rmcelroy, pyd, mitrandir, lcharignon

Differential Revision: https://phabricator.fb.com/D1904453
2015-03-10 20:02:14 -07:00
..
__init__.py prefetching: fix computenonoverlap wrapper 2015-03-10 19:59:43 -07:00
cacheclient.py Add example cache client implementation 2013-10-17 14:18:23 -07:00
debugcommands.py Fix debugremotefilelog command 2013-12-13 11:42:50 -08:00
fileserverclient.py Improve error message when fallback server isn't configured 2015-01-09 09:43:14 -08:00
remotefilectx.py Move _adjustlinkrev onto remotefilectx 2015-02-03 18:59:00 -08:00
remotefilelog.py push: fix pushing multiple manifests with the same file node 2015-03-10 20:02:14 -07:00
remotefilelogserver.py Move _adjustlinkrev onto remotefilectx 2015-02-03 18:59:00 -08:00
shallowbundle.py [shallowbundle] don't drop units and reorder on the floor 2015-01-08 17:02:37 -08:00
shallowrepo.py shallowrepo: prefetch files before a commitctx 2015-03-05 16:06:12 -08:00
shallowstore.py Add more comments explaining various complexities 2013-11-05 17:19:59 -08:00
shallowutil.py [bundle2] insert ourselves into the cg1packer class hierarchy and fix up the packermap 2014-11-07 18:35:52 -08:00