git push over http is very dangerous
- From
- Christian <crich-ml@beronet.com>
- Date
- Apr 16, 2007, 15:22 UTC
- Message-ID
- <462394AC.303@beronet.com>
Hi Git developers,
first of all thanks for the great toolkit :)
We are using git for the mISDN Open Source ISDN Stack (www.misdn.org / git.misdn.org). We are using webdav to push up data from users with write access. Readonly access is granted via the git daemon.
We have moved from CVS to git in the beginning of last week, all went well until this weekend. This weekend one developer wanted to push some of his local modifications, unfortunately during the push his http connection seemed to have broken or so. Unfortunately git does not prove if the push went well. Therefore our repository was broken this morning.
We found out that it was broken, because we could not do a pull or clone from the central repository anymore, but we got an error message.
Then i did a "git log" which worked well. then i wanted to "show" the last 2 commits, so i did: "git show":
error: corrupt loose object 'cd1aac1a43cfdac07118240f75c0ba7662eb8140' <crich1999> error: cd1aac1a43cfdac07118240f75c0ba7662eb8140: object corrupt or missing
i found that i could "git show" all commits, but only the last 2 produced the above error message.
gitster from IRC helped me out and showed me that i could do
git branch -f master master~2
to remove the 2 commits. i did that and all worked well again!
I wonder if it would be possible to delay a central push until all data was uploaded, then after the upload finished a checksum is transmitted, if the checksum is correct, the push can be done centrally..
cheers,
christian