[new-extension] hg breakout
Essien Ita Essien
me at essienitaessien.com
Sun Sep 2 13:38:14 CDT 2007
Guido Ostkamp wrote:
> On Sat, 1 Sep 2007, Essien Ita Essien wrote:
>> Anyways... I won't pretend to be a guru on the source control domain,
>> so i'm not exactly sure how this would work out. This is the rough
>> idea floating around my head after reading what you described above.
>> 1. Everyfile has its history, which contains changesets that list it
>> as an affected file.
>> 2. The breakout extension should carry along _only_ the changesets
>> that affect _all_ the files that fall _under_ the subdirectory being
>> Does this sound right?
> I wouldn't recommend to go through each files history. Instead I would
> scan through all changesets from first one to tip and check the list of
> affected (added/removed/modified) files to determine whether this
> changeset is of interest and if yes, which parts of it.
> If no file belongs to the directory which should be broken out, the
> changeset can be skipped; otherwise partially replay the changeset in
> the new repo, which means use only those parts that deal with changes in
> the matching directory.
> E.g. if you want to break out 'dir1' and you have the following original
> Changeset 1: Added dir1/file1
> Changeset 2: Added dir2/file47
> Added dir2/file49
> Added dir3/file50
> Changeset 3: Modified dir1/file1
> Added dir2/file48
> Modified dir2/file49
> Removed dir3/file50
> then a new breakout repository for 'dir1' should have the following
> Changeset 1: Added dir1/file1 (from orig changeset 1)
> Changeset 2: Modified dir1/file1 (from orig changeset 3)
ahhh... i understand that now. thnx for the idea.
Now there exists just one problem... understanding the changeset
recording and replaying mechanism.
I guess I have my work cut out for me. :)
More information about the Mercurial-devel