This series fixes a limitation of 'git subtree merge' and 'git subtree split' that would fail when the previous squash-merge merged an annotated tag of the subtree repository that is missing locally. The 5 first commits are small improvements for coherency with the rest of the code base, robustness, user experience and maintanability. Commits 6-7 are small refactors that prepare for the fix in the next commits. Commits 8-9 fix the behaviour for merge and split, respectively. I'm CC-ing people that worked on 'git subtree' recently. Cheers! Philippe Blain (9): test-lib-functions: mark 'test_commit' variables as 'local' subtree: use 'git rev-parse --verify [--quiet]' for better error messages subtree: add 'die_incompatible_opt' function to reduce duplication subtree: prefix die messages with 'fatal' subtree: define a variable before its first use in 'find_latest_squash' subtree: use named variables instead of "$@" in cmd_pull subtree: process 'git-subtree-split' trailer in separate function subtree: fix squash merging after annotated tag was squashed merged subtree: fix split after annotated tag was squashed merged contrib/subtree/git-subtree.sh | 177 +++++++++++++++++++---------- contrib/subtree/git-subtree.txt | 16 ++- contrib/subtree/t/t7900-subtree.sh | 60 +++++++++- t/test-lib-functions.sh | 16 +-- 4 files changed, 192 insertions(+), 77 deletions(-) base-commit: 45c9f05c44b1cb6bd2d6cb95a22cf5e3d21d5b63 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1390%2Fphil-blain%2Fsubtree-pull-tag-fix-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1390/phil-blain/subtree-pull-tag-fix-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/1390 -- gitgitgadget