Skip to content

pr-1390/phil-blain/subtree-pull-tag-fix-v1

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

Submitted-As: https://lore.kernel.org/git/pull.1390.git.1666365219.gitgitgadget@gmail.com
Assets 2