{"thread":{"id":"23269","subject":"Import ClearCaase with history?","startedAt":"2010-03-31T11:33:09Z","lastAt":"2010-03-31T16:09:08Z","messageCount":5,"participants":["David Hagood","Jon Seymour","Charles O'Farrell","Peter Baumann","Avery Pennarun"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"138274","messageId":"1270035189.2785.11.camel@chumley","threadId":"23269","inReplyTo":null,"subject":"Import ClearCaase with history?","fromName":"David Hagood","fromEmail":"david.hagood@gmail.com","sentAt":"2010-03-31T11:33:09Z","receivedAt":"2010-03-31T11:33:09Z","isPatch":false,"sender":{"key":"david.hagood@gmail.com","avatar":null},"body":"I am trying to drag where I work into a more modern software development\nprocess, but I am getting resistance from one division that has a large\namount of history for some projects in a Clearcase repository. If I\ncould show them that we could import all that history into git, it would\ngo a long way to removing that resistance.\n\nI've seen programs that purport to import Subversion (which is also\ngood, as they also are using Subversion for other projects....) but do\nany such programs exist for Clearcase?\n\nI know that, in theory, it would be possible to \n  for all checkins to Clearcase\n     check out of Clearcase\n     check into git\n  done\n\nbut that would take an incredibly long time in practice, wouldn't it?\n"},{"id":"138281","messageId":"p2k2cfc40321003310513tf6adbef1p69ac01c8b1472c59@mail.gmail.com","threadId":"23269","inReplyTo":"1270035189.2785.11.camel@chumley","subject":"Re: Import ClearCaase with history?","fromName":"Jon Seymour","fromEmail":"jon.seymour@gmail.com","sentAt":"2010-03-31T12:13:57Z","receivedAt":"2010-03-31T12:13:57Z","isPatch":false,"sender":{"key":"jon.seymour@gmail.com","avatar":"https://avatars.githubusercontent.com/u/207131?v=4"},"body":"On Wed, Mar 31, 2010 at 11:33 PM, David Hagood <david.hagood@gmail.com> wrote:\n> I am trying to drag where I work into a more modern software development\n> process, but I am getting resistance from one division that has a large\n> amount of history for some projects in a Clearcase repository. If I\n> could show them that we could import all that history into git, it would\n> go a long way to removing that resistance.\n>\n> I've seen programs that purport to import Subversion (which is also\n> good, as they also are using Subversion for other projects....) but do\n> any such programs exist for Clearcase?\n>\n> I know that, in theory, it would be possible to\n>  for all checkins to Clearcase\n>     check out of Clearcase\n>     check into git\n>  done\n>\n> but that would take an incredibly long time in practice, wouldn't it?\n\nI have no idea whether this is any good, but you might look at:\n\n   http://www.clearvision-cm.com/clearvision-products/clearcase-and-git-bridge-cc2git/ash_flypage.tpl.html\n\nI am sceptical that the performance could be anything other than\nglacial but I don't have any experience with it...\n\njon.\n\n\n>\n>\n> --\n> To unsubscribe from this list: send the line \"unsubscribe git\" in\n> the body of a message to majordomo@vger.kernel.org\n> More majordomo info at  http://vger.kernel.org/majordomo-info.html\n>\n"},{"id":"138282","messageId":"loom.20100331T135240-261@post.gmane.org","threadId":"23269","inReplyTo":"1270035189.2785.11.camel@chumley","subject":"Re: Import ClearCaase with history?","fromName":"Charles O'Farrell","fromEmail":"charleso@gmail.com","sentAt":"2010-03-31T12:16:09Z","receivedAt":"2010-03-31T12:16:09Z","isPatch":false,"sender":{"key":"charleso@gmail.com","avatar":null},"body":"Hi David,\n\n> I've seen programs that purport to import Subversion (which is also\n> good, as they also are using Subversion for other projects....) but do\n> any such programs exist for Clearcase?\n> \n> I know that, in theory, it would be possible to \n>   for all checkins to Clearcase\n>      check out of Clearcase\n>      check into git\n>   done\n> \n> but that would take an incredibly long time in practice, wouldn't it?\n\nWell it certainly isn't lightning quick, but it's not 'incredibly' slow either. \n\nhttp://github.com/charleso/git-cc\n\nIt uses 'cleartool lshistory' to retrieve the changes to a given view, and then \n'cleartool get' to download the contents, which can then be added directly to \nGit. In practice this is reasonably quick, although it depends on the size of \nyour history. I've seen it take a few hours to complete the first step with a \nmedium sized VOB, but once that's complete it's (relatively) quick to fetch the \nactual files. Git-cc is actually a bridge, and can be reused in this way to \nretrieve new content after an initial import (which is much, much quicker). \nChanges can also be pushed back to Clearcase.\n\nAs a word of warning, given the way in which Clearcase works you're not \ntechnically retrieving the full and complete history; as such a thing is almost \nimpossible to export from Clearcase. What you see is the history of all the \n_currently_ visible files in your _current_ view. So, for example, any files \nthat have been deleted or moved are completely ignored in the lshistory output. \nIf this is unacceptable the only other option would be to manually modify the \nconfig spec to include this missing elements and take 'snapshots' of the history \nover time.\n\nIt's by no means as good or as complete as git-svn; partly because Clearcase is \nso tricky and partly because I'm so lazy. I hope this helps in some way though.\n\nCheers,\n\nCharles\n\nPS. Take a look at the Git tools wiki page for some other alternatives.\n\nhttps://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools\n"},{"id":"138293","messageId":"20100331153905.GA14999@m62s10.vlinux.de","threadId":"23269","inReplyTo":"1270035189.2785.11.camel@chumley","subject":"Re: Import ClearCaase with history?","fromName":"Peter Baumann","fromEmail":"waste.manager@gmx.de","sentAt":"2010-03-31T15:39:05Z","receivedAt":"2010-03-31T15:39:05Z","isPatch":false,"sender":{"key":"waste.manager@gmx.de","avatar":null},"body":"On Wed, Mar 31, 2010 at 06:33:09AM -0500, David Hagood wrote:\n> I am trying to drag where I work into a more modern software development\n> process, but I am getting resistance from one division that has a large\n> amount of history for some projects in a Clearcase repository. If I\n> could show them that we could import all that history into git, it would\n> go a long way to removing that resistance.\n> \n> I've seen programs that purport to import Subversion (which is also\n> good, as they also are using Subversion for other projects....) but do\n> any such programs exist for Clearcase?\n> \n> I know that, in theory, it would be possible to \n>   for all checkins to Clearcase\n>      check out of Clearcase\n>      check into git\n>   done\n> \n> but that would take an incredibly long time in practice, wouldn't it?\n> \n\nI don't think you can build anything which will import from ClearCase \n*without* loosing *some* history. At least I have build a script which imported\nsomething from CC into git in my former job and allow me to sync bidirectional\nwith CC. \n\nThe problems where no bidirectional mapping exists are the following:\n\n  - CC is file based, where as GIT is tree (the whole repository) based\n\n  - This leads to problems where you merge a file on differen CC branches,\n    because in GIT a merge is only on the whole tree, so at least this\n    information is lost. (see cleartool lstree for a file with merges)\n\nPeter\n"},{"id":"138294","messageId":"o2w32541b131003310909p6558be4dxaaf0b277b149c82b@mail.gmail.com","threadId":"23269","inReplyTo":"20100331153905.GA14999@m62s10.vlinux.de","subject":"Re: Import ClearCaase with history?","fromName":"Avery Pennarun","fromEmail":"apenwarr@gmail.com","sentAt":"2010-03-31T16:09:08Z","receivedAt":"2010-03-31T16:09:08Z","isPatch":false,"sender":{"key":"apenwarr@gmail.com","avatar":"https://avatars.githubusercontent.com/u/20592?v=4"},"body":"On Wed, Mar 31, 2010 at 11:39 AM, Peter Baumann <waste.manager@gmx.de> wrote:\n> On Wed, Mar 31, 2010 at 06:33:09AM -0500, David Hagood wrote:\n> The problems where no bidirectional mapping exists are the following:\n>\n>  - CC is file based, where as GIT is tree (the whole repository) based\n>\n>  - This leads to problems where you merge a file on differen CC branches,\n>    because in GIT a merge is only on the whole tree, so at least this\n>    information is lost. (see cleartool lstree for a file with merges)\n\nOf course, you can do such file-by-file merges in CVS and SVN as well,\nand importing into git seems to work okay.  What doesn't get tracked\nis the actual merge history of the merged files.  This isn't such a\nproblem when importing CVS and SVN, which mostly don't track merge\nhistory anyway :)\n\nHave fun,\n\nAvery\n"}]}