Johannes Sixt <j.sixt@xxxxxxxxxxxxx> writes: > Am 1/14/2013 12:40, schrieb George Karpenkov: >> I've managed to corrupt my very valuable repository with a recursive >> sed which went wrong. >> I wanted to convert all tabs to spaces with the following command: >> >> find ./ -name '*.*' -exec sed -i 's/\t/ /g' {} \; >> >> I think that has changed not only the files in the repo, but the data >> files in .git directory itself. As a result, my index became >> corrupted, and almost every single command dies: >> >>> git log >> error: non-monotonic index >> ..git/objects/pack/pack-314b1944adebea645526b6724b2044c1313241f5.idx >> error: non-monotonic index >> ..git/objects/pack/pack-75c95b0defe1968b61e4f4e1ab7040d35110bfdc.idx >> .... > ... > Try the reverse edit: > > find .git -name '*.*' -exec sed -i 's/ /\t/g' {} \; > > Remove .git/index; it can be reconstructed (of course, assuming you > started all this with a clean index; if not, you lose the staged changes). Everybody seems to be getting an impression that .idx is the only thing that got corrupt. Where does that come from? I do not see anything that prevents the original command line from touching *.pack files. Loose objects may have been left unmolested as their names do not match '*.*', though. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html