git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Jeff KingNext: Jeff King
Message 12 of 15 in “git-cvsexportcommit fails for huge commits”
  1. Markus KlinikDec 11, 2007
  2. Jeff KingDec 12, 2007
  3. Junio C HamanoDec 12, 2007
  4. Jeff KingDec 12, 2007
  5. Junio C HamanoDec 14, 2007
  6. Jeff KingDec 14, 2007
  7. Jeff KingDec 14, 2007
  8. Robin RosenbergDec 14, 2007
  9. Jeff KingDec 15, 2007
  10. Linus TorvaldsDec 12, 2007
  11. Jeff KingDec 12, 2007
  12. Martin LanghoffDec 12, 2007
  13. Jeff KingDec 13, 2007
  14. Markus KlinikDec 13, 2007
  15. Jeff KingDec 13, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.