diff --git a/remotefilelog/shallowbundle.py b/remotefilelog/shallowbundle.py --- a/remotefilelog/shallowbundle.py +++ b/remotefilelog/shallowbundle.py @@ -137,50 +137,6 @@ if filestosend == NoFiles: changedfiles = list([f for f in changedfiles if not repo.shallowmatch(f)]) - else: - def linknodes(store, fname): - # TODO(augie): this logic is almost certainly - # incorrect in some subtle way. See the - # similarly-named closure in - # mercurial.changegroup.cgpacker.generatefiles. - return {} - - files = [] - # Prefetch the revisions being bundled - for i, fname in enumerate(sorted(changedfiles)): - filerevlog = repo.file(fname) - linkrevnodes = linknodes(filerevlog, fname) - # Normally we'd prune the linkrevnodes first, - # but that would perform the server fetches one by one. - for fnode, cnode in list(linkrevnodes.iteritems()): - # Adjust linknodes so remote file revisions aren't sent - if filestosend == LocalFiles: - localkey = fileserverclient.getlocalkey(fname, - hex(fnode)) - localpath = repo.sjoin(os.path.join("data", - localkey)) - if (not os.path.exists(localpath) - and repo.shallowmatch(fname)): - del linkrevnodes[fnode] - else: - files.append((fname, hex(fnode))) - else: - files.append((fname, hex(fnode))) - - repo.fileservice.prefetch(files) - - # Prefetch the revisions that are going to be diffed against - prevfiles = [] - for fname, fnode in files: - if repo.shallowmatch(fname): - fnode = bin(fnode) - filerevlog = repo.file(fname) - ancestormap = filerevlog.ancestormap(fnode) - p1, p2, linknode, copyfrom = ancestormap[fnode] - if p1 != nullid: - prevfiles.append((copyfrom or fname, hex(p1))) - - repo.fileservice.prefetch(prevfiles) return super(shallowcg1packer, self).generatefiles( changedfiles, *args)