login
Header Space

 
 

Re: [PATCH] RFC: git lazy clone proof-of-concept

Score:
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Jan Holesovsky <kendy@...>
Cc: <git@...>, Junio C Hamano <gitster@...>
Date: Sunday, February 10, 2008 - 9:20 pm

Hi, Jan!

On Sat, 9 Feb 2008, Jan Holesovsky wrote:

Here perhaps another optimization which wasn't done because git is
fast enough on moderately-sized repositories, namely that IIRC git-clone
(and git-fetch for sure) over native (smart) protocol recreates pack,
even if sometimes better and simplier would be to just copy (transfer)
existing pack.

But this would need multi-pack "extension". (it should work just now
without transport protocol extension, receiver must only be aware
of the need to split resulting pack, and index them all).


I hope that would work better...


If I remember correctly fetching _into_ shallow clone works correctly,
as deepening depth of shallow clone. What is not implemented AFAIK, but
should be not too hard would be to allow to push from shallow clone
to full clone. This way the network of full clones (functioning as
centres to publish your work) and shallow + few branches repos (working
repositories).

I don't know if that would be enough.

For better support git would need to exchange graft-like information,
and use union of restrictions to get correct commits.


Perhaps it would be best to mail 'shallow clone' author...


You can configure separate 'remote's for the same repository
with different heads. This would work both for pull and for push.


I think the solution proposed by Marco Costalba, namely of creating
"archive" repository, and "live" repository, joining them if needed
by grafts, similarly to how linux kernel has live repo, and historical
import repo, would be good alternative to shallow or lazy clone.

There would be "archive" repo (or repos), read only, with whole history,
very tightly packed with kept packs, with all branches and all tags,
and "live" repo, with only current history (a year, or since major
API change, or from today, or something like that), with only important
branches (or repos, each containg important for a team set of branches).
There would be prepared graft file to join two histories, if you have
to examine full history. Hopefully repo would be smaller.


Sidenote: due to (from what I have read) heavy use of topic branches
in OOo development, Subversion would have to be used with svnmerge
extension, or together with SVK, to make work with it not complete
pain.

In CVS you could have ad-hoc modules, and ad-hoc partial checkouts
(so called 'modules'), but that plays merry hell with whole tree,
atomic, recoverable state commits. In Git you have to plan carefully
boundaries between submodules / subprojects. Additional advantage
is that you would have boundaries more clear, and better modularity
usually leads to better code.

Comparing directly Subversion and Git is a bit stupid: they promote
different workflows. From what I've read Git with its ability to very
easily create branches, with easy _merging_ of branches, and ability
to easily create _private_ branches (testing branches) have much
common witch chosen OOo SCM workflow. Playing to strentghs of
Subversion because that is why you used because of limits of previously
used tools is not smart.

But if you have to, then you have to. Git would hopefully get lazy
clone support from your effort. But perhaps it would be possible
(if additional work) to prepare two repositories: first the same
as Subversion (and same as now in CVS), second one "how it should
be done with Git".


I hope that ability to work with submodules (with ability to not
clone / checkout modules if not needed), i.e. "svn:externals
done right" to para[hrase SVN slogan, would be one of reasons to
chose Git over Subversion.


For example what is the size of full checkout (all version-control
managed files). Of for example it is 0.5 GB it would be hard to go
to less that 0.5GB or so with pack size, even with compression
of objects themselves in pack file.


Such large repositories, like Mozilla, GCC, or now OpenOffice.org
tests the limits of Git. Perhaps snapshot-based distributed SCMs
cannot deal sensibly with such large projects; I hope this is not
the case.

I wonder if packv4 improvements, which development stalled because
(if I understand correctly) because it didn't brough as much
improvements, and what is now was good enough for up-till-now
projects, would help with OpenOffice.org repository...


P.S. From what I have read OOo uses CVS + some branch DB; does
your importer make use of this branch info database?

