Mercurial > hg
view tests/bundles/test-revlog-diff-relative-to-nullrev.sh @ 51274:bec6e9c108fd
matchers: use correct method for finding index in vector
The path matcher has an optimization for when all paths are `rootfilesin:`. This
optimization exists in both Python and Rust. However, the Rust implementation
currently has a bug that makes it fail in most cases. The bug is that it
`rfind()` where it was clearly intended to use `rposition()`. This patch fixes
that and adds a test.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Mon, 18 Dec 2023 14:51:20 -0800 |
parents | 786b6225793a |
children |
line wrap: on
line source
#!/bin/bash # # Make sure to patch mercurial to create the delta against nullrev # # # Parent cdb85d0512b81031d4a7b30d6a5ddbe69ef1a876 # # diff --git a/mercurial/revlogutils/deltas.py b/mercurial/revlogutils/deltas.py # --- a/mercurial/revlogutils/deltas.py # +++ b/mercurial/revlogutils/deltas.py # @@ -1117,7 +1117,10 @@ class deltacomputer: # candidaterevs = next(groups) # # if deltainfo is None: # - deltainfo = self._fullsnapshotinfo(fh, revinfo, target_rev) # + if revlog.delta_config.general_delta: # + deltainfo = self._builddeltainfo(revinfo, nullrev, fh) # + else: # + deltainfo = self._fullsnapshotinfo(fh, revinfo, target_rev) cd "`dirname \"$0\"`" export HGRCPATH= export HGMODULEPOLICY=py rm -rf nullrev-diff ../../hg init nullrev-diff --config format.revlog-compression=zlib cd nullrev-diff echo hi > a ../../../hg commit -Am root-B echo ho > a ../../../hg commit -Am child-A hg up null echo ha > a ../../../hg commit -Am root-A ../../../hg debugdeltachain a --all-info rm -rf .hg/cache/ .hg/wcache/ cd .. tar cf test-revlog-diff-relative-to-nullrev.tar nullrev-diff rm -rf nullrev-diff