public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jeff Garzik <jgarzik@mandrakesoft.com>
To: Larry McVoy <lm@bitmover.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Problems using new Linux-2.4 bitkeeper repository.
Date: Sat, 16 Mar 2002 14:44:38 -0500	[thread overview]
Message-ID: <3C93A0A6.5030307@mandrakesoft.com> (raw)
In-Reply-To: <200203161608.g2GG8WC05423@localhost.localdomain> <3C9372BE.4000808@mandrakesoft.com> <20020316083059.A10086@work.bitmover.com> <3C9375B7.3070808@mandrakesoft.com> <20020316085213.B10086@work.bitmover.com> <3C937B82.60500@mandrakesoft.com> <20020316091452.E10086@work.bitmover.com> <3C938027.4040805@mandrakesoft.com> <20020316093832.F10086@work.bitmover.com> <3C938966.3080302@mandrakesoft.com> <20020316110144.H10086@work.bitmover.com>

Larry McVoy wrote:

>>Yes it is "altering history"... but... OTOH the user has just told 
>>BitKeeper, in no uncertain terms, that he is altering history only to 
>>make it more correct.
>>

>*All* of this stuff is trivial if you don't care about passing it on, if
>your repository is a backwater dead end.  But that's not the case.
>So you have to decide that you want the events to propagate and if you
>do, then we can do something about it.
>

Re-read my message, assuming I have a clue :)  This fits just fine into 
the distribute BK system, across any number of pushes and pulls.

I -would- want to pass on the fact that I merged multiple changesets 
into a single one...

Think about this example:
* I merge a GNU patch into tree A, creating cset 1.111.
* Marcelo merges the same GNU patch into tree B, creating cset 1.222.
* Time passes.  People clone repos off of both trees.
* I 'bk pull' from tree B.  Through the merge process, this creates a 
brand new "symlink cset", 1.333, which propagates the notion that my 
cset 1.111 is a complete copy of 1.222, so we should just read the data 
and revision history from 1.222.
* Now, I 'bk push' some changes to Marcelo.  This pushes, among other 
things, the magic symlink cset 1.333.  It does not push 1.111, since 
1.333 was the change to the local repo that told it not to.  Think of 
this like "cset -x" except smarter.  "cset -x", as I understand it, 
creates a new cset which is essentially the reverse of the specified 
cset.  Our symlink cset says to BitKeeper (a) not bother with 
patch-and-unpatch if both 1.111 and 1.222 are found to be missing 
downstream, and (b) if 1.111 but 1.222 are present downstream, to remove 
the data associated with 1.111, turning it into a symlink to 1.222.

This fits perfectly well into the BK distributed system, and works 
across any number of bk pushes and pulls.  Basically, "symlink csets" 
would show up in 'bk changes', much like merge csets show up in 'bk 
changes' now.

And you are no longer inserting the data N times.  The symlink csets 
take care of that.

And further, for people scattered all over the world with 1.111 cset, 
the 1.333 cset will slowly worm its way across the world, acting like a 
janitor and cleaning up BK repositories with duplicated patches :) 
 Isn't that neat? :)
(assuming that 1.333 cset is propagated out to the world, of course)

>I'm starting to get psyched about this, I think I see a picture that 
>works, I need to chew on it for a bit though.
>

whichever works :)

    Jeff, who really should sleep now :)



  reply	other threads:[~2002-03-16 19:45 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-03-15  2:38 Problems using new Linux-2.4 bitkeeper repository James Bottomley
2002-03-15  4:55 ` Jeff Garzik
2002-03-16 16:08   ` James Bottomley
2002-03-16 16:28     ` Jeff Garzik
2002-03-16 16:30       ` Larry McVoy
2002-03-16 16:41         ` Jeff Garzik
2002-03-16 16:52           ` Larry McVoy
2002-03-16 17:06             ` Jeff Garzik
2002-03-16 17:14               ` Larry McVoy
2002-03-16 17:25                 ` Jeff Garzik
2002-03-16 17:38                   ` Larry McVoy
2002-03-16 17:51                     ` Jeff Garzik
2002-03-16 18:31                       ` Christer Weinigel
2002-03-16 18:05                     ` Jeff Garzik
2002-03-16 19:01                       ` Larry McVoy
2002-03-16 19:44                         ` Jeff Garzik [this message]
2002-03-17 10:49                 ` David Woodhouse
2002-03-17 15:54                   ` Larry McVoy
2002-03-17 16:23                   ` David Woodhouse
2002-03-17 18:15                     ` Larry McVoy
2002-03-17 18:34                     ` David Woodhouse
2002-03-18 15:25                       ` Tom Rini
2002-03-16 17:17             ` James Bottomley

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=3C93A0A6.5030307@mandrakesoft.com \
    --to=jgarzik@mandrakesoft.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lm@bitmover.com \
    /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