Jan Holesovsky wrote:I think the supposition that SVN uses hardlinks for pristine copy of sources (HEAD version) seems probable; then there it is 100M overhead plus size of changed files, and of course this tricks works only on filesystems which support hardlinks, and assumes either hardlinks being COW-links (copy-on-write) or editor behaving. I forgot to add there is possible to graft historical repository to the current work repository, resulting in full history available. For example Linux kernel repository has backported from BK historical repository, and there is grafts file which connect those two repositories. git-clone(1): --depth <depth>:: Create a 'shallow' clone with a history truncated to the specified number of revs. A shallow repository has number of limitations (you cannot clone or fetch from it, nor push from nor into it), but is adequate if you want to only look at near the tip of a large project with a long history, and would want to send in a fixes as patches. It is possible that those limitations will be lifted in the future (if possible), so there is alternate possibility to reduce needed disk space for git checkout. But certainly this is not for everybody. The problem with implementing this feature (you can do partial checkout using low level commands, but this feature is not implemented [yet?] per se) is with doing merge on part which is not checked out. Might not be a problem for OOo; but this might be also not needed for OOo. Sometimes submodules are better, sometimes partial checkout is the only way: see below. In my opinion each submodule should be able to compile and test by itself. You can go X.Org route with splitting sources into modules... or you can make use of the new submodules support (currently plumbing level, i.e. low level commands), aka. gitlinks. The submodules support makes it possible to split sources into independent modules (parts), which can be developed independently, and which you can download (clone, fetch) or not, while making it possible to bind it all together into one superproject. See (somewhat not up to date) http://git.or.cz/gitwiki/SubprojectSupport page on git wiki. By the way, the time to switch branch should be proportional to number of changed files, which you can get with "git diff --summary unxsplash HEAD". Or to be more realistic to checkout some old version (some old tag), as usually branches which got merged in are deleted (or even never got published). For example when bisecting some bug: Subversion doesn't have bisect, does it? I wonder if running "git pack-refs" would help this benchmark... -- Jakub Narebski Poland - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
| H. Peter Anvin | Re: [RFC 00/15] x86_64: Optimize percpu accesses |
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Eric W. Biederman | Remaining straight forward kthread API conversions... |
| Greg Kroah-Hartman | [PATCH 001/196] Chinese: Add the known_regression URI to the HOWTO |
| David Miller | [GIT]: Networking |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Frans Pop | svc: failed to register lockdv1 RPC service (errno 97). |
git: | |
