pr-1323/phillipwood/wip/rebase--keep-base-tweaks-v4
tagged this
17 Oct 13:17
A while a go Philippe reported [1] that he was surprised 'git rebase --keep-base' removed commits that had been cherry-picked upstream even though to branch was not being rebased. I think it is also surprising if '--keep-base' changes the base of the branch without '--fork-point' being explicitly given on the command line. This series therefore changes the default behavior of '--keep-base' to imply '--reapply-cherry-picks' and '--no-fork-point' so that the base of the branch is unchanged and no commits are removed. Thanks to Junio and Ævar for their comments, the changes since V3 are: * Patch 3: added lookup_commit_object() that works like lookup_commit_reference() but without dereferencing tags. * Patch 4: changed lookup_commit_reference() to lookup_commit_object() * Patch 5: unchanged - Ævar has concerns about renaming merge_base to branch_base but I think this is an improvement overall. * Patches 6 & 8: fixed a whitespace issue Thanks to Junio for his comments, the changes since V2 are: * Patch 3 new patch to make sure we're reading hex oids from state files * Patch 4 restored the call to read_refs() to avoid the dwim behavior of lookup_commit_reference_by_name() * Patch 6 added a comment to clarify what a null oid branch_base means Thanks to everyone who commented for their reviews, the changes since V1 are: * Patch 1: new patch to tighten a couple of existing tests * Patch 2: reworded commit message in response to Junio's comments * Patch 3: fixed a typo in the commit message spotted by Elijah and tidied code formatting * Patch 4: new patch to rename a variable suggested by Junio * Patch 5: clarified commit message and removed some redundant code spotted by Junio * Patch 6: improved --reapply-cherry-picks documentation to mention --keep-base and vice-versa suggested by Philippe * Patch 7: expanded the commit message and documentation in response to Junio's comments [1] https://lore.kernel.org/git/0EA8C067-5805-40A7-857A-55C2633B8570@gmail.com/ Phillip Wood (8): t3416: tighten two tests t3416: set $EDITOR in subshell rebase: be stricter when reading state files containing oids rebase: store orig_head as a commit rebase: rename merge_base to branch_base rebase: factor out branch_base calculation rebase --keep-base: imply --reapply-cherry-picks rebase --keep-base: imply --no-fork-point Documentation/git-rebase.txt | 32 ++++--- builtin/rebase.c | 144 ++++++++++++++++++------------- commit.c | 8 ++ commit.h | 13 +++ t/t3416-rebase-onto-threedots.sh | 62 ++++++++++--- t/t3431-rebase-fork-point.sh | 2 +- 6 files changed, 172 insertions(+), 89 deletions(-) base-commit: afa70145a25e81faa685dc0b465e52b45d2444bd Submitted-As: https://lore.kernel.org/git/pull.1323.v4.git.1666012665.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.1323.git.1660576283.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.1323.v2.git.1662561470.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.1323.v3.git.1665650564.gitgitgadget@gmail.com
Assets 2
-
2022-10-17T13:17:45Z -
2022-10-17T13:17:45Z -