Development > Newbie Coding
The GIT problem::Initial clone
Duke:
--- Quote from: Duke on October 06, 2010, 11:37:22 pm ---- clone
The devs will sooner or later get their clone, but for a *new* contributor the 1.6 GB plus the learning of GIT is too much of a hurdle for most of the potential contributors imho.
--- End quote ---
The initial 'SVN checkout' wasn't really small either, but it was *restartable*.
Some ideas:
1. It has already been mentioned on these forums that GIT also offers a restartable version of 'clone'. If that is really equivalent to the std 'clone', it should be mentioned in a proiminent position in the docs.
2. We could split the repo 'horizontally'
By 'horizontally' I mean to strip off the history beyond version XX and keep it in a seggregated place for specialists.
I'll certainly never need any revision prior to 2.2.1 and will probably never go back beyond 2.3.
Does anyone know (or knows how to figure it out) how much the size of the repo would be reduced ?
3. split the repo 'vertically'
An old plan of mine is to make uforadiant a separate project. And I can think of more separate things.
Repo size reduction ?
H-Hour:
This forum thread had some commands that could be used to checkout without history.
Duke:
TY H-Hour. I take it that the --depth is the way to go.
- Does this work for both the read-only and commitable repo ? Or is there no difference ?
- Are there any disadvantages (other than not being able to bisect back to Adam&Eve) ?
- '--depth n' is a moving target. Can we also set depth to a certain tag, eg. 2.3 ?
- There are several variants of the depth method mentioned in the thread. It wasn't clear to me exactly which method worked best ?
DarkRain:
Ok, sorry for the late reply but my internet connection died on me again
--- Quote from: Duke on October 08, 2010, 12:00:55 am ---TY H-Hour. I take it that the --depth is the way to go.
--- End quote ---
I'm not sure about that read below . . .
--- Quote ---- Does this work for both the read-only and commitable repo ? Or is there no difference ?
- Are there any disadvantages (other than not being able to bisect back to Adam&Eve) ?
--- End quote ---
According to docs the BIG drawback would be that a shallow repo (created with --depth n) is completely push disabled, both pushin from it and to it (and see link below)
But you supposedly can download the history later using additional git fetch --depth n commands where n is the number of revs previous to the first one you have that you want to add to your repo's history (so maybe you can download the repo in 'parts')
--- Quote ---- '--depth n' is a moving target. Can we also set depth to a certain tag, eg. 2.3 ?
--- End quote ---
Not that I know, but you can fetch a specific branch not only master (with the method using init, remote add, fetch and checkout)
--- Quote ---- There are several variants of the depth method mentioned in the thread. It wasn't clear to me exactly which method worked best ?
--- End quote ---
Using git clone --depth n seems to have only marginal reduction of the repo weight according to this blog (I'll confirming that soon)
While using the method of: init the repo, add the wanted branch, fetch with --depth n and then checkout the branch makes a BIG difference in weight (I can confirm downloading aprox. 590 mb for master a while ago using this one) (so if you are only beta testing you can get the latest rev this way)
So I question (mostly myself):
-Can you get the whole repo branch by branch using this method?
-If you can, can you fetch the diffrent branches without history and then get the history using an additional git fetch --depth n (where n is a number that will get you the whole history)?
-Is it really needed to fetch all the branches anyway?
Besides that what about the idea in that blog entry about tarballing the repo? That would be restartable tough I don't expect it to shrink the ufoai repo by one gig.
Also can branches older than the latest release be 'hidden' fron a clone the way the data_source is? Would that reduce the download size?
I have other ideas but I have to go now, will report about the shallow cloning when its complete.
Mattn:
you can also just use the rsync method to fetch the repo
Navigation
[0] Message Index
[#] Next page
Go to full version