How to cope with patches sanely
Sam Vilain
sam at vilain.net
Thu Feb 28 23:35:30 UTC 2008
Manoj Srivastava wrote:
>> Feature branches don't magically allow you to avoid merge conflicts
>> either, so this is a red herring. Once you've resolved the conflict,
>> then it becomes just another change. This change can become a diff in
>> a stack of diffs.
>
> This whole message is a red herring, since hte feature branches
> do not attempt to handle merge conflicts -- that is not their purpose.
> They capture one single feature, independently from every other
> feature, and thumb their collective noses at merge conflicts.
Yes. Feature branches are effectively forking a particular version of a
project - this is not a problem, and is essential for efficient
development. People jumbling together changes in "trunk" branches is
perhaps one of the worst upshots of the 2002-2006 or so obsession with
poorly designed centralised systems and in my opinion sank many projects.
> The history of the integration branch captures the integration
> effort; and the integration branch makes no effort to keep the
> integration work up to date with current upstream and feature
> branches.
Initially perhaps. However, once a feature is considered ready for
inclusion, it is important that it contains merges FROM the branch they
are targetting. They mean that a later merge back the other way, to
merge the feature branch into the target branch, can happen painlessly.
ASSUMING that you're using a system which has commutative merge
characteristics, such as git or mercurial.
> If you think you can extract an up to date integration patch
> from the entrails of the integration branch -- feel free o smack
> me down. But please provide some substance to the assertion that it is
> doable.
Perhaps I missed the context to this discussion - certainly expressing a
history containing merge nodes in patches is non-trivial and can't be
done with standard patch format - but I believe that this is certainly
possible.
Can you express this problem with reference to a particular history of
an integration branch? I will provide some short git commands to
extract the information in the form you are after.
Sam
More information about the vcs-pkg-discuss
mailing list