summaryrefslogtreecommitdiff
path: root/match-trees.c
diff options
context:
space:
mode:
authorLibravatar Jeff King <peff@peff.net>2021-03-10 12:07:27 -0500
committerLibravatar Junio C Hamano <gitster@pobox.com>2021-03-10 14:14:52 -0800
commit98fe9e666fe4a595cf5396fd8d5c57b380c782b2 (patch)
treefd2ceeb970c3595895146c9e7eb223cbd6291a10 /match-trees.c
parentt7003: test ref rewriting explicitly (diff)
downloadtgif-98fe9e666fe4a595cf5396fd8d5c57b380c782b2.tar.xz
filter-branch: drop multiple-ancestor warning
When a ref maps to a commit that is neither rewritten nor kept by filter-branch (e.g., because it was eliminated by rev-list's pathspec selection), we rewrite it to its nearest ancestor. Since the initial commit in 6f6826c52b (Add git-filter-branch, 2007-06-03), we have warned when there are multiple such ancestors in the map file. However, the warning code is impossible to trigger these days. Since a0e46390d3 (filter-branch: fix ref rewriting with --subdirectory-filter, 2008-08-12), we find the ancestor using "rev-list -1", so it can only ever have a single value. This code is made doubly confusing by the fact that we append to the map file when mapping ancestors. However, this can never yield multiple values because: - we explicitly check whether the map already exists, and if so, do nothing (so our "append" will always be to a file that does not exist) - even if we were to try mapping twice, the process to do so is deterministic. I.e., we'd always end up with the same ancestor for a given sha1. So warning about it would be pointless; there is no ambiguity. So swap out the warning code for a BUG (which we'll simplify further in the next commit). And let's stop using the append operator to make the ancestor-mapping code less confusing. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'match-trees.c')
0 files changed, 0 insertions, 0 deletions