git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git repository size vs. subversion repository size

From
Shawn O. Pearce <spearce@spearce.org>
Date
Apr 5, 2008, 03:11 UTC
Message-ID
<20080405031150.GQ10274@spearce.org>
In-Reply-To
<1086fb5f0804041502s7ab12202y3b0ec3640425eff@mail.gmail.com>
Sean Brown <seanmichaelbrown@gmail.com> wrote:
Show 12 quoted lines
> 
> Here are the steps I took (locally):
> 
> mkdir git-samplesite-tmp
> cd git-samplesite-tmp
> git-svn init http://subversion.myco.com/my_sample_website --no-metadata
> git config svn.authorsfile ~/Desktop/users.txt   # mapped svn users to git users
> git-svn fetch
> git clone git-samplesite-tmp git-samplesite
> 
> I did this based on reading the documents in the git wiki, so I
> assumed they were "best practice."  Did I do something wrong?

The last command there didn't get you the most efficiently packed repository possible. More recent versions of git-clone will prefer to hardlink all of the loose objects and packs from the source to the destination, so the clone can occur more quickly when they are on the same filesystem.

Really what you want to do here is repack the cloned directory (cd git-samplesite && git repack -a -d -f) and maybe include some aggressive --depth and --window options (e.g. 100/100) if you have some CPU time to burn and are reasonably certain you will be keeping the result. You only have to spend that CPU time once when converting from SVN, and all future clones from this one will benefit.

But your really major disk usage was due to what someone else pointed out, which was missing the "-s" flag to git-svn. So the Git working directory was huge, as we created working files for every single branch and every single tag. Ouch.

-- 
Shawn.
Previous: Jan Hudec
Message 11 of 11 in “git repository size vs. subversion repository size”
  1. Sean BrownApr 4, 2008
  2. Björn SteinbrinkApr 4, 2008
  3. Stephen BannaschApr 4, 2008
  4. Steven WalterApr 5, 2008
  5. Stephen BannaschApr 5, 2008
  6. Björn SteinbrinkApr 5, 2008
  7. Eric HanchrowApr 14, 2008
  8. Sean BrownApr 5, 2008
  9. Björn SteinbrinkApr 5, 2008
  10. Jan HudecApr 13, 2008
  11. Shawn O. PearceApr 5, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.