From: John Keeping <john@keeping.me.uk>
To: Javier Domingo <javierdo1@gmail.com>
Cc: "git@vger.kernel.org" <git@vger.kernel.org>
Subject: Re: Branching workflow
Date: Tue, 3 Dec 2013 18:42:50 +0000 [thread overview]
Message-ID: <20131203184250.GB3163@serenity.lan> (raw)
In-Reply-To: <CALZVapnjN_69y0+PLFA2t8b72WDK+D4BhjDRnRPxU_9iX+_NuA@mail.gmail.com>
On Tue, Dec 03, 2013 at 07:06:20PM +0100, Javier Domingo wrote:
> I have been using a very basic workflow for branching, features each
> in a branch.
>
> My branches would be:
> - develop <= Main upstream branch
> - feature/* fix/* <= Feature and fix branches
> - master <= Integration of the whole feature and fix branches
>
> So I have now came up with a very difficult task. I just discovered
> that one of those branches, lest call it feature/bad, is evil and is
> making the integration branch (master) fail horribly.
>
> In my workflow, I tend to merge develop (official updates) into my
> feature branches, and them into master.
>
> So now I have the big problem on how to undo all changes from
> feature/fix. I have been told that one alternative workflow would be
> to revert the last merge and remerge it into master, so that I have
> always just one commit to revert if necessary (instead of the
> monstrous quantity I have now to).
>
> The workflow proposal should be in order of importance:
> - Let me stay up-to-date with develop branch
> - Easy to revert in master
> - Have a clean history
> - Easy to follow
>
> I think I should be capable of doing some sort of merge/rebase
> branching workflow to avoid having to do that. I have thought about
> rebasing always the feature branches, and rebasing master into all of
> them, but it seems pretty strange to me.
>
> If anyone can give any advice, I would fully appreciate!
It sounds like you want a throwaway integration branch. This is similar
to the workflow Junio uses with git.git's "pu" branch, which involves
rebuilding a branch by:
* resetting it to some base ("develop" in your case)
* merging in the required feature branches
This may not quite be what you want because it does mean that you cannot
build on the integration branch - it is intended to be rewritten often,
but it does provide a good platform for testing features and then
merging them to a stable branch once they have proved to be good.
The advantage is that you know that the integration merges are temporary
and you can test on top of that without having set the result in stone.
<shameless plug>If you are interested in such a workflow then you may
want to try my git-integration program [1] to manage integration
branches.
There is also a reimplementation in Ruby with a slightly different
feature set [2]
[1] http://johnkeeping.github.io/git-integration
[2] http://github.com/felipec/git-reintegrate
next prev parent reply other threads:[~2013-12-03 18:43 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-03 18:06 Branching workflow Javier Domingo
2013-12-03 18:42 ` John Keeping [this message]
2013-12-03 19:10 ` Javier Domingo
2013-12-03 19:12 ` Junio C Hamano
2013-12-03 19:25 ` Javier Domingo
2014-09-22 15:59 ` Javier Domingo Cansino
2014-09-25 5:15 ` Junio C Hamano
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=20131203184250.GB3163@serenity.lan \
--to=john@keeping.me.uk \
--cc=git@vger.kernel.org \
--cc=javierdo1@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.
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).