git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* distributed merge prototype
@ 2005-04-20 17:50 Matt Mackall
  0 siblings, 0 replies; only message in thread
From: Matt Mackall @ 2005-04-20 17:50 UTC (permalink / raw
  To: git

I've hacked together a prototype SCM that I think you folks might be
interested in. The announcement is here:

 http://selenic.com/mercurial/announce.txt

It's at a very early stage right now and is likely to break if you
look at it wrong, but I have sucessfully managed to check in kernel
trees, do a local clone/branch, make changes in both trees, and then
do a pull/sync which called up tkdiff where appropriate.

I mention it here because I've got a fairly simple implementation of
distributed merge ala Monotone or BK with the necessary graph smarts.
It also should perform decently - I've paid a lot of attention to the
scalability of the core algorithms. The core of the merge code is less
than 100 lines so even people who aren't familiar with Python may be
able to wrap their head around it and leverage it for git.

I'd also like to encourage more attention to back-end storage.
Mercurial can check in all 495 versions of linux/Makefile from bkcvs
to compressed delta store in about 5 seconds on my laptop and the
result is about 80K (bkcvs takes 254K). Adding and retrieving
revisions is O(1).

The same directory individually compressed by gzip (ie what git does)
takes a comparable amount of time and 5.1M of disk space. This is
admittedly a worst case for git as most of the deltas are small, but I
needed a test file with lots of revisions.

Now back to our regularly scheduled programming..

-- 
Mathematics is the supreme nostalgia of our time.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-04-20 17:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-04-20 17:50 distributed merge prototype Matt Mackall

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).