Question on work-flow for big binary files

Arne Babenhauserheide arne_bab at web.de
Thu Dec 18 02:59:02 CST 2008


Am Mittwoch 17 Dezember 2008 23:26:16 schrieb Marcus Lindblom:
> It seems to be no big problem in using Mercurial to manage sources, but
> there's also the matter of content files (3d-models, textures, whatnot)
> that have a different characteristics/usage patterns than source code:
>
>   * are big (10-100:s of megabytes)
>   * change in bursts (a few weeks with 1-4 commits/day), then are stable
> for a long time (so some near-time rollback is necessary, but ancient
> history is not important)
>   * are often binary
>
> With svn, I could imagine a scheme where you'd store content-files in a
> separate repo which was processed (dumped/filtered/restored) every week
> or so to remove any intermediate copies above a certain age, of course
> keeping heads of any tags and branches.

Since you only need short-time version tracking of these files, I'd just 
create a clone of the main repo for working on certain content files, and once 
they are stable just copy them into main (without their history). 


main/ - all data, content files stable. 
content1/ - all data + current nonstable content files. Pull, but never push. 
content2/ - all data + other nonstable content files. Pull, but never push. 
...

in main you aggregate these files as if you'd take finished patches from other 
people. 

The content repos can then just pull from main to get the new stable content 
files. 

This is essentially designed to be very similar to your scheme, but taking 
advantage of the cheap cloning in Mercurial. You can simply create a clone 
everytime you work on another set of content files. 

For example you could have a content-repository per 3D character, including 
unstable versions of the content items (meshes, textures, sounds) connected to 
that character, and once you're happy with that character you copy all its 
files over to the main repo and do a commit there. 

If you need to rework the character later on, you just create another clone 
from main and work there. 

After the files get stable, you can just throw away (or backup) the clone and 
create a new one for the next set of content items. 

Always remember that cloning is cheap - and safe. 

Best wishes, 
Arne
-- 
-- My stuff: http://draketo.de - stories, songs, poems, programs and stuff :)
-- Infinite Hands: http://infinite-hands.draketo.de - singing a part of the 
history of free software.
-- Ein Würfel System: http://1w6.org - einfach saubere (Rollenspiel-) Regeln.

-- PGP/GnuPG: http://draketo.de/inhalt/ich/pubkey.txt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
Url : http://selenic.com/pipermail/mercurial/attachments/20081218/96143a95/attachment.pgp 


More information about the Mercurial mailing list