Re: Handling large files with GIT

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Ben Clifford
Date: Sunday, February 12, 2006 - 6:26 pm

On Thu, 9 Feb 2006, Martin Langhoff wrote:


I've been keeping maildir in git for a few months, with mail being 
delivered into a git repo on one (permanently connected) host and me 
merging that branch into a repo on my laptop for reading (the intention 
being that I should be able to sync it back to the permanently connected 
host as I sometimes read mail there.

Alas, the merge part of this absolutely sucks -- as time goes by, its 
getting slower and slower (its taking an hour or so to do the merge, which 
has got to the point of being barely usable -- if it wasn't for the neat 
hack-value, I'd have given up on this by now).

I haven't really probed whats happening when I'm doing the merges in any 
depth, but I see a lot of index manipulation happening (git update-index, 
I think) to add and remove files where each invocation of that seems to be 
taking almost a whole second.

I wonder if the present merge algorithms perform especially badly in the 
case of a large number of files with lots of renames (and so lots of 
adds/removes) but no content changes? The merge should be able to happen 
entirely in the index, I think.

Perhaps one way to proceed would be for me to write a move-optimised merge 
strategy where I flip the index round and instead of saying "how has the 
content inside this filename changed?" I instead say "how has the filename 
associated with this content <hash> changed?"

A special-case on top of a move-optimised merge might be some 
maildir-aware filename handling that knows how to resolve conflicts when a 
particular content-hash has been renamed to two different names (eg. when 
one flag is added to a message in one repo and a different flag is added 
to a message in another repo).

Any advice/thoughts/suggestions-that-this-is-a-stupid-thing-to-do would be 
greatly appreciated.

-- 

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Handling large files with GIT, Martin Langhoff, (Wed Feb 8, 2:14 am)
Re: Handling large files with GIT, Johannes Schindelin, (Wed Feb 8, 4:54 am)
Re: Handling large files with GIT, Linus Torvalds, (Wed Feb 8, 9:34 am)
Re: Handling large files with GIT, Linus Torvalds, (Wed Feb 8, 10:01 am)
Re: Handling large files with GIT, Junio C Hamano, (Wed Feb 8, 1:11 pm)
Re: Handling large files with GIT, Florian Weimer, (Wed Feb 8, 2:20 pm)
Re: Handling large files with GIT, Martin Langhoff, (Wed Feb 8, 3:35 pm)
Re: Handling large files with GIT, Greg KH, (Wed Feb 8, 9:54 pm)
Re: Handling large files with GIT, Martin Langhoff, (Wed Feb 8, 10:38 pm)
Re: Handling large files with GIT, Ben Clifford, (Sun Feb 12, 6:26 pm)
Re: Handling large files with GIT, Linus Torvalds, (Sun Feb 12, 8:42 pm)
Re: Handling large files with GIT, Martin Langhoff, (Sun Feb 12, 9:40 pm)
Re: Handling large files with GIT, Linus Torvalds, (Sun Feb 12, 9:57 pm)
Re: Handling large files with GIT, Linus Torvalds, (Sun Feb 12, 10:05 pm)
Re: Handling large files with GIT, Jeff Garzik, (Sun Feb 12, 10:55 pm)
Re: Handling large files with GIT, Keith Packard, (Sun Feb 12, 11:07 pm)
Re: Handling large files with GIT, Linus Torvalds, (Mon Feb 13, 9:19 am)
Re: Handling large files with GIT, Ian Molton, (Mon Feb 13, 4:17 pm)
Re: Handling large files with GIT, Martin Langhoff, (Mon Feb 13, 4:19 pm)
Re: Handling large files with GIT, Martin Langhoff, (Mon Feb 13, 5:07 pm)
Re: Handling large files with GIT, Johannes Schindelin, (Tue Feb 14, 11:56 am)
Re: Handling large files with GIT, Linus Torvalds, (Tue Feb 14, 12:52 pm)
Re: Handling large files with GIT, Sam Vilain, (Tue Feb 14, 2:21 pm)
Re: Handling large files with GIT, Linus Torvalds, (Tue Feb 14, 3:01 pm)
Re: Handling large files with GIT, Junio C Hamano, (Tue Feb 14, 3:30 pm)
Re: Handling large files with GIT, Sam Vilain, (Tue Feb 14, 5:40 pm)
Re: Handling large files with GIT, Junio C Hamano, (Tue Feb 14, 6:39 pm)
Re: Handling large files with GIT, Linus Torvalds, (Tue Feb 14, 7:05 pm)
Re: Handling large files with GIT, Martin Langhoff, (Tue Feb 14, 7:07 pm)
Re: Handling large files with GIT, Linus Torvalds, (Tue Feb 14, 7:18 pm)
Re: Handling large files with GIT, Linus Torvalds, (Tue Feb 14, 7:33 pm)
Re: Handling large files with GIT, Linus Torvalds, (Tue Feb 14, 8:58 pm)
Re: Handling large files with GIT, Sam Vilain, (Tue Feb 14, 9:03 pm)
Re: Handling large files with GIT, Junio C Hamano, (Wed Feb 15, 2:54 am)
Re: Handling large files with GIT, Linus Torvalds, (Wed Feb 15, 8:44 am)
Re: Handling large files with GIT, Linus Torvalds, (Wed Feb 15, 10:16 am)
Re: Handling large files with GIT, Linus Torvalds, (Wed Feb 15, 8:25 pm)
Re: Handling large files with GIT, Junio C Hamano, (Wed Feb 15, 8:29 pm)