3 ms·
"It's too slow" is not a trivial problem to solve. Anything but. Depends on your viewpoint, but I'd argue it's not actually that hard to solve unless you a
by gecko 11y ago
"It's too slow" is not a trivial problem to solve.
Anything but.
Depends on your viewpoint, but I'd argue it's not actually that hard to solve unless you also require you solve it within the context of Git. For example, in most systems, you can do something called a narrow checkout, where you only grab part of the tree of the whole repository. Subversion, Monotone, Perforce, and (soon) Mercurial all support this, whereas Git does not--and, the last I looked at the Git protocol, it wouldn't have been sane to implement. (Been about two years at this point, so I apologize if that has changed.)
Beyond that, even local commit in a single repo is actually pretty easy to solve if you have file watchers (powered by e.g. inotify, kqueue), which at least Mercurial does, and I'd honestly swear Git does also.
At that point, I don't think there's a lot left that inherently has to make commits take the better part of an hour. If you are at such a company, please take a moment to run strace or something; I'm really curious where the tool's spending so much time.
- harkyns_castle 11y ago> whereas Git does not [...] Git's "sparse checkout" feature can grab a part of a larger repo from memory.
- jfreax 11y agoJust as an update for you: You can do "shallow" clones in git (clone up to a maximum given depth of history). Since Version 1.9 (released early 2014), you can use such a repo like a normal one (push, clone from it, ...)
- gecko 11y agoShallow is not narrow, and I specifically meant narrow in this particular context. A narrow clone gives you the full history for part of the tree.