On Mon, 10 Mar 2014, David Kastrup wrote:
Jeff King <peff@xxxxxxxx> 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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html