Eli Zaretskii wrote:Because it might have been checked in as README, and since git is case sensitive that is what it'll think should be there when it reads the directories. If it's not, users get to see removed: README untracked: readme and there's really no easy way out of this one, since users on a case- sensitive filesystem might be involved in this project too, so it could be an intentional rename, but we don't know for sure. Just clobbering the in-git file is wrong, but overwriting a file on disk is wrong too. git tries hard to not ever lose any data for the user. To be honest though, there are so many places which do the readdir+stat that I don't think it'd be worth factoring it out, especially since it *works* on windows. It's just slow, and only slow compared to various unices. I *think* (correct me if I'm wrong) that git is still faster than a whole bunch of other scm's on windows, but to one who's used to its performance on Linux that waiting several seconds to scan 10k files just feels wrong. The object database, located under .git/objects. /* I'm on a limb here. Nicolas Pitre knows the git packfile format, so * perhaps he'll be kind enough to correct me if I'm wrong */ The mmap() stuff is primarily convenient when reading huge packfiles. As far as I understand it, they're ordered by some sort of delta similarity score, so mmap()'ing 100MiB or so of a certain packfile will most likely mean we have a couple of thousand "connected" revisions in memory. That database gets sort of restructured as the memory-chunk that's mmap()'ed get moved to read in the next couple of thousand revisions. In all honesty, this doesn't matter much for already fully packed projects unless they're significantly larger than the Linux kernel, since git is so amazingly good at compressing large repos to a small size. Linux is ~180 MiB fully packed, and most developer's systems could just read() that entire packfile into memory without much problem. But then again, no-one's ever had problems supporting the "normal" cases. -- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231 - 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
| S.Çağlar | Rescheduling interrupts |
| Linus Torvalds | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Andrew Morton | Re: Slow DOWN, please!!! |
| Robin Lee Powell | NFS hang + umount -f: better behaviour requested. |
git: | |
| Len Brown | fatal: unable to create '.git/index': File exists |
| A Large Angry SCM | Notes on Using Git with Subprojects |
| Sam Song | Fwd: [OT] Re: Git via a proxy server? |
| Nguyen Thai Ngoc Duy | on subtree checkout |
| mufurcz | Nvidia Quadro NVS 140M |
| Juan Miscaro | When will OpenBSD support UTF8? |
| Chris Cohen | Sendmail smarthost |
| Jeff Ross | U320 Drive on U160 controller? |
| Jeff Garzik | Re: [PATCH] Add eeprom_bad_csum_allow module option to e1000. |
| Martin Willi | [RFC PATCH] xfrm: Accept XFRM_STATE_AF_UNSPEC SAs on IPv4/IPv6 only hosts |
| PJ Waskiewicz | [PATCH 3/3] ixgbe: Enable Data Center Bridging (DCB) support |
| Krzysztof Oledzki | Error: an inet prefix is expected rather than "0/0". |
