[Bitkeeper-users] Me again, csetpruning

Tristan Van Berkom tvb at gnome.org
Wed Mar 1 10:08:37 PST 2006


Email is a little long; maybe you'll want to skip to
the summery below ;-)

Rick Smith wrote:
[...]

Firstly; thanks for the detailed replies everyone, I havent solved
my problem but appriciate the attention (makes a HUGE difference
in my progress).

> Here's something you can do to ease some pain, but has some pain:
> 
> make a copy of the current state of all the binary files.
> bk rm the binary files
> bk new the copies of the binary files
> clone the repo
> csetprune the deleted files
> have people do new work on a clone of the csetpruned repository

Ok, so at this point we create a new repo without the history
that is usable and smaller...

> There will be some people who will be finishing up some work
> in an old repo.
> They will pull and get a conflict that they modified a deleted file.
> After the resolve, then need to get the state of the deleted binary
> file and make a delta on the new binary file location.

Hmmm; dont really care about those people, there can never be more
then like 12 of them so I can tell them to clone and apply their work
on the new repo.

> After they push, a csetprune can be run on a clone, and that
> repo can be pulled and merged with the other csetpruned repos.

I see, this is the "one-way bridge" you speak of... I could save
myself some typeing by just creating a new bk repo and import all
the files from the old big repo by hand... and lose that one way
bridge; all I need is a one-way bridge that goes the other way :-/

This is what I'm thinking I'll do to somewhat address the problem;
we currently use a heirarchy of repo's as described in the chart below,
minus the HISTORY repo, here would be my plan:

   o Make HISTORY an identical parent of STABLE via clone/reparent
   o Routinely strip all history from STABLE in the way you described
     I guess after this point 'user at host ~/path/HISTORY$ bk pull STABLE'
     is broken due to incompatabilities (or maybe I'll just create
     new repos for that)
   o Since we can safely assume that the relationship between
     STABLE/HISTORY is always incremental (i.e. never any merges or
     anything; patches apply one on top of the other), then we can
     somehow generate patches to HISTORY every time we nuke the
     history in STABLE.

It would really be great if I could somehow manually patch HISTORY
as a bk repo and tell myself "I cant really pull & push from it
now; but when our buddies implement binpool or whatever; we'll be
able to revive this repo"... untill then all that I've noticed that
breaks is "bk pull/push"; cloning the repo worked (so I could still
reproduce a working copy from a bitkeeper TAG... I hope)

If I cant do that... I'll have to just save tarballs of STABLE in
a directory called HISTORY and name them by the date we stripped
history from STABLE; which would still be usefull... but no so
much fun :-/

Summery:
========
     o Will I eventually be able to revive such a repo with later
       versions of BitKeeper and what would be the ETA (Larry said
       about 6 months for binpool; but I dont know if that would
       include the revival of broken repos) ?
     o Is it a safe assumption that with an huge repo like that;
       I can still use bk clone -rTAG to reproduce working builds ?
     o Any concievable way I that I can tack changesets onto HISTORY
       from STABLE without using bk push/pull; would bk send/recieve
       work for this even though the repositories dont exacly match
       anymore ?

==========================================
          +---------+
          | HISTORY |
          +---------+
               |
          +--------+
          | STABLE |
          +--------+
               |
        +-------------+
        | INTEGRATION |
        +-------------+
          /          \
   +-----------+  +-----------+
   | PROJECT A |  | PROJECT B |
   +-----------+  +-----------+
       |
+------------+
| Joe's copy |
+------------+
==========================================

Cheers,
                             -Tristan



More information about the Bitkeeper-users mailing list