From: Catalin Marinas <catalin.marinas@gmail.com>
To: "Karl Hasselström" <kha@treskal.com>
Cc: git@vger.kernel.org
Subject: Re: [RFC][StGit PATCH] Add support for merge-friendly branches
Date: Fri, 29 May 2009 10:16:52 +0100 [thread overview]
Message-ID: <b0943d9e0905290216m3c2bb639kc951510c72212ff@mail.gmail.com> (raw)
In-Reply-To: <20090529083739.GB9760@diana.vm.bytemark.co.uk>
2009/5/29 Karl Hasselström <kha@treskal.com>:
> On 2009-05-28 15:38:44 +0100, Catalin Marinas wrote:
> I think I would've kludged this by making --theirs merges from the
> StGit branch to the public branch. But "stg publish" should definitely
> make the kludge history less ugly.
That's what I'm trying to do, keep the public history clean. One
advantage of merging the full StGit branch is that people could
retrieve the latest patch version but for those interesting in
cherry-picking you can just export the volatile StGit branch.
Regarding the resulting tree, rebasing a StGit stack is equivalent, on
a linear history branch, to a merge of the new stack base into the
linear branch. Rather than having to solve conflicts twice, the pubish
command just fakes this merge and sets the resulting tree.
>> > Hmm. Couldn't the merge base conceivably be higher up in the
>> > stack? Like, right at the beginning, don't we have public_head ==
>> > stack.head? That would be caught by the "same tree" check" a bit
>> > earlier, but after adding another patch, don't we have public_head
>> > == stack.head^ ? Which would give merge_base == public_head.
>>
>> We could have public_head == stack.head^... but that's not an issue.
>> The merge_base above is checked against the base of the stack rather
>> than the top as we assume that the base isn't volatile. So even if
>> public_head is the same as some patch commit, the merge_base above
>> would always be the base of the stack. Only if the stack base was
>> updated, we get a different merge_base (equal to the previous stack
>> base).
>
> The situation I described looks like this:
>
> B--o--o--o--o--o--P--T
>
> Time goes from left to right. B is the stack base, P the head of the
> public branch, T the stack top. merge_base(P, T) is P, and not B.
I don't check merge_base(P, T) but merge_base(P, B) to avoid the
issues you described. So that's always B.
--
Catalin
next prev parent reply other threads:[~2009-05-29 9:17 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-28 11:12 [RFC][StGit PATCH] Add support for merge-friendly branches Catalin Marinas
[not found] ` <20090528111212.21925.45527.stgit-hhZApKj8DF/YkXV2EHHjLW3o5bpOHsLO@public.gmane.org>
2009-05-28 12:12 ` Fwd: " martin f krafft
2009-05-28 12:48 ` Karl Hasselström
2009-05-28 14:38 ` Catalin Marinas
2009-05-28 14:51 ` Catalin Marinas
2009-05-29 7:20 ` Karl Hasselström
2009-05-29 8:40 ` Catalin Marinas
2009-05-29 9:12 ` Karl Hasselström
2009-05-29 10:13 ` Catalin Marinas
2009-05-29 8:37 ` Karl Hasselström
2009-05-29 9:16 ` Catalin Marinas [this message]
2009-05-29 11:59 ` Karl Hasselström
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=b0943d9e0905290216m3c2bb639kc951510c72212ff@mail.gmail.com \
--to=catalin.marinas@gmail.com \
--cc=git@vger.kernel.org \
--cc=kha@treskal.com \
/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).