[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
>> processed.
>>
>> 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
> repository:
>
> 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
> changesets:
>
> 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. :)
cheers,
Essien
>
> Regards
>
> Guido
>
More information about the Mercurial-devel
mailing list