Hello everybody,

I've spent some time lately thinking about rewriting FSVS to use git as
backend.

I'd like to present some of my musings, and ask for ideas and feedback.

 + git does the deduplication automatically, so sharing of repositories
   across multiple servers make more sense.
 + git can remove commits ("rebase", and cleanup the associated file data
   ("svn obliterate" is still not finished AFAIK)
 + "rebase" means that history can be pretty-fied (cut a "dist-upgrade"
   into various pieces)
 - git cannot checkout partial repositories; so if something has to be
   checked without using FSVS (as it's possible now via svn), the whole
   tree has to be checked out.
   That could be mitigated by using multiple HEADs - one for /usr, one
   for /etc, one for the rest of /, etc.
 * FSVS on subversion has low local data storage needs; I'd do something
   similar for git (no whole repository needed locally)
 * Meta-Data would be referenced by git-notes; that means that users could
   mess around with them (like with svn properties).
   I'm not entirely sure how to proceed on users doing "commit --amend" or
   "rebase".

Things that make me a bit cautious:
 * git isn't build for large files - see eg.
   http://stackoverflow.com/questions/984707/what-are-the-git-limits
 * While FSVS wouldn't store whole files in memory, "git" itself might try -
   and that wouldn't work for big files.
 * Filesize is hard limited by 32bit - see struct cache_entry and
   http://lwn.net/Articles/382295/

These problems could be mitigated - I'm thinking of allowing to overlay
different repository types, so the big files could be moved into a svn-
repository.


Ideas, wishes, feedback?


Regards,

Phil


-- 
Versioning your /etc, /home or even your whole installation?
             Try fsvs (fsvs.tigris.org)!

------------------------------------------------------
http://fsvs.tigris.org/ds/viewMessage.do?dsForumId=3928&dsMessageId=2697495

To unsubscribe from this discussion, e-mail: 
[[email protected]].

Reply via email to