On Thu, Jan 23, 2014 at 2:41 PM, Andrea Bollini <a.boll...@cineca.it> wrote:
> According to this workflow it looks better manage bugs as PR against 4.x
> than as PR against the master. In this way if we miss to merge something to
> the master we can do it later also in one go for multiple patches/bug fixes.

We currently do the opposite - as soon as we decide a minor release is
coming out, we scour master for bugfixes and backport them. The two
approaches are really interchangable and equally difficult, so as long
as we stick to either one of them, we should be fine.

> The opposite direction is not so easy as it requires cherry pick and is
> "untracked" by git, so we need to assure by ourself that we don't miss bug
> fix.

I'm not sure what you mean by untracked by git. Do you mean regular
merges of the release branch to the master branch after each fix is
commited to the release branch? You're right in that this is not
possible to do in the other direction because on master, there are
non-bugfix changes intermingled with bugfixes. But a merge is
something you have to do from the command line (i.e. GitHub doesn't
make it easier; well, unless you want to fire additional PRs for the
same thing, which we recently agreed is not a good thing because it
fragments the discussion to many places), just like cherry-pick. What
advantages do you see to a merge as opposed to a cherry-pick? Or did
you mean something else?

> Also the famous  GitFlow branching model
> http://nvie.com/posts/a-successful-git-branching-model/
> suggest to work on the maintenance branch and after merge that in the
> develop branch (in our case the master).

Like I said above, the important thing is to standardize on one way.
This happens to describe the other way that the one we use, but I
really see no advantages to it.


Oh, and I forgot to mention one advantage to our current model I see.
It assures that if we forget to port the bugfix, it will be in all
subsequent releases, it will only miss from an old release. In the
reverse scenario, if we forget, it's fixed in the old version and not
in the future versions. I admit this doesn't happen to us very often,
but it's possible.

The second important advantage is in case of conflict (i.e. for
complex fixes that touch code with unrelated changes between the two
branches). If we fix on master and have a problem with conflicts that
are hard to resolve, we can just decide to give up on the fix for old
release. If we start from the old one, we *have to* push through to
fix the the newer branch.


Regards,
~~helix84

Compulsory reading: DSpace Mailing List Etiquette
https://wiki.duraspace.org/display/DSPACE/Mailing+List+Etiquette

------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Dspace-devel mailing list
Dspace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspace-devel

Reply via email to