Dealing with many many git repos in a /home directory
From: demerphq <hidden>
Date: 2016-06-15 22:48:10
At $work we have a host where we have about 50-100 users each with
their own private copies of the same repos. These are cloned froma
remote via git/ssh and are not thus automatically hardlinking their
object stores.
This is starting to take a lot of space.
I was thinking it should be possible to hardlink all of the objects in
the different repos to a canonical single copy.
Would i be correct in thinking that if i have to repos with an
equivalent .git/objects/../..... file in them that the files are
necessarily identical and one can be replaced by a hardlink to the
other?
If this is correct then is there some tool known to the list that
already does this? I whipped this together:
find /home -regex .\*/.git/objects/.\* | perl -lne'if
(m!(\.git/objects/../.+)!) { if (my $t= $seen{$1}) { link $t,$_ } else
{ $seen{$1}=$_ } }'
But a proper script with a sign off of some git dev would make me feel
a lot safer :-)
cheers,
Yves
--
perl -Mre=debug -e "/just|another|perl|hacker/"