From: Eric Sunshine <sunshine@sunshineco.com>
To: Dave Ware <davidw@realtimegenomics.com>
Cc: Git List <git@vger.kernel.org>
Subject: Re: [PATCH] contrib/subtree: fix "subtree split" skipped-merge bug.
Date: Tue, 8 Dec 2015 01:49:02 -0500 [thread overview]
Message-ID: <CAPig+cR36772YDc5RQRwXP3+ucVWumim9HYTXVMuGXN2cnQ7Ow@mail.gmail.com> (raw)
In-Reply-To: <1449521452-19043-1-git-send-email-davidw@realtimegenomics.com>
On Mon, Dec 7, 2015 at 3:50 PM, Dave Ware <davidw@realtimegenomics.com> wrote:
> [PATCH] contrib/subtree: fix "subtree split" skipped-merge bug.
As an aid for reviewers, please indicate the version of this patch
submission. For instance, this is the second attempt, so the subject
would be decorated as [PATCH v2], and the next one (if submitted) will
be v3. The -v option of git-format-patch can help automate this.
Style: drop the full-stop (period) from the subject line
> A bug occurs in 'git-subtree split' where a merge is skipped even when
> both parents act on the subtree, provided the merge results in a tree
> identical to one of the parents. Fix by copying the merge if at least
> one parent is non-identical, and the non-identical parent is not an
> ancestor of the identical parent.
>
> Also adding a test case, this checks that a descendant can be pushed to
s/Also adding/Also, add/
s/, this/which/
> it's ancestor in this case.
s/it's/its/
> Signed-off-by: Dave Ware <davidw@realtimegenomics.com>
> ---
Right here below the "---" line is a good place to describe what
changed since the previous version. For instance, in v2, you made
minor improvements to the commit message, added your sign-off, folded
the new test into the existing t7900-subtree.sh, added a subshell
around 'cd', and assigned the output of git-rev-list to a shell
variable rather than dumping it to a file.
Including a link to the previous version, like this[1], is also
reviewer-friendly.
[1]: http://thread.gmane.org/gmane.comp.version-control.git/282065
As before, I'm not a git-subtree user, so this review is superficial.
More below...
> contrib/subtree/git-subtree.sh | 12 +++++++--
> contrib/subtree/t/t7900-subtree.sh | 52 ++++++++++++++++++++++++++++++++++++++
> 2 files changed, 62 insertions(+), 2 deletions(-)
>
> diff --git a/contrib/subtree/t/t7900-subtree.sh b/contrib/subtree/t/t7900-subtree.sh
> index 9051982..ea991eb 100755
> --- a/contrib/subtree/t/t7900-subtree.sh
> +++ b/contrib/subtree/t/t7900-subtree.sh
> @@ -468,4 +468,56 @@ test_expect_success 'verify one file change per commit' '
> ))
> '
>
> +test_expect_success 'subtree descendent check' '
> + mkdir git_subtree_split_check &&
> + (
> + cd git_subtree_split_check &&
Style: indent with tabs rather than spaces
> + git init &&
> +
> + mkdir folder &&
> +
> + echo a >folder/a &&
> + git add . &&
> + git commit -m "first commit" &&
> +
> + git branch branch &&
> +
> + echo 0 >folder/0 &&
> + git add . &&
> + git commit -m "adding 0 to folder" &&
> +
> + echo b >folder/b &&
> + git add . &&
> + git commit -m "adding b to folder" &&
> + cherry=$(git rev-list HEAD -1) &&
git-rev-parse would probably be more idiomatic:
cherry=$(git rev-parse HEAD)
> + git checkout branch &&
> + echo text >textBranch.txt &&
> + git add . &&
> + git commit -m "commit to fiddle with branch: branch" &&
> +
> + git cherry-pick $cherry &&
> + git checkout master &&
> + git merge -m "merge" branch &&
> +
> + git branch noop_branch &&
> +
> + echo d >folder/d &&
> + git add . &&
> + git commit -m "adding d to folder" &&
> +
> + git checkout noop_branch &&
> + echo moreText >anotherText.txt &&
> + git add . &&
> + git commit -m "irrelevant" &&
> +
> + git checkout master &&
> + git merge -m "second merge" noop_branch &&
> +
> + git subtree split --prefix folder/ --branch subtree_tip master &&
> + git subtree split --prefix folder/ --branch subtree_branch branch &&
> + git push . subtree_tip:subtree_branch
> + )
> + '
> +
> test_done
> --
> 1.9.1
next prev parent reply other threads:[~2015-12-08 6:49 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-06 22:09 git subtree bug produces divergent descendants David Ware
2015-12-07 4:53 ` Eric Sunshine
2015-12-07 20:50 ` [PATCH] contrib/subtree: fix "subtree split" skipped-merge bug Dave Ware
2015-12-08 6:49 ` Eric Sunshine [this message]
2015-12-08 20:39 ` [PATCH v3] " Dave Ware
2015-12-08 21:23 ` Junio C Hamano
2015-12-09 0:16 ` David Ware
2015-12-09 0:19 ` [PATCH v4] " Dave Ware
2015-12-09 7:52 ` Eric Sunshine
2015-12-09 21:17 ` [PATCH v5] " Dave Ware
2016-01-13 3:27 ` David A. Greene
2016-01-13 19:33 ` David Ware
2016-01-14 3:12 ` David A. Greene
2016-01-14 20:45 ` David Ware
2016-01-17 22:40 ` David A. Greene
2016-01-14 21:26 ` [PATCH v6] " Dave Ware
2016-01-15 0:41 ` [PATCH v7] " Dave Ware
2016-01-15 1:06 ` Eric Sunshine
2016-01-15 18:58 ` Junio C Hamano
2016-01-15 23:24 ` Eric Sunshine
2016-01-17 22:41 ` David A. Greene
2015-12-07 21:01 ` git subtree bug produces divergent descendants David Ware
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAPig+cR36772YDc5RQRwXP3+ucVWumim9HYTXVMuGXN2cnQ7Ow@mail.gmail.com \
--to=sunshine@sunshineco.com \
--cc=davidw@realtimegenomics.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).