Re: [RFC/WIP] Pluggable reference backends
- From
- David Lang <david@lang.hm>
- Date
- Mar 10, 2014, 16:28 UTC
- Message-ID
- <alpine.DEB.2.02.1403100923110.16215@nftneq.ynat.uz>
- In-Reply-To
- <87k3c2820l.fsf@fencepost.gnu.org>
On Mon, 10 Mar 2014, David Kastrup wrote:
Show 23 quoted lines
> Jeff King <peff@peff.net> writes: > >> On Mon, Mar 10, 2014 at 07:30:45AM -0700, Shawn Pearce wrote: >> >>>> * Store references in a SQLite database, to get correct transaction >>>> handling. >>> >>> No to SQLLite in git-core. Using it from JGit requires building >>> SQLLite and a JNI wrapper, which makes JGit significantly less >>> portable. I know SQLLite is pretty amazing, but implementing >>> compatibility with it from JGit will be a big nightmare for us. >> >> That seems like a poor reason not to implement a pluggable feature for >> git-core. If we implement it, then a site using only git-core can take >> advantage of it. Sites with JGit cannot, and would use a different >> pluggable storage mechanism that's supported by both. But if we don't >> implement, it hurts people using only git-core, and it does not help >> sites using JGit at all. > > Of course, the basic premise for this feature is "let's assume that our > file and/or operating system suck at providing file system functionality > at file name granularity". There have been two historically approaches > to that problem that are not independent: a) use Linux b) kick Linus.
As a note, if this is done properly, it could allow for plugins that connect to the underlying storage system (similar to the Facebook Mecurial change)
Even for those who don't have the $$$$$ storage arrays, there may be other storage specific hacks that can be done to detect that files haven't changed.
For example, with btrfs and you compile into a different directory thatn your source, you may be able to detect that things didn't change by the fact that the filesystem didn't have to do a rewrite of the parent node.
David Lang