-- 
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
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] RFC: git lazy clone proof-of-concept, Jan Holesovsky, (Fri Feb 8, 1:28 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Johannes Schindelin, (Fri Feb 8, 4:16 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jakub Narebski, (Fri Feb 8, 3:00 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jan Holesovsky, (Sat Feb 9, 11:27 am)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jakub Narebski, (Sun Feb 10, 9:20 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Nicolas Pitre, (Sat Feb 9, 11:10 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Johannes Schindelin, (Sun Feb 10, 12:43 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Nicolas Pitre, (Sun Feb 10, 3:50 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Brandon Casey, (Thu Feb 14, 3:41 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Nicolas Pitre, (Thu Feb 14, 4:11 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Johannes Schindelin, (Thu Feb 14, 3:58 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Johannes Schindelin, (Sun Feb 10, 2:47 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Johannes Schindelin, (Tue Feb 12, 4:37 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Johannes Schindelin, (Thu Feb 14, 3:20 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jan Holesovsky, (Fri Feb 15, 5:34 am)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jakub Narebski, (Thu Feb 14, 4:05 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Brandon Casey, (Thu Feb 14, 5:08 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Johannes Schindelin, (Thu Feb 14, 5:04 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jakub Narebski, (Thu Feb 14, 5:59 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jan Holesovsky, (Fri Feb 15, 5:43 am)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Johannes Schindelin, (Thu Feb 14, 7:38 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jakub Narebski, (Thu Feb 14, 9:07 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Brian Downing, (Thu Feb 14, 7:51 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Johannes Schindelin, (Thu Feb 14, 8:08 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Nicolas Pitre, (Thu Feb 14, 9:41 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Shawn O. Pearce, (Sun Feb 17, 4:18 am)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Nicolas Pitre, (Sun Feb 17, 2:44 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Junio C Hamano, (Sun Feb 17, 5:05 am)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Brian Downing, (Thu Feb 14, 7:57 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Nicolas Pitre, (Thu Feb 14, 4:16 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jon Smirl, (Tue Feb 12, 5:25 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Linus Torvalds, (Tue Feb 12, 5:08 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jon Smirl, (Tue Feb 12, 5:36 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Linus Torvalds, (Tue Feb 12, 5:59 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Linus Torvalds, (Tue Feb 12, 6:25 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jon Smirl, (Tue Feb 12, 6:43 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Linus Torvalds, (Tue Feb 12, 7:39 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Nicolas Pitre, (Tue Feb 12, 5:05 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Nicolas Pitre, (Sun Feb 10, 3:42 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jon Smirl, (Sun Feb 10, 4:11 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jon Smirl, (Sun Feb 10, 1:01 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Johannes Schindelin, (Sun Feb 10, 1:36 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Nicolas Pitre, (Sun Feb 10, 1:22 am)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jakub Narebski, (Sun Feb 10, 9:42 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Nicolas Pitre, (Sun Feb 10, 10:04 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jakub Narebski, (Mon Feb 11, 6:11 am)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jon Smirl, (Fri Feb 8, 3:26 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Harvey Harrison, (Fri Feb 8, 4:19 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jon Smirl, (Fri Feb 8, 4:24 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Harvey Harrison, (Fri Feb 8, 4:25 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jon Smirl, (Fri Feb 8, 4:41 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Nicolas Pitre, (Fri Feb 8, 4:09 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Andreas Ericsson, (Mon Feb 11, 6:13 am)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Mike Hommey, (Fri Feb 8, 2:49 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jan Holesovsky, (Sat Feb 9, 11:06 am)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Johannes Schindelin, (Fri Feb 8, 3:04 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Johannes Schindelin, (Fri Feb 8, 2:20 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Harvey Harrison, (Fri Feb 8, 2:14 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jan Holesovsky, (Sat Feb 9, 10:27 am)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Nicolas Pitre, (Fri Feb 8, 2:03 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Jan Holesovsky, (Sat Feb 9, 10:25 am)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Marco Costalba, (Sun Feb 10, 3:23 am)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Johannes Schindelin, (Sun Feb 10, 8:08 am)
Re: [PATCH] RFC: git lazy clone proof-of-concept, David Symonds, (Sun Feb 10, 12:46 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Johannes Schindelin, (Sun Feb 10, 1:45 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Nicolas Pitre, (Sun Feb 10, 3:45 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Johannes Schindelin, (Sun Feb 10, 4:32 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Mike Hommey, (Sat Feb 9, 6:05 pm)
Re: [PATCH] RFC: git lazy clone proof-of-concept, Nicolas Pitre, (Sat Feb 9, 7:38 pm)
speck-geostationary