-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Vincent Ladeuil wrote:
> I knew it was going to be a long day :)
> 
> So I made an mistake in my argumentation. Hurrah ! I was wrong, I
> learned something new ! That was a good day finally :) Thanks to
> Aaron and John for that.

Sorry to make it feel like it was an attack. I honestly did want to
understand why you felt it was different.

> 
> Why I thought the merge was done in the other direction is still
> a bit of a mystery[1]... but irrelevant to the discussion.

^- I think there is a missing footnote here :)


> 
> So what I meant is shown below (you can paste the following in
> bzrlib/tests/test_script.py and run 
> bzr selftest -s bt.test_script.TestGraphs).

Easier to just cut off the $ and run in a real shell, but both work.

> 
> More than two threads needs to be involved of course.
> 
...

> 
> Gee, 13 and 14 commands respectively for the simplest example :-(
> 
> My point was (and is still) that the difference when using a loom
> is that there is a point where you get a better control on how
> the trunk is merged in each thread because the trunk is brought
> "by the bottom", 'up-thread --auto' stops in case of conflicts
> for a good reason.

So that is true, but it would be identical if you used 2 feature
branches. And in fact, if I was trying to separate features like that,
*I* would try to do it as:

bzr init trunk
bzr commit -m "trunk" --unchanged trunk
bzr branch trunk vila
bzr branch trunk jam
bzr commit -m "vila1" vila
bzr commit -m "jam1" jam --unchanged
bzr commit -m "trunk2" --unchanged trunk

bzr qlog trunk vila jam

# Note that this is my argument for a DAG based loom/pipeline. As at
# this point, you can decide your dependencies, and do
cd vila
bzr merge ../trunk; bzr commit -m "merge trunk to vila"
cd ../jam
# either
bzr merge ../trunk; bzr commit -m "merge trunk to jam"
# or
bzr merge ../vila; bzr commit -m "merge vila(+trunk) to jam"


You probably want to visualize this with:
bzr qlog jam vila trunk

Though
bzr qlog trunk vila jam

Looks interesting. Of course, separate branches play nicer with 'qlog'
today, but I don't see any reason why qlog couldn't show the same graph
and labels for threads that it shows for branches.

Anyway, it depends on how much the 'vila' features are necessary for the
'jam' features, vs how independent they are.

> 
> The graphs are different because more information is preserved in
> the loom case, that's basically the same argumentation about
> rebase or not rebase, these additional commits may seem spurious
> but that's a different debate.
> 
> Putting that back in the udd context means that you get a chance
> to resolve the conflicts from upstream (there shouldn't be any
> since we do a pull and we can do that because we preserved the
> starting point) before resolving the conflicts from each patch,
> the conflicts from debian and finally the conflicts from ubuntu.
> 

Sure. Though it is the same if you use pipelines or split your commits
into feature branches manually.

I'll be honest, though. I'm starting to wonder if we really do want to
preserve the extra history. I certainly have made comments that we don't
want to write a system that makes a glorified "patch". Though honestly,
what you really care about landing in upstream is a "change". In loom
terminology, you really do only care about "bzr diff -rthread:" as that
is what is going to be reviewed upstream.

I guess the argument is for improved annotations. Though if you were
diligent to create threads for each logical step, then you would have
them. *And* they wouldn't be cluttered with "I'm done for tonight,
restarting tomorrow".

I used to think that all history should be immutable and preserved.
However, I save all my emails, and usually I can't find what I want
because I have to sift through 1000s of bogus ones. (Yes this is also an
argument for improved search...)

I am starting to think that history should be "immutable" but with the
possibility of annotating it. Consider a commit:
 "Remove foo and bar making it 10x faster."
That you could later annotate with:
 "Note: This was a *bad* idea, as it broke OS X and Windows and..."

It would be nice to have that note at least referenced when looking at
the original commit.

As for preserving everything... There is an argument for keeping the
signal to noise ratio high enough that things stay useful.

Anyway, things have digressed far from the original comments.

>        Vincent
> 
> P.S.: I don't attach the 40kB screenshots to preserve
> electrons. If you don't have qbzr installed you can replace 'bzr
> qlog' by 'bzr viz' (if you have bzr-gtk installed). And if you
> have neither, well, I can send you the screenshots :0)
> 
> 

John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAksrmnkACgkQJdeBCYSNAANcdQCgjB2Z4JKIkQOJ0SjG7vg1bLv0
R3oAnRML3TzF/fr9/SJQM9TlUG7n/lmT
=CcCN
-----END PGP SIGNATURE-----

-- 
ubuntu-distributed-devel mailing list
ubuntu-distributed-devel@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-distributed-devel

Reply via email to