[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