From: Dmitry Potapov Date: Sat, 17 Apr 2010 10:40:37 GMT Subject: Re: GIT Performance question Message-ID: <20100417104037.GA20631@dpotapov.dyndns.org> In-Reply-To: <1271498149921-4917066.post@n2.nabble.com> On Sat, Apr 17, 2010 at 01:55:49AM -0800, santos2010 wrote: > > I read that GIT doesn't use deltas, it uses snapshots. My question is: how > could GIT have high performance (most of the users say that) if for > synchronization (pull/push command) with e.g. a shared repository GIT > transfers all modified files (and references) instead of the respective > deltas? Well, Git _does_ use deltas for storage and synchronization, but this deltas are unrelated to history of changes stored in the repository. So, conceptually, Git just stores snapshots, but files in those snapshots are deltified against some old files based on some heuristic of finding similar files, which allows Git to create deltas not only to previous version of the same file (which most VCSes do), but potentially to any file stored in the repository if it similar enough. So, typically, Git has the most compact storage comparing to other VCSes, in particular, in case of complex history with a lot of branches and merges. Dmitry