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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox