Re: git-cvsexportcommit fails for huge commits
- From
Martin Langhoff <martin.langhoff@gmail.com>
- Date
- Dec 12, 2007, 19:58 UTC
- Message-ID
- <46a038f90712121158n674a9044t75ef99473314457c@mail.gmail.com>
- In-Reply-To
- <20071212083154.GB7676@coredump.intra.peff.net>
On Dec 12, 2007 9:31 PM, Jeff King <peff@peff.net> wrote:
> We will make our commits > in two CVS invocations, but since CVS isn't atomic _anyway_, we > shouldn't mind losing the atomicity.
Quick note -- I used to understand that cvs was not atomic, but reading the on-the-wire protocol has taught me otherwise. Modern versions of cvs are actually quite atomic-ish -- the protocol expects the client to give all the relevant data to the server, and then say "yep, that was all", and only _then_ the server does its commit.
So if the client dies or cancels along the way, nothing ever happens on the server side.
Still, I suspect that the _server_ is not atomic, so if the server process dies or finds a problem along the way, you could end up with a half-commit in the repository, and maybe some hosed ,v files.
IOWs, the protocol *is* atomic, and this patch does make things slightly more brittle. Perhaps require an option to be set before we do this?
m