Re: Git performance results on a large repository
- From
Nguyen Thai Ngoc Duy <pclouds@gmail.com>
- Date
- Feb 10, 2012, 12:24 UTC
- Message-ID
- <CACsJy8ANHdG5r10Hk4Ap74+=KGrtDJGYbQa+9731S2YeHCb2Yw@mail.gmail.com>
- In-Reply-To
- <CAP8UFD1RTa6+btjJrsfqjOOoCjebZBqK6xkPN7ZVLM04bHO9yw@mail.gmail.com>
On Fri, Feb 10, 2012 at 4:39 PM, Christian Couder <christian.couder@gmail.com> wrote:
Show 13 quoted lines
> Hi, > > On Fri, Feb 10, 2012 at 8:12 AM, Nguyen Thai Ngoc Duy <pclouds@gmail.com> wrote: >> >> All these involve unpack_trees(), which is full tree operation. The >> bigger your worktree is, the slower it is. Another good reason to >> split unrelated parts into separate repositories. > > Maybe having different "views" would be enough to make a smaller > worktree and history, so that things are much faster for a developper? > > (I already suggested "views" based on "git replace" in this thread: > http://thread.gmane.org/gmane.comp.version-control.git/177146/focus=177639)
That's more or less what I did with the subtree clone series [1] and ended up doing narrow clone [2]. The only difference between the two are how to handle partial worktree/index. The former uses git-replace to seal any holes, the latter tackles at pathspec level and is generally more elegant.
The worktree part from that work should be usable in full clone too. I am reviving the series and going to repost it soon. Have a look [3] if you are interested.
[1] http://thread.gmane.org/gmane.comp.version-control.git/152347 [2] http://thread.gmane.org/gmane.comp.version-control.git/155427 [3] https://github.com/pclouds/git/commits/narrow-clone
-- Duy