@@ -19,13 +19,84 @@ at the Git Merge conference on April 5 2016.
1919
2020## Discussions
2121
22- <!-- -
2322### General
24- -->
2523
26- <!-- -
27- ### Reviews
28- -->
24+ * Discussions at the Git Contributor Summit, part 1
25+
26+ The Git Contributor Summit happened on April 4th at the panoramic
27+ rooftop bar of
28+ [ the citizenM hotel in New York City, USA] ( https://www.citizenm.com/destinations/new-york/new-york-times-square ) .
29+ The whole bar had been reserved by GitHub for the Summit from 10am to
30+ 4pm.
31+
32+ Around 20 developers attended. Drinks were provided, and food was
33+ served during the lunch break. Afterwards GitHub also invited
34+ attendants to a diner at a nearby Italian restaurant.
35+
36+ As usual it was an unconference. Attendants interested to discuss a
37+ topic wrote it on a board or voted on the board for it.
38+
39+ The topics that attracted most votes were about performance on big
40+ repositories.
41+
42+ First it was said that it is unfortunate that the performance of many
43+ git commands, like for example ` git log ` , depends linearly on the
44+ number of refs in the repository.
45+
46+ One possible solution to this problem would be to use some kind of
47+ binary search algorithm to looks up refs, but it's not so easy because
48+ replace refs in 'refs/replace/' should anyway all be read and also
49+ because with the current backend some stat(2) calls are needed to
50+ check if there are loose refs.
51+
52+ This problem should at least partially be solved with the current work
53+ going on to implement other ref backends, especially a
54+ [ lmdb] ( http://symas.com/mdb/ ) based one.
55+
56+ From there the discussion switched to the case sensitiveness of ref
57+ names and the different problems created by having ref names that
58+ should also be proper filenames: slow filesystems like NTFS, unicode
59+ normalizing filesystems like HFS+, file/directory collisions, reflog
60+ deletion...
61+
62+ It was then mentioned that the tree object lookup could be speed up,
63+ but it would require a more efficient packfile format.
64+
65+ The current effort to implement an ` index-helper ` daemon to speed up
66+ index reading was also described.
67+
68+ Then some time was spent discussing large objects. There are objects
69+ that can be stored locally, other that cannot. This means that for
70+ example doing something like rsync that manages chunk of files might
71+ not always be possible.
72+
73+ About Git LFS that is now offered by at least GitHub and Microsoft,
74+ there are still a number of problems with it from a user
75+ perspective. First it is not shipped with Git. Another one is that it
76+ is not easy to know which files should go into it.
77+
78+ Also it looks like the filters that are used by git LFS to trigger big
79+ file downloads are executed sequencially which is not good for
80+ performance.
81+
82+ This made people mention potential problems with parallelizing
83+ ` git checkout ` .
84+
85+ One possibility to improve on Git LFS would be to create another kind
86+ of backend for git objects that would be optimized for large files and
87+ would sit along loose objects and packfiles.
88+
89+ Then the subject switched to possible ways to speed up git status. The
90+ ` index-helper ` daemon effort was described again, as it can use
91+ [ the watchman library] ( https://facebook.github.io/watchman/ ) to
92+ efficiently monitor the working tree for changes. The watchman service
93+ must be run manually for now though. And running daemons on Windows
94+ might require some admin rights.
95+
96+ The recently merged effort on improving the untracked cache in the
97+ index was also mentionned.
98+
99+ <!-- - ### Reviews -->
29100
30101<!-- -
31102### Support
0 commit comments