From: Patrick Ohly <Patrick.Ohly@gmx.de>
To: openembedded-devel@lists.openembedded.org
Subject: Re: A question of workflow
Date: Mon, 08 Jan 2007 22:02:51 +0100 [thread overview]
Message-ID: <1168290172.4526.66.camel@ip6-localhost> (raw)
In-Reply-To: <432beae0701081111n490d67e2oebcaf44f4fe45e04@mail.gmail.com>
On Mon, 2007-01-08 at 11:11 -0800, Justin Patrin wrote:
> On 1/8/07, Patrick Ohly <Patrick.Ohly@gmx.de> wrote:
> > On Sun, 2007-01-07 at 14:46 -0800, Justin Patrin wrote:
> > > One thing I could see us doing is possibly comitting a patch as-is and
> > > then making changes and comitting that. (Of course, we wouldn't push
> > > until it's all finished) but I don't know how well that will merge.
> >
> > I think it would merge as well (or bad) as committing to a branch first.
> > The reason why I didn't mention this possibility is that it means that
> > the core developer's revision of the trunk gets temporarily "polluted"
> > with an unchecked and possibly incomplete patch. That might prevent
> > finishing and pushing some other, more important work. I also don't know
> > how easy it would be to back out the patch completely.
>
> I'm not sure what making another branch realy buys here.
The main point which makes life easier for external contributors is that
the patch is applied as-is and then modified, with all changes recorded
in monotone. However, you are right: the change must be recorded on
trunk. Making it on a branch and then only propagating the result fails,
see below.
> In fact, I'm
> not even sure how monotone is happily merging your conflicts seeing as
> the patch would still be coming from 2 places.
I don't know exactly why it worked, but it did in a case where the
normal "reapply your patches" method would have failed.
I also tested another scenario that we have mentioned:
* the contributor creates two patches changing the same file and
submits them separately because they fix different problems
while at the same time commiting them to a private branch
* a developer commits the first patch literally on the trunk
* the contributor pulls trunk and propagates to his branch (no
conflicts)
* developer commits second patch literally on trunk
* pulling and propagating again works without conflicts
I think the key reason why this works is that the developer recreates a
revision as it exists on the contributors branch and therefore monotone
doesn't really have to do anything.
Let's try a more complicated scenario:
* the contributor makes a change to one file, submits patch
* he makes another change to another file, submits patch
* OE developer accepts first patch into trunk, then modifies it
* pulling and propagating to private branch works without
conflicts, but this time monotone created a merged version that
the contributor can update to
* OE developer commits second patch
* contributor can pull + propagate and his private branch is
identical with trunk again
Finally a last one:
* the contributor makes a change to one file, submits patch
* he makes another change to another file, submits patch
* OE developer commits the second patch first, on a branch
* he modifies the same file to fix it
* finally propagates to trunk
* contributor pulls and propagates to private branch => now there
is a conflict which needs to be resolved manually
Okay, so if there is something to be learned from this, then I suppose
it is this:
* Contributors, keep your changes in a private branch by using
"monotone commit -b <your branch name>" the first time you
commit changes. The branch names is remembered for the current
working copy, so there is no need to always use the "-b". Use
"mtn pull && mtn propagate org.openembedded.dev <your branch
name> && mtn update" to follow the main development.
* OE developers, please, be kind to your contributors and apply
patches literally, commit them to org.openembedded.dev and only
then modify them.
> > > OE dev (assuming patch and change is ok):
> > > 5) updates their workspace to revision from 1)
> >
> > Even if the contributor is able to provide a revision, isn't that going
> > to be a lot slower for the core developer? It implies going back to an
> > older revision and then recompiling all sources necessary to check the
> > patch (okay, that could be skipped, but that's not desirable).
>
> Updating to an older revision isn't hard. It's about the same thing as
> doing a new checkout or creating a new branch.
But recompiling everything that was modified by going to the other
revision is going to take time.
--
Bye, Patrick Ohly
--
Patrick.Ohly@gmx.de
http://www.estamos.de/
next prev parent reply other threads:[~2007-01-08 21:09 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-30 5:16 A question of workflow Matthew Palmer
2006-12-30 19:19 ` Richard Purdie
2006-12-30 21:43 ` Matthew Palmer
2006-12-30 22:07 ` Koen Kooi
2006-12-30 23:08 ` Erik Hovland
2006-12-30 23:40 ` Matthew Palmer
2006-12-31 0:02 ` Richard Purdie
2006-12-31 9:36 ` Koen Kooi
2006-12-31 11:12 ` Matthew Palmer
2006-12-30 23:59 ` Matthew Palmer
2006-12-31 0:06 ` Richard Purdie
2006-12-31 9:45 ` Koen Kooi
2006-12-31 11:00 ` Matthew Palmer
2006-12-31 11:10 ` Koen Kooi
2007-01-07 20:04 ` Patrick Ohly
2007-01-07 21:16 ` Paul Sokolovsky
2007-01-07 21:40 ` Patrick Ohly
2007-01-07 22:03 ` Matthew Palmer
2007-01-07 22:46 ` Justin Patrin
2007-01-07 22:56 ` Matthew Palmer
2007-01-07 23:11 ` Justin Patrin
2007-01-08 18:28 ` Patrick Ohly
2007-01-08 19:11 ` Justin Patrin
2007-01-08 21:02 ` Patrick Ohly [this message]
2007-01-08 21:13 ` Koen Kooi
2007-01-08 21:43 ` Patrick Ohly
2007-01-08 21:53 ` Justin Patrin
2007-01-09 9:42 ` Richard Purdie
2007-01-09 19:51 ` Patrick Ohly
2007-01-08 1:18 ` Rolf Leggewie
2007-01-08 18:09 ` Patrick Ohly
2007-01-09 12:51 ` Rolf Leggewie
2007-01-09 12:54 ` Rolf Leggewie
2007-01-09 19:39 ` Patrick Ohly
2007-01-02 20:06 ` Paul Sokolovsky
2007-01-02 20:08 ` [Angstrom-devel] " Koen Kooi
2007-01-04 4:23 ` Justin Patrin
2006-12-31 2:41 ` jack-oe
2007-01-02 0:05 ` Cliff Brake
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=1168290172.4526.66.camel@ip6-localhost \
--to=patrick.ohly@gmx.de \
--cc=openembedded-devel@lists.openembedded.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.