On Tue, 2008-12-09 at 16:19 -0800, Junio C Hamano wrote:
I do not know about "feasible" and "properly", but ...
(0) take backup of the repository of this unfortunate developer.
(1) make a fresh clone of the central repository that this unfortunate
developer's work started out from.
(2) copy the contents of the .git/objects/pack/ of that clone to the
developer's .git/objects/pack/.
This approach "sort of" worked, i.e. it worked insofar that I was able
to use the repository enough to generate a series of patch files for the
developer's work from the last two weeks to be applied to their new
clone of the central repository. Why I did this is answered below ;)
See if "fsck --full" complains after that. If the repository was not
repacked during that period, all objects created by the activity by the
unfortunate developer would be loose, so ...
tyler@ccnet:~/source/slide/brian_main> time git fsck --full
Segmentation fault
real 27m2.187s
user 10m3.238s
sys 0m16.609s
tyler@ccnet:~/source/slide/brian_main>
Oh well, your approach worked *enough* to get the important data out,
and that's what's most important.
Moving forward we're likely going to implement an automated process of
walking through developers' repositories and pushing any unpushed refs
to a backup repository just to make sure something like this doesn't
happen again.
Appreciate the help :)
Cheers
--
-R. Tyler Ballance
Slide, Inc.