On 05/16/18 14:02, Ævar Arnfjörð Bjarmason wrote: > > On Wed, May 16 2018, Konstantin Ryabitsev wrote: > >> Maybe git-repack can be told to only borrow parent objects if they are >> in packs. Anything not in packs should be hardlinked into the child >> repo. That's my wishful think for the day. :) > > Can you elaborate on how this would help? > > We're just going to create loose objects on interactive "git commit", > presumably you're not adding someone's working copy as the alternate. The loose objects I'm thinking of are those that are generated when we do "git repack -Ad" -- this takes all unreachable objects and loosens them (see man git-repack for more info). Normally, these would be pruned after a certain period, but we're deliberately keeping them around forever just in case another repo relies on them via alternates. I want those repos to "claim" these loose objects via hardlinks, such that we can run git-prune on the mother repo instead of dragging all the unreachable objects on forever just in case. > Otherwise if it's just being pushed to all those pushes are going to be > in packs, and the packs may contain e.g. pushes for the "pu" branch or > whatever, which are objects that'll go away. There are lots of cases where unreachable objects in one repo would never become unreachable in another -- for example, if the author had stopped updating it. Hope this helps. Best, -- Konstantin Ryabitsev Director, IT Infrastructure Security The Linux Foundation