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]].