From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S261241AbVDIRON (ORCPT ); Sat, 9 Apr 2005 13:14:13 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S261271AbVDIRON (ORCPT ); Sat, 9 Apr 2005 13:14:13 -0400 Received: from scrub.xs4all.nl ([194.109.195.176]:23472 "EHLO scrub.xs4all.nl") by vger.kernel.org with ESMTP id S261241AbVDIROK (ORCPT ); Sat, 9 Apr 2005 13:14:10 -0400 Date: Sat, 9 Apr 2005 19:14:00 +0200 (CEST) From: Roman Zippel X-X-Sender: roman@scrub.home To: Linus Torvalds cc: Luck@unix-os.sc.intel.com, Tony , Kernel Mailing List Subject: Re: Kernel SCM saga.. In-Reply-To: Message-ID: References: <20050408041341.GA8720@taniwha.stupidest.org> <20050408071428.GB3957@opteron.random> <4256AE0D.201@tiscali.de> <20050408171518.GA4201@taniwha.stupidest.org> <20050408180540.GA4522@taniwha.stupidest.org> <20050408191638.GA5792@taniwha.stupidest.org> <200504082050.j38Ko4r19673@unix-os.sc.intel.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Hi, On Fri, 8 Apr 2005, Linus Torvalds wrote: > Yes. Per-file history is expensive in git, because if the way it is > indexed. Things are indexed by tree and by changeset, and there are no > per-file indexes. > > You could create per-file _caches_ (*) on top of git if you wanted to make > it behave more like a real SCM, but yes, it's all definitely optimized for > the things that _I_ tend to care about, which is the whole-repository > operations. Per file history is also expensive for another reason. The basic reason is that I think that a hash based storage is not the best approach for SCM. It's lacking locality, so the more it grows the more it has to seek to collect all the data. To reduce the space usage you could replace the parent file with a sha1 reference + delta to the new file. This is basically what monotone does and might cause perfomance problems if you need to restore old versions (e.g. if you want to annotate a file). bye, Roman