So we had a git bof at linux.conf.eu yesterday, and I leart something
new: even people who have been using git for a long time apparently don't
necessarily realize the importance of repacking.
James Bottomley (the Linux SCSI maintainer) is an old-time BK user, and
very comfy using git. But when he was demonstrating things on his poor old
laptop, simple things like "git branch" literally took a long time, and
James didn't seem to realize that the fact that he had apparently never
ever repacked his repository was a big deal.
The kernel archive is a 190MB pack for me fully repacked (I just checked -
I had actually thought that it was somewhat larger than that), but because
James hadn't repacked, his .git directory was over a gigabyte in size, and
his laptop wasn't able to cache anything at all effectively as a result.
Repacking it took over an hour, simply because everything was *so*
unpacked, and James' kernel repository had something like 92 thousand
loose objects, and several hundred packfiles. Simple operations that
really take much less than a second for me ("git branch" takes 0.022s on
my laptop, which has the same 512M that James had on his) took many many
seconds as a result, and James seemed to think that this was all normal.
And James didn't even want to repack, because it was so expensive (which
he knew - he claims to have never ever repacked at all, but maybe he had
started it and just control-C'd it when it was really slow at some point).
Now, it may be that James didn't realize how important the occasional
garbage collect is exactly *because* he is an old-timer and used BK long
before he used git, and just continued using git simply as a BK
replacement, but it did make me wonder whether maybe this lack of
repacking awareness is fairly common.
I've been against automatic repacking, but that was really based on what
appears to be potentially a very wrong assumption, namely that people
would do the manual repack on their own. If it turns out that people don't
do it, maybe the right thing for git to do really is to at least notify
people when they have way too many pack-files and/or loose objects.
I personally repack everything way more often than is necessary, and I had
kind of assumed that people did it that way, but I was apparently wrong.
Comments?
Linus
-
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
| Matt Mackall | Re: + fix-spellings-of-slab-allocator-section-in-init-kconfig.patch added to -mm t... |
| Andi Kleen | [PATCH] [0/36] Great change_page_attr patch series v3 |
| Bron Gondwana | Re: BUG: mmapfile/writev spurious zero bytes (x86_64/not i386, bisected, reproduca... |
| Nigel Kukard | SATA problems |
| Karl R. Buck | Re: (none) |
| drew | Re: Use PERL rather than C for system commands? |
| Theodore Ts'o | Re: demand paging: proposal |
| Steffen Finger | make compatible to bsd-make ? |
| Adrian Bunk | [2.6 patch] unexport icmpmsg_statistics |
| Evgeniy Polyakov | Re: [2/3] POHMELFS: Documentation. |
| jamal | Re: [PATCH 2/3][NET_BATCH] net core use batching |
| Stephane Chazelas | [iproute2] get_hz() with CONFIG_HIGH_RES_TIMERS |
git: | |
| Elijah Newren | Trying to use git-filter-branch to compress history by removing large, obsolete bi... |
| Junio C Hamano | PPC SHA-1 Updates in "pu" |
| Jon Smirl | Re: [PATCH 1/2] t7001: add test for git-mv dir1 dir2/ |
| Junio C Hamano | Re: Octopus merge: unique (?) to git, but is it useful? |
| Problem in scim in Fedora 9 | 31 minutes ago | Linux general |
| Firewall | 13 hours ago | OpenBSD |
| windows folder creation surprise | 17 hours ago | Windows |
| IP layer send packet | 1 day ago | Linux kernel |
| dtrace for linux available | 1 day ago | Linux kernel |
| Unable to mount ramdisk image using UBoot while upgrading to 2.6.15 kernel for a MPC8540 based target | 1 day ago | Linux kernel |
| RealTek RTL8169 - can't connect | 2 days ago | NetBSD |
| vsftpd Upload Problems | 2 days ago | Linux general |
| creating con folder in desktop | 2 days ago | Windows |
| Question about PFRA, dirty page cache, and tmpfs/swap | 2 days ago | Linux kernel |
