Re: [PATCH] subtree: fix split processing with multiple subtrees present
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 18, 2023, 23:31 UTC
- Message-ID
- <xmqq34zbjbxl.fsf@gitster.g>
- In-Reply-To
- <pull.1587.git.1695067516192.gitgitgadget@gmail.com>
"Zach FettersMoore via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 34 quoted lines
> contrib/subtree/git-subtree.sh | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh
> index e0c5d3b0de6..e9250dfb019 100755
> --- a/contrib/subtree/git-subtree.sh
> +++ b/contrib/subtree/git-subtree.sh
> @@ -778,12 +778,29 @@ ensure_valid_ref_format () {
> die "fatal: '$1' does not look like a ref"
> }
>
> +# Usage: check if a commit from another subtree should be ignored from processing for splits
> +should_ignore_subtree_commit () {
> + if [ "$(git log -1 --grep="git-subtree-dir:" $1)" ]
> + then
> + if [[ -z "$(git log -1 --grep="git-subtree-mainline:" $1)" && -z "$(git log -1 --grep="git-subtree-dir: $dir$" $1)" ]]
> + then
> + return 0
> + fi
> + fi
> + return 1
> +}
>
> # Usage: process_split_commit REV PARENTS
> process_split_commit () {
> assert test $# = 2
> local rev="$1"
> local parents="$2"
>
> + if should_ignore_subtree_commit $rev
> + then
> + return
> + fi
> +Please do not violate Documentation/CodingGuidelines for our shell scripted Porcelain, even if it is a script in contrib/ and also please avoid bash-isms.
Also doesn't "subtree" have its own test? If this change is a fix for some problem(s), can we have a test or two that demonstrate how the current code without the patch is broken?
Thanks.