{"thread":{"id":"21036","subject":"git-cvsimport: missing branches","startedAt":"2009-09-23T17:35:24Z","lastAt":"2009-09-23T19:51:38Z","messageCount":2,"participants":["Reto Glauser","Heiko Voigt"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"123678","messageId":"4ABA5C5C.2060207@blinkeye.ch","threadId":"21036","inReplyTo":null,"subject":"git-cvsimport: missing branches","fromName":"Reto Glauser","fromEmail":"linux@blinkeye.ch","sentAt":"2009-09-23T17:35:24Z","receivedAt":"2009-09-23T17:35:24Z","isPatch":false,"sender":{"key":"linux@blinkeye.ch","avatar":null},"body":"Hello\n\nI need to use CVS with a history of about 20 years (someway back it was \nconverted from SCCS to CVS). I have to stay in sync with the CVS \nrepository to import changes from co-workers and to eventually commit \nchanges back. I do have access to the RCS ',v' files.\n\nSo, git-cvsimport is exactly what I was looking for. Except, if I do a \ngit-cvsimport I have a couple of branches missing, and I don't know why.\n\nI see the branch names from cvsps in the output, but somehow \ngit-cvsimport skips them anyway. I tried to add a branch manually which \ngot mit a couple of years of history back, but then it stops anyway.\n\nI used cvs2git from http://cvs2svn.tigris.org which shows me these \nmissing branches.\n\nSo, my questions are:\n\n- Is the problem in cvsps or git-cvsimport or in the CVS history?\n- Can I use the cvs2git import as a starting point and later use \ngit-cvsimport for incrementally update the git repository?\n- Can I somehow compare the result of git-cvsimport and cvs2git to see \ndifferences?\n- Is there any other feasible workflow to stay in sync with a CVS \nrepository with a large history while still using git behind the scene?\n\nAny pointers appreciated.\n\nRegards,\nReto\n"},{"id":"123684","messageId":"20090923195130.GA30264@book.hvoigt.net","threadId":"21036","inReplyTo":"4ABA5C5C.2060207@blinkeye.ch","subject":"Re: git-cvsimport: missing branches","fromName":"Heiko Voigt","fromEmail":"hvoigt@hvoigt.net","sentAt":"2009-09-23T19:51:38Z","receivedAt":"2009-09-23T19:51:38Z","isPatch":false,"sender":{"key":"hvoigt@hvoigt.net","avatar":"https://avatars.githubusercontent.com/u/184958?v=4"},"body":"On Wed, Sep 23, 2009 at 07:35:24PM +0200, Reto Glauser wrote:\n> - Is the problem in cvsps or git-cvsimport or in the CVS history?\n\nIt is very likely a problem of cvsps. I have collected a couple of tests\nillustrating the current limitations:\n\nhttp://repo.or.cz/w/cvsps-hv.git\n\nInterested in fixing some of them ?\n\n> - Can I use the cvs2git import as a starting point and later use  \n> git-cvsimport for incrementally update the git repository?\n\nUnfortunately there is no robust incremental tool for cvs at the moment.\nAs soon as you get your colleagues to use git the pain just dissapears ;)\n\n> - Can I somehow compare the result of git-cvsimport and cvs2git to see  \n> differences?\n\nHow about a plain diff between the directory structures.\n\n> - Is there any other feasible workflow to stay in sync with a CVS  \n> repository with a large history while still using git behind the scene?\n\nDuring the transition phase I used to track the old system with a\nseperate branch. Everytime you get an update from CVS you simply\ncommit it to that branch. Its important that you do not mix this branch\nwith your development. You do not do any work on it just commit the\nclean revision like you get them from the server.\n\nI then used feature branches for the work which I rebased regularly.\nOnce you want to merge a branch comes the hard part:\n\nA:\n* Update the tracking branch from CVS\n\n* Merge the first/next commit from the branch in git\n\n* Commit to cvs and copy the commit message\n\n* Goto A:\n\nMaybe for cvs you can script this. You can also merge the whole branch at\nonce if you are lazy but then the diffs will not be nice when you later\ncompletely migrate to git.\n\ncheers Heiko\n"}]}