Live data from Hacker News

Some Git internals

yurichev.com

31–36 of 36 posts

Re: Some Git internals

#31
post #28

A FUSE filesystem that fetches objects on demand seems like it would be great when working in a large repo such as the Linux Kernel or Chromium, especially when only a small subset of files are needed. It would also be useful to monitor the fs for file changes since `git status` scans the entire tree. Does anything like this exist?

GVFS?

Re: Some Git internals

#33

Earlier quoted context omitted.

This is sort of a worst-case scenario for git: there are patch-based DVCSes that would handle this scenario better (darcs and pijul), but those have their own set of trade offs (I think they end up being slower for large histories).

Applying a patch in Darcs usued to be in O(2^n), and now apparently O(n^2), where n is the size of history. Applying a patch in Pijul is in O(p c log n), where p is the size of the patch and c the size of the largest "deletion-insertion conflict" p is involved in, where a "deletion-insertion conflict" is a situation where Alice deletes a block of text while Bob adds stuff in that same block. Note that this is a rough…

Interesting, I’ve been following these systems for a while, but I didn’t realize that pijul had solved the performance issues.

Is pijul’s on-disk format stable yet?

Re: Some Git internals

#34

Earlier quoted context omitted.

Applying a patch in Darcs usued to be in O(2^n), and now apparently O(n^2), where n is the size of history. Applying a patch in Pijul is in O(p c log n), where p is the size of the patch and c the size of the largest "deletion-insertion conflict" p is involved in, where a "deletion-insertion conflict" is a situation where Alice deletes a block of text while Bob adds stuff in that same block. Note that this is a rough…

Interesting, I’ve been following these systems for a while, but I didn’t realize that pijul had solved the performance issues. Is pijul’s on-disk format stable yet?

> Is pijul’s on-disk format stable yet?

Probably. The patch format is very unlikely to change. The repository format may change a little bit still.

I'd say it's probably ok to try and learn it now, but you should maybe wait for a few weeks before using it for something serious. On the other hand, we use it for itself, and I use it personally for most of my projects.

Re: Some Git internals

#36
post #28

A FUSE filesystem that fetches objects on demand seems like it would be great when working in a large repo such as the Linux Kernel or Chromium, especially when only a small subset of files are needed. It would also be useful to monitor the fs for file changes since `git status` scans the entire tree. Does anything like this exist?

Fetching files one by one on demand could be slow.

OTOH git natively supports sparse commits.

Post reply on HN