[darcs-users] splitting a repo

Tommy Pettersson ptp at lysator.liu.se
Wed Jan 5 11:47:20 UTC 2005


On Tue, Jan 04, 2005 at 10:56:27PM -0800, Sean Perry wrote:
> let's say I have a repo:
> 
> repo/dir_a
>     /dir_b
> 
> Is it possible to split out dir_b into its own repo while keeping the 
> history?

You can clone the repo (with 'darcs get') and unpull in
each all patches not confined to that sub repo.  Any patch
touching both dir_a and dir_b, such as all tags, will make
this impossible.  All files will also "remain" in the sub
level directory newrepo/dir_b.  You can 'darcs mv' them,
but their history will be ... kept.


An other way could be to rebuild dir_b as a new repo.

Make an empty repo and pull patches from the original repo
until dir_b appears.  Now initialize a new repo in dir_b (yes,
darcs can have nested repos) and add/record all in dir_b,
with the same name and author as the just pulled patch.

It's important to be in the right working directory when
issuing darcs commands: inside dir_b darcs will make changes
to the dir_b repo, and in the directory one level up darcs
will make changes to the copy of the original repo (which
now contains also a sub repo).

Then iterate: pull next patch to the copy repo and if it
modifies anything in dir_b, go to dir_b and record the changes
to the dir_b repo.  Names and authors can be set the same,
but the original dates will be lost, since darcs record
doesn't have a --date option.


-- 
Tommy Pettersson <ptp at lysator.liu.se>




More information about the darcs-users mailing list