{"thread":{"id":"35894","subject":"Serious flaws in \"git cvsimport\"","startedAt":"2014-02-17T00:10:38Z","lastAt":"2014-02-17T00:10:38Z","messageCount":1,"participants":["Mojca Miklavec"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"234910","messageId":"CALBOmsZR2qjCAvUeUqJL4U3BHwanugTGdMrdNQs-wnPXzgDjug@mail.gmail.com","threadId":"35894","inReplyTo":null,"subject":"Serious flaws in \"git cvsimport\"","fromName":"Mojca Miklavec","fromEmail":"mojca.miklavec.lists@gmail.com","sentAt":"2014-02-17T00:10:38Z","receivedAt":"2014-02-17T00:10:38Z","isPatch":false,"sender":{"key":"mojca.miklavec.lists@gmail.com","avatar":null},"body":"Hello,\n\nI really hate working with CVS, so I have set up a cronjob running\n\"git cvsimport\" on regular basis to create a mirror of gnuplot\nsources. I would use another tool, but until a few days ago I wasn't\naware of anything else that supported incremental updates, so that I\ncould run the conversion every few hours without the need to trash the\nold conversions and make all my local/testing branches incompatible\nwith future development.\n\nI had a lot of problems with the tool, but I was tolerating it (in the\nspirit of numerous warnings that the tool isn't working properly):\n- Files that have been deleted from CVS long ago don't get removed\nfrom git (that's very very very annoying)\n- I have numerous problems with file permissions (executable vs. non-executable)\n- The first time when I do the import, all seems fine. But soon after\nthat I start getting numerous warnings during conversion in the spirit\nof\n    revision 1.X of file Y is tagged but not present\nBut maybe that's a bug in CVS.\n\nBut recently I discovered that a commit in the main branch of CVS\n(trunk/master/whatever-they-call-it-in-cvs) which was important to me\nwas simply ignored by \"git cvsimport\". The commit modified three\nfiles. Immediately after the commit, cvsimport claimed the repository\nwas already up-to-date. After other changes have been done in CVS,\nbits and pieces from that important commit started appearing randomly,\ntogether with other commits to CVS – for example when the same file\nwas modified in another commit, changes from that \"important\" commit\nto the same file were included as well in that later commit (but they\ndidn't belong to each other).\n\nMy understanding was that warnings about bad behaviour of \"git\ncvsimport\" were related mostly to inability to reproduce complicated\nbranching and merging with zillions of branches. That would be\nacceptable to me because I wasn't interested in those zillions of\nbranches and tags anyway.\n\nBut it turned out that whatever is currently in the master branch of\nthe repository created by \"git cvsimport\" isn't even corresponding to\nwhat's currently in CVS and some commits are simply missing from\nhistory along with their commit messages. The git repository contains\ntoo many files (those that have been deleted in CVS) and random other\ndifferences in random files, so that I'm not even able to compile the\nproject any longer as a consequence.\n\nI'm willing to provide the exact details about the failures, but from\nwhat I understand the previous maintainer of the underlying tool\n(cvsps) deprecated it due to too numerous problems and flawed design,\nso I'm not sure if anyone would be willing to fix the bugs I'm running\ninto.\n\nI'm currently testing cvs-fast-export of which I only heard a few days\nago in the desperate search for a replacement for \"git cvsimport\".\n\nIt would be nice to see if manuals of cvsimport would at least mention\nthe existence of that tool in the same way as it mentions cvs2git (it\ntook me a while to learn about cvs-fast-export) or even better, to\nconsider it as an alternative for cvsps via a special argument to\ncvsimport if that's possible.\n\nThank you very much,\n    Mojca\n\n(Please CC me in replies.)\n"}]}