{"thread":{"id":"44131","subject":"[PATCH 0/3] update git cvs import documentation","startedAt":"2016-09-22T07:24:04Z","lastAt":"2016-09-28T17:59:13Z","messageCount":9,"participants":["Jeff King","Eric S. Raymond","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":3},"messages":[{"id":"302361","messageId":"20160922072350.ivjrfuedodd2rezn@sigill.intra.peff.net","threadId":"44131","inReplyTo":null,"subject":"[PATCH 0/3] update git cvs import documentation","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2016-09-22T07:23:50Z","receivedAt":"2016-09-22T07:24:04Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"I dreamed a dream that I would never have to think about git-cvsimport\nagain. And yet. Somebody reported[1] that the link to cvsps in\ngitcvs-migration is broken. While fixing it, I noticed a few other\nout-of-date items. I haven't used any of these tools myself in years,\nbut hopefully these changes are minimal no-brainers.\n\n  [1/3]: docs/cvsimport: prefer cvs-fast-export to parsecvs\n  [2/3]: docs/cvs-migration: update link to cvsps homepage\n  [3/3]: docs/cvs-migration: mention cvsimport caveats\n\n-Peff\n\n[1] https://github.com/git/git-scm.com/issues/851\n"},{"id":"302362","messageId":"20160922072527.xy3q227ygs6orhfj@sigill.intra.peff.net","threadId":"44131","inReplyTo":"20160922072350.ivjrfuedodd2rezn@sigill.intra.peff.net","subject":"[PATCH 1/3] docs/cvsimport: prefer cvs-fast-export to parsecvs","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2016-09-22T07:25:28Z","receivedAt":"2016-09-22T07:25:36Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"parsecvs maintenance was taken over by ESR, and the name\nchanged to cvs-fast-export as it learned to support that\noutput format. Let's point to cvs-fast-export, as it should\nhave additional bug-fixes and be more convenient to use.\n\nSigned-off-by: Jeff King <peff@peff.net>\n---\nNo opinion on how this compares to cvs2git these days, so I made the\nminimal change here. Anyone may feel free to debate it, but kindly\nremove me from the Cc of any flamewars. :)\n\n Documentation/git-cvsimport.txt | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/Documentation/git-cvsimport.txt b/Documentation/git-cvsimport.txt\nindex 41207a2..de1ebed 100644\n--- a/Documentation/git-cvsimport.txt\n+++ b/Documentation/git-cvsimport.txt\n@@ -22,7 +22,7 @@ DESCRIPTION\n deprecated; it does not work with cvsps version 3 and later.  If you are\n performing a one-shot import of a CVS repository consider using\n http://cvs2svn.tigris.org/cvs2git.html[cvs2git] or\n-https://github.com/BartMassey/parsecvs[parsecvs].\n+http://www.catb.org/esr/cvs-fast-export/[cvs-fast-export].\n \n Imports a CVS repository into Git. It will either create a new\n repository, or incrementally import into an existing one.\n-- \n2.10.0.482.gae5a597\n\n"},{"id":"302363","messageId":"20160922072607.jptzsuew3l7q6wmu@sigill.intra.peff.net","threadId":"44131","inReplyTo":"20160922072350.ivjrfuedodd2rezn@sigill.intra.peff.net","subject":"[PATCH 2/3] docs/cvs-migration: update link to cvsps homepage","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2016-09-22T07:26:07Z","receivedAt":"2016-09-22T07:26:15Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"The old page gives a 404 now. Searching for \"cvsps\" via\nGoogle returns a GitHub project page as the top hit.\n\nReported-by: Dan Pritts\nSigned-off-by: Jeff King <peff@peff.net>\n---\n Documentation/gitcvs-migration.txt | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/Documentation/gitcvs-migration.txt b/Documentation/gitcvs-migration.txt\nindex b06e852..faee5c2 100644\n--- a/Documentation/gitcvs-migration.txt\n+++ b/Documentation/gitcvs-migration.txt\n@@ -117,7 +117,7 @@ Importing a CVS archive\n -----------------------\n \n First, install version 2.1 or higher of cvsps from\n-http://www.cobite.com/cvsps/[http://www.cobite.com/cvsps/] and make\n+https://github.com/andreyvit/cvsps[https://github.com/andreyvit/cvsps] and make\n sure it is in your path.  Then cd to a checked out CVS working directory\n of the project you are interested in and run linkgit:git-cvsimport[1]:\n \n-- \n2.10.0.482.gae5a597\n\n"},{"id":"302364","messageId":"20160922072628.rs47hfiowtobw46s@sigill.intra.peff.net","threadId":"44131","inReplyTo":"20160922072350.ivjrfuedodd2rezn@sigill.intra.peff.net","subject":"[PATCH 3/3] docs/cvs-migration: mention cvsimport caveats","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2016-09-22T07:26:28Z","receivedAt":"2016-09-22T07:27:06Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"Back when this guide was written, cvsimport was the only\ngame in town. These days it is probably not the best option.\nRather than go into details, let's point people to the note\nat the top of cvsimport which gives other options.\n\nSigned-off-by: Jeff King <peff@peff.net>\n---\n Documentation/gitcvs-migration.txt | 4 ++++\n 1 file changed, 4 insertions(+)\n\ndiff --git a/Documentation/gitcvs-migration.txt b/Documentation/gitcvs-migration.txt\nindex faee5c2..4c6143c 100644\n--- a/Documentation/gitcvs-migration.txt\n+++ b/Documentation/gitcvs-migration.txt\n@@ -116,6 +116,10 @@ they create are writable and searchable by other group members.\n Importing a CVS archive\n -----------------------\n \n+NOTE: These instructions use the `git-cvsimport` script which ships with\n+git, but other importers may provide better results. See the note in\n+linkgit:git-cvsimport[1] for other options.\n+\n First, install version 2.1 or higher of cvsps from\n https://github.com/andreyvit/cvsps[https://github.com/andreyvit/cvsps] and make\n sure it is in your path.  Then cd to a checked out CVS working directory\n-- \n2.10.0.482.gae5a597\n"},{"id":"302371","messageId":"20160922131526.GB6320@thyrsus.com","threadId":"44131","inReplyTo":"20160922072628.rs47hfiowtobw46s@sigill.intra.peff.net","subject":"Re: [PATCH 3/3] docs/cvs-migration: mention cvsimport caveats","fromName":"Eric S. Raymond","fromEmail":"esr@thyrsus.com","sentAt":"2016-09-22T13:15:26Z","receivedAt":"2016-09-22T13:22:26Z","isPatch":true,"sender":{"key":"esr@thyrsus.com","avatar":"https://avatars.githubusercontent.com/u/727961?v=4"},"body":"Jeff King <peff@peff.net>:\n> Back when this guide was written, cvsimport was the only\n> game in town. These days it is probably not the best option.\n\nIt is absolutely not.  As I have tried to point out here before, it\nis *severely* broken in its processing of branchy CVS repositories.\n\nNobody wanted to hear that, but it's still true. Recommending it\nis irresponsible.\n-- \n\t\t<a href=\"http://www.catb.org/~esr/\">Eric S. Raymond</a>\n"},{"id":"302424","messageId":"20160923035601.f5czdieouzvm3ptz@sigill.intra.peff.net","threadId":"44131","inReplyTo":"20160922131526.GB6320@thyrsus.com","subject":"Re: [PATCH 3/3] docs/cvs-migration: mention cvsimport caveats","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2016-09-23T03:56:01Z","receivedAt":"2016-09-23T03:56:08Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Thu, Sep 22, 2016 at 09:15:26AM -0400, Eric S. Raymond wrote:\n\n> Jeff King <peff@peff.net>:\n> > Back when this guide was written, cvsimport was the only\n> > game in town. These days it is probably not the best option.\n> \n> It is absolutely not.  As I have tried to point out here before, it\n> is *severely* broken in its processing of branchy CVS repositories.\n> \n> Nobody wanted to hear that, but it's still true. Recommending it\n> is irresponsible.\n\nI think your points came across, and that is why we have the big warning\nin git-cvsimport in the first place. This is really just adding a\npointer to that warning from another relevant location (that frankly, I\ndidn't even know existed until fixing a nearby problem).\n\nI _do_ think cvsimport, buggy as it may be, may still have some\npotential value over other solutions (if you have a simple history, and\nit is easier to install or run than the alternatives). But I converted\nall of my CVS history to git over ten years ago and have never looked\nback. I really don't know if that is the case or not.\n\nSo personally I have no objection if somebody wants to rewrite the\ngitcvs-migration page to discuss the other options more thoroughly, or\nwarn more clearly about cvsimport's flaws. These patches were just\n\"Jeez, we are not even warning people _at all_, so at the minimum we\nshould do so\". I am not qualified to write on the current state of\nthe art in CVS importing.\n\n-Peff\n"},{"id":"302785","messageId":"20160928001108.GA9120@thyrsus.com","threadId":"44131","inReplyTo":"20160923035601.f5czdieouzvm3ptz@sigill.intra.peff.net","subject":"Re: [PATCH 3/3] docs/cvs-migration: mention cvsimport caveats","fromName":"Eric S. Raymond","fromEmail":"esr@thyrsus.com","sentAt":"2016-09-28T00:11:08Z","receivedAt":"2016-09-28T00:11:16Z","isPatch":true,"sender":{"key":"esr@thyrsus.com","avatar":"https://avatars.githubusercontent.com/u/727961?v=4"},"body":"Jeff King <peff@peff.net>:\n>               I am not qualified to write on the current state of\n> the art in CVS importing.\n\nI *am* qualified; cvs-fast-export has had a lot of work put into it by\nmyself and others over the last five years.  Nobody else is really\nworking this problem anymore, not much else than cvs2git is even left\nstanding at this point. Most other attempts on the problem have\nstalled or flamed out, and were never very robust in dealing with\nrepository malformations to begin with.\n\ncvs2git can probably still almost match cvs-fast-export in ability to handle\npathological cases, but is painfully slow by comparison.  (Part of that is\nimplementation in Python vs. C.)\n\ncvs-fast-export has been successfully performance-tuned for very large\nrepositories, such as the entirety of NetBSD, and is orders of\nmagnitude faster than it used to be. (I parallelized the parsing\nof RCS masters with a re-entrant Bison instance running per thread;\nthis makes a huge difference on large repositories, for which that\nstage dominates running time.) Its ability to recover sense from\nrepository malformations was already pretty good five years ago\nand is probably unmatched now.  It does .cvsignore conversion.\n\ncvs-fast-export also now has a really good test suite collecting all\nkinds of weird CVS deformations from the field, and a wrapper that can\nboth do a conversion and check for correctness at every tag as well as\nthe tip revision.\n\nBy contrast, the wrapper/cvsps combination git ships continues to be\ndisgracefully bad and should be scrapped - remember that I maintained\ncvsps for a while and tried to EOL it because its branch-resolution\nalgorithms are unsound.  I have a replacement wrapper ready any time\nthe git maintainer decides to stop shipping broken, dangerous code.\n-- \n\t\t<a href=\"http://www.catb.org/~esr/\">Eric S. Raymond</a>\n"},{"id":"302795","messageId":"20160928064149.m3j5z5tr4zopet5h@sigill.intra.peff.net","threadId":"44131","inReplyTo":"20160928001108.GA9120@thyrsus.com","subject":"Re: [PATCH 3/3] docs/cvs-migration: mention cvsimport caveats","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2016-09-28T06:41:50Z","receivedAt":"2016-09-28T06:41:57Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Sep 27, 2016 at 08:11:08PM -0400, Eric S. Raymond wrote:\n\n> Jeff King <peff@peff.net>:\n> >               I am not qualified to write on the current state of\n> > the art in CVS importing.\n> \n> I *am* qualified; cvs-fast-export has had a lot of work put into it by\n> myself and others over the last five years.\n\nI, for one, would be fine if you wanted to send a patch updating\nDocumentation/gitcvs-migration.txt to describe cvs-fast-export rather\nthan cvsimport. I think it would probably even be fine if it mostly just\npointed to an existing guide and said \"use this\".\n\n-Peff\n"},{"id":"302820","messageId":"xmqqlgybkis6.fsf@gitster.mtv.corp.google.com","threadId":"44131","inReplyTo":"20160928001108.GA9120@thyrsus.com","subject":"Re: [PATCH 3/3] docs/cvs-migration: mention cvsimport caveats","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2016-09-28T17:59:05Z","receivedAt":"2016-09-28T17:59:13Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Eric S. Raymond\" <esr@thyrsus.com> writes:\n\n> Jeff King <peff@peff.net>:\n>>               I am not qualified to write on the current state of\n>> the art in CVS importing.\n>\n> I *am* qualified; cvs-fast-export has had a lot of work put into it by\n> myself and others over the last five years.  Nobody else is really\n> working this problem anymore, not much else than cvs2git is even left\n> standing at this point.\n\nIt sounds like you, as a better qualified person, would be in the\nbest position to send an update to the documentation to tell people\nnot to use older and unmaintained ones and guides them instead to a\nnewer and better tool.\n\n    ... ah, I notice that peff said the same already.\n\nI'd be fine with reviewing and applying such a patch.\n\nThanks.\n"}]}