git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Konstantin Tokarev <annulen@yandex.ru>
To: Leam Hall <leamhall@gmail.com>,
	"git@vger.kernel.org" <git@vger.kernel.org>
Subject: Re: Branch Management questions
Date: Thu, 15 Oct 2020 13:39:55 +0300	[thread overview]
Message-ID: <1434961602758006@mail.yandex.ru> (raw)
In-Reply-To: <d10fd33c-3d5a-c5ed-c21c-6e6eff1a6351@gmail.com>



15.10.2020, 13:30, "Leam Hall" <leamhall@gmail.com>:
> On 10/15/20 5:55 AM, Konstantin Tokarev wrote:
>>  15.10.2020, 12:51, "Leam Hall" <leamhall@gmail.com>:
>>>  1. Two developers.
>>>      Dev A is working on Branch A, off a release_candidate branch.
>>>      Dev B is working on Branch B, off the same release_candidate branch.
>>>      Branches usually run 1-4 weeks.
>>>      Dev A does some work that would help Branch B.
>>>      How does Dev A get the Branch B work that is needed, in a
>>>        way that does not confuse the merge process at the end
>>>        of the release cycle?
>>
>>  Avoid long-living branches and integrate atomic parts of work into base
>>  branch as soon as it's done and reviewed.
>
> Unfortunately, for some tasks 1-4 weeks is atomic. The review process is
> being improved as well. We still need a way to integrate the
> longer-lived branches cleanly. We've already had issues where attempts
> meant lost code.
>
>>>  2. One developer.
>>>      Working on Branch P, realizes that a new functionality X is
>>>        needed.
>>>      X isn't specific to Branch P, but critical to it.
>>>      What is the best way to deal with X, knowing that further work
>>>        on X will need to be done?
>>
>>  Rebase P to the top of parent branch after X is integrated (see above).
>
> Ah, so "Stop work on P, Resolve X, Rebase P from updated parent"? Let me
> go read up on that, it makes sense.

If there are two developers, first working on X and and second working on P it may
be possible to reduce or avoid stopping second developer at the cost of possible
additional conflict resolution later.

1. If X is close enough to finished state so it's API won't have big changes,
you cherry-pick X to P and continue work
2. When X is finished and merged to parent branch, rebase P to updated parent
3. If during rebase you hit conflict on patch X, just skip it (it's already in parent)
4. If you hit conflicts in patches following X, you resolve them according to changes
done to X after you cherry-picked its intermediate revision.


-- 
Regards,
Konstantin

  reply	other threads:[~2020-10-15 10:41 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-15  9:51 Branch Management questions Leam Hall
2020-10-15  9:55 ` Konstantin Tokarev
2020-10-15 10:30   ` Leam Hall
2020-10-15 10:39     ` Konstantin Tokarev [this message]
2020-10-15 19:57 ` Jeff King

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1434961602758006@mail.yandex.ru \
    --to=annulen@yandex.ru \
    --cc=git@vger.kernel.org \
    --cc=leamhall@gmail.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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).