{"thread":{"id":"21864","subject":"git-svn breakage on repository rename","startedAt":"2009-12-04T20:26:32Z","lastAt":"2009-12-07T16:21:02Z","messageCount":4,"participants":["Guido Stevens","Eric Wong","Jérôme Petazzoni"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"129241","messageId":"4B197078.6050203@cosent.net","threadId":"21864","inReplyTo":null,"subject":"git-svn breakage on repository rename","fromName":"Guido Stevens","fromEmail":"guido.stevens@cosent.net","sentAt":"2009-12-04T20:26:32Z","receivedAt":"2009-12-04T20:26:32Z","isPatch":false,"sender":{"key":"guido.stevens@cosent.net","avatar":null},"body":"Hi Eric e.a.,\n\nI have a weird git-svn corner case that might interest you (or not at \nall). I'd appreciate any help or hints for moving beyond this problem.\n\nI'm using git-svn to do a full commit history analysis of the Zope + \nPlone CMS code bases as part of a research project with the University \nof Nottingham into open source knowledge dynamics.\n\nOne of the repositories I'm importing breaks with a \"Checksum mismatch\", \nindicating a corruption. However, this error message occurs exactly at \nthe point where the repository was renamed: from \"Products.CMFPlone\" to \n\"Plone\" (22715->22716). (Yes, it's the Plone core itself that resists \nanalysis :-()\n\nThe git-svn url for the later commits would be:\n   http://svn-mirror.plone.org/svn/plone/Plone/trunk\n\nWhereas an older part of the code base lives at:\n   http://svn-mirror.plone.org/svn/plone/Products.CMFPlone/trunk\n\nFunny thing is, git-svn detects this rename upfront but then breaks\nanyway. Which raises the questions:\n\n- is this breakage caused by the rename?\n\n- or does git-svn handle the rename, and there is an actual corruption?\n\n- is there any way I can work around this and get a valid or semi-valid\ngit history for this project?\n\nI don't mind missing a few commits, since I'm not doing code development\non this repository, only statistical analysis.\n\nSolving this would also be helpful for anyone who wants to work on Plone \ndevelopment through git rather than through raw svn.\n\n:*CU#\n\n----------------------------------------------------\nTo reconstruct this error:\n----------------------------------------------------\n\n$ git svn init https://svn-mirror.plone.org/svn/plone/Plone/trunk Plone\n$ cd Plone\n$ git svn fetch\n\n... Error message: (reformatted to wrap 78 cols):\n\nFound possible branch point:\nhttps://svn.plone.org/svn/plone/Plone/branches/4.0 =>\nhttps://svn.plone.org/svn/plone/Plone/trunk, 30966\n\nInitializing parent: git-svn@30966\n\nFound possible branch point:\nhttps://svn.plone.org/svn/plone/Plone/branches/3.3 =>\nhttps://svn.plone.org/svn/plone/Plone/branches/4.0, 27288\n\nInitializing parent: git-svn@27288\n\nFound possible branch point:\nhttps://svn.plone.org/svn/plone/Plone/branches/3.2 =>\nhttps://svn.plone.org/svn/plone/Plone/branches/3.3, 25119\n\nInitializing parent: git-svn@25119\n\nFound possible branch point:\nhttps://svn.plone.org/svn/plone/Plone/branches/3.1 =>\nhttps://svn.plone.org/svn/plone/Plone/branches/3.2, 22725\n\nInitializing parent: git-svn@22725\n\nbranch_from: /Products.CMFPlone => /Products.CMFPlone/branches/3.1\n\nFound possible branch point:\nhttps://svn.plone.org/svn/plone/Products.CMFPlone/branches/3.1 =>\nhttps://svn.plone.org/svn/plone/Plone/branches/3.1, 22715\n\nInitializing parent: git-svn@22715\n\nFound branch parent: (git-svn@22725)\ne477345f83a0f2cc7e27348e01493a841c9cd587\n\nFollowing parent with do_switch\n\nChecksum mismatch: Products/CMFPlone/HISTORY.txt\nexpected: 69106809d879e7370dd133c7ba338670\n     got: 7b1a0641d429f0c567acf7a3a4be5a45\n\n\n-- \n***   Guido A.J. Stevens        ***   tel: +31.43.3618933    ***\n***   guido.stevens@cosent.net  ***   Postbus 619            ***\n***   http://www.cosent.nl      ***   6200 AP  Maastricht    ***\n\n             s h a r i n g    m a k e s    s e n s e\n"},{"id":"129295","messageId":"20091205222251.GA2120@dcvr.yhbt.net","threadId":"21864","inReplyTo":"4B197078.6050203@cosent.net","subject":"Re: git-svn breakage on repository rename","fromName":"Eric Wong","fromEmail":"normalperson@yhbt.net","sentAt":"2009-12-05T22:22:51Z","receivedAt":"2009-12-05T22:22:51Z","isPatch":false,"sender":{"key":"e@80x24.org","avatar":null},"body":"Guido Stevens <guido.stevens@cosent.net> wrote:\n> Hi Eric e.a.,\n>\n> I have a weird git-svn corner case that might interest you (or not at  \n> all). I'd appreciate any help or hints for moving beyond this problem.\n>\n> I'm using git-svn to do a full commit history analysis of the Zope +  \n> Plone CMS code bases as part of a research project with the University  \n> of Nottingham into open source knowledge dynamics.\n>\n> One of the repositories I'm importing breaks with a \"Checksum mismatch\",  \n> indicating a corruption. However, this error message occurs exactly at  \n> the point where the repository was renamed: from \"Products.CMFPlone\" to  \n> \"Plone\" (22715->22716). (Yes, it's the Plone core itself that resists  \n> analysis :-()\n>\n> The git-svn url for the later commits would be:\n>   http://svn-mirror.plone.org/svn/plone/Plone/trunk\n>\n> Whereas an older part of the code base lives at:\n>   http://svn-mirror.plone.org/svn/plone/Products.CMFPlone/trunk\n>\n> Funny thing is, git-svn detects this rename upfront but then breaks\n> anyway. Which raises the questions:\n>\n> - is this breakage caused by the rename?\n\nHi Guido,\n\nYes.  By default, git svn without --stdlayout does not attempt\nto determine a repository root so parent following can be done.\nOn the other hand, Plone does appear to use a standard SVN layout.\n\n> - or does git-svn handle the rename, and there is an actual corruption?\n\nIt should, let me know if the example I give below doesn't work\n\nIt looks like a big repo and they're worried about bandwidth:\n\"Do not make a checkout of the entire repository! This is likely to\n  get you blacklisted.\"\n(ref: http://dev.plone.org/plone/wiki/RepoInfo)\n\n> - is there any way I can work around this and get a valid or semi-valid\n> git history for this project?\n>\n> I don't mind missing a few commits, since I'm not doing code development\n> on this repository, only statistical analysis.\n\nI would mind very much if git svn missed commits :>\n\n> Solving this would also be helpful for anyone who wants to work on Plone  \n> development through git rather than through raw svn.\n>\n> :*CU#\n>\n> ----------------------------------------------------\n> To reconstruct this error:\n> ----------------------------------------------------\n>\n> $ git svn init https://svn-mirror.plone.org/svn/plone/Plone/trunk Plone\n> $ cd Plone\n> $ git svn fetch\n\nSince Plone appears to use a standard trunk/branches/tags layout\nrecommended by SVN developers, can you try this instead?:\n\n  git svn clone -s http://svn-mirror.plone.org/svn/plone/Plone\n\nIf you don't care about branches/tags at all, you can also try\n\n  git svn clone --no-follow-parent \\\n    https://svn-mirror.plone.org/svn/plone/Plone/trunk Plone\n\n\nAlso, in the future it'd be nice to know which version of git svn\nyou're using since bugs may be fixed in a newer version.  Thanks!\n\n-- \nEric Wong\n"},{"id":"129344","messageId":"4B1BDAC4.9070305@cosent.net","threadId":"21864","inReplyTo":"20091205222251.GA2120@dcvr.yhbt.net","subject":"Re: git-svn breakage on repository rename","fromName":"Guido Stevens","fromEmail":"guido.stevens@cosent.net","sentAt":"2009-12-06T16:24:36Z","receivedAt":"2009-12-06T16:24:36Z","isPatch":false,"sender":{"key":"guido.stevens@cosent.net","avatar":null},"body":"Eric, thanks!\n\nPlone admins: I can now confirm it was not a svn corruption. Adding the \n\"--no-follow-parent\" switch to git svn clone makes it possible to check \nout the Plone svn into git -- at least the commits since the rename.\n\nThat one might be relevant for anybody who wants to contribute to the \nPlone code base from a git-centered workflow.\n\nThanks everybody for helping to solve this problem! I can now integrate \nthe analysis of Products.CMFPlone into the overall Plone ecosystem \nanalysis, and it would have been very awkward not to be able to do that \nbecause of this renaming issue. Again: thanks.\n\n:*CU#\n\nEric Wong wrote:\n> Guido Stevens <guido.stevens@cosent.net> wrote:\n>> ----------------------------------------------------\n>> To reconstruct this error:\n>> ----------------------------------------------------\n>>\n>> $ git svn init https://svn-mirror.plone.org/svn/plone/Plone/trunk Plone\n>> $ cd Plone\n>> $ git svn fetch\n> \n> Since Plone appears to use a standard trunk/branches/tags layout\n> recommended by SVN developers, can you try this instead?:\n> \n>   git svn clone -s http://svn-mirror.plone.org/svn/plone/Plone\n\nThat one breaks completely, silently.\n\n> \n> If you don't care about branches/tags at all, you can also try\n> \n>   git svn clone --no-follow-parent \\\n>     https://svn-mirror.plone.org/svn/plone/Plone/trunk Plone\n\nYep, that one does the trick.\n\nIt does what it says though: it stops at the rename boundary \n22715->22716. Luckily I can do other checkouts on the other names that \nthis package has had and complete my analysis anyway.\n\n:*CU#\n-- \n***   Guido A.J. Stevens        ***   tel: +31.43.3618933    ***\n***   guido.stevens@cosent.nl   ***   Postbus 619            ***\n***   http://www.cosent.nl      ***   6200 AP  Maastricht    ***\n\n             s h a r i n g    m a k e s    s e n s e\n\n\t\n"},{"id":"129429","messageId":"4B1D2B6E.7050600@sipartech.com","threadId":"21864","inReplyTo":"4B1BDAC4.9070305@cosent.net","subject":"Re: [Admins] Re: git-svn breakage on repository rename","fromName":"Jérôme Petazzoni","fromEmail":"jerome.petazzoni@sipartech.com","sentAt":"2009-12-07T16:21:02Z","receivedAt":"2009-12-07T16:21:02Z","isPatch":false,"sender":{"key":"jerome.petazzoni@sipartech.com","avatar":null},"body":"Guido Stevens wrote:\n> Thanks everybody for helping to solve this problem! I can now integrate \n> the analysis of Products.CMFPlone into the overall Plone ecosystem \n> analysis, and it would have been very awkward not to be able to do that \n> because of this renaming issue. Again: thanks.\n>   \n\nYou're very welcome :-)\n"}]}