git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* git-svn breakage on repository rename
@ 2009-12-04 20:26 Guido Stevens
  2009-12-05 22:22 ` Eric Wong
  0 siblings, 1 reply; 4+ messages in thread
From: Guido Stevens @ 2009-12-04 20:26 UTC (permalink / raw)
  To: normalperson, git; +Cc: George Kuk

Hi Eric e.a.,

I have a weird git-svn corner case that might interest you (or not at 
all). I'd appreciate any help or hints for moving beyond this problem.

I'm using git-svn to do a full commit history analysis of the Zope + 
Plone CMS code bases as part of a research project with the University 
of Nottingham into open source knowledge dynamics.

One of the repositories I'm importing breaks with a "Checksum mismatch", 
indicating a corruption. However, this error message occurs exactly at 
the point where the repository was renamed: from "Products.CMFPlone" to 
"Plone" (22715->22716). (Yes, it's the Plone core itself that resists 
analysis :-()

The git-svn url for the later commits would be:
   http://svn-mirror.plone.org/svn/plone/Plone/trunk

Whereas an older part of the code base lives at:
   http://svn-mirror.plone.org/svn/plone/Products.CMFPlone/trunk

Funny thing is, git-svn detects this rename upfront but then breaks
anyway. Which raises the questions:

- is this breakage caused by the rename?

- or does git-svn handle the rename, and there is an actual corruption?

- is there any way I can work around this and get a valid or semi-valid
git history for this project?

I don't mind missing a few commits, since I'm not doing code development
on this repository, only statistical analysis.

Solving this would also be helpful for anyone who wants to work on Plone 
development through git rather than through raw svn.

:*CU#

----------------------------------------------------
To reconstruct this error:
----------------------------------------------------

$ git svn init https://svn-mirror.plone.org/svn/plone/Plone/trunk Plone
$ cd Plone
$ git svn fetch

... Error message: (reformatted to wrap 78 cols):

Found possible branch point:
https://svn.plone.org/svn/plone/Plone/branches/4.0 =>
https://svn.plone.org/svn/plone/Plone/trunk, 30966

Initializing parent: git-svn@30966

Found possible branch point:
https://svn.plone.org/svn/plone/Plone/branches/3.3 =>
https://svn.plone.org/svn/plone/Plone/branches/4.0, 27288

Initializing parent: git-svn@27288

Found possible branch point:
https://svn.plone.org/svn/plone/Plone/branches/3.2 =>
https://svn.plone.org/svn/plone/Plone/branches/3.3, 25119

Initializing parent: git-svn@25119

Found possible branch point:
https://svn.plone.org/svn/plone/Plone/branches/3.1 =>
https://svn.plone.org/svn/plone/Plone/branches/3.2, 22725

Initializing parent: git-svn@22725

branch_from: /Products.CMFPlone => /Products.CMFPlone/branches/3.1

Found possible branch point:
https://svn.plone.org/svn/plone/Products.CMFPlone/branches/3.1 =>
https://svn.plone.org/svn/plone/Plone/branches/3.1, 22715

Initializing parent: git-svn@22715

Found branch parent: (git-svn@22725)
e477345f83a0f2cc7e27348e01493a841c9cd587

Following parent with do_switch

Checksum mismatch: Products/CMFPlone/HISTORY.txt
expected: 69106809d879e7370dd133c7ba338670
     got: 7b1a0641d429f0c567acf7a3a4be5a45


-- 
***   Guido A.J. Stevens        ***   tel: +31.43.3618933    ***
***   guido.stevens@cosent.net  ***   Postbus 619            ***
***   http://www.cosent.nl      ***   6200 AP  Maastricht    ***

             s h a r i n g    m a k e s    s e n s e

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: git-svn breakage on repository rename
  2009-12-04 20:26 git-svn breakage on repository rename Guido Stevens
@ 2009-12-05 22:22 ` Eric Wong
  2009-12-06 16:24   ` Guido Stevens
  0 siblings, 1 reply; 4+ messages in thread
From: Eric Wong @ 2009-12-05 22:22 UTC (permalink / raw)
  To: Guido Stevens; +Cc: git, George Kuk

Guido Stevens <guido.stevens@cosent.net> wrote:
> Hi Eric e.a.,
>
> I have a weird git-svn corner case that might interest you (or not at  
> all). I'd appreciate any help or hints for moving beyond this problem.
>
> I'm using git-svn to do a full commit history analysis of the Zope +  
> Plone CMS code bases as part of a research project with the University  
> of Nottingham into open source knowledge dynamics.
>
> One of the repositories I'm importing breaks with a "Checksum mismatch",  
> indicating a corruption. However, this error message occurs exactly at  
> the point where the repository was renamed: from "Products.CMFPlone" to  
> "Plone" (22715->22716). (Yes, it's the Plone core itself that resists  
> analysis :-()
>
> The git-svn url for the later commits would be:
>   http://svn-mirror.plone.org/svn/plone/Plone/trunk
>
> Whereas an older part of the code base lives at:
>   http://svn-mirror.plone.org/svn/plone/Products.CMFPlone/trunk
>
> Funny thing is, git-svn detects this rename upfront but then breaks
> anyway. Which raises the questions:
>
> - is this breakage caused by the rename?

Hi Guido,

Yes.  By default, git svn without --stdlayout does not attempt
to determine a repository root so parent following can be done.
On the other hand, Plone does appear to use a standard SVN layout.

> - or does git-svn handle the rename, and there is an actual corruption?

It should, let me know if the example I give below doesn't work

It looks like a big repo and they're worried about bandwidth:
"Do not make a checkout of the entire repository! This is likely to
  get you blacklisted."
(ref: http://dev.plone.org/plone/wiki/RepoInfo)

> - is there any way I can work around this and get a valid or semi-valid
> git history for this project?
>
> I don't mind missing a few commits, since I'm not doing code development
> on this repository, only statistical analysis.

I would mind very much if git svn missed commits :>

> Solving this would also be helpful for anyone who wants to work on Plone  
> development through git rather than through raw svn.
>
> :*CU#
>
> ----------------------------------------------------
> To reconstruct this error:
> ----------------------------------------------------
>
> $ git svn init https://svn-mirror.plone.org/svn/plone/Plone/trunk Plone
> $ cd Plone
> $ git svn fetch

Since Plone appears to use a standard trunk/branches/tags layout
recommended by SVN developers, can you try this instead?:

  git svn clone -s http://svn-mirror.plone.org/svn/plone/Plone

If you don't care about branches/tags at all, you can also try

  git svn clone --no-follow-parent \
    https://svn-mirror.plone.org/svn/plone/Plone/trunk Plone


Also, in the future it'd be nice to know which version of git svn
you're using since bugs may be fixed in a newer version.  Thanks!

-- 
Eric Wong

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: git-svn breakage on repository rename
  2009-12-05 22:22 ` Eric Wong
@ 2009-12-06 16:24   ` Guido Stevens
  2009-12-07 16:21     ` [Admins] " Jérôme Petazzoni
  0 siblings, 1 reply; 4+ messages in thread
From: Guido Stevens @ 2009-12-06 16:24 UTC (permalink / raw)
  To: Eric Wong; +Cc: git, George Kuk, clark.alex, wichert, admins

Eric, thanks!

Plone admins: I can now confirm it was not a svn corruption. Adding the 
"--no-follow-parent" switch to git svn clone makes it possible to check 
out the Plone svn into git -- at least the commits since the rename.

That one might be relevant for anybody who wants to contribute to the 
Plone code base from a git-centered workflow.

Thanks everybody for helping to solve this problem! I can now integrate 
the analysis of Products.CMFPlone into the overall Plone ecosystem 
analysis, and it would have been very awkward not to be able to do that 
because of this renaming issue. Again: thanks.

:*CU#

Eric Wong wrote:
> Guido Stevens <guido.stevens@cosent.net> wrote:
>> ----------------------------------------------------
>> To reconstruct this error:
>> ----------------------------------------------------
>>
>> $ git svn init https://svn-mirror.plone.org/svn/plone/Plone/trunk Plone
>> $ cd Plone
>> $ git svn fetch
> 
> Since Plone appears to use a standard trunk/branches/tags layout
> recommended by SVN developers, can you try this instead?:
> 
>   git svn clone -s http://svn-mirror.plone.org/svn/plone/Plone

That one breaks completely, silently.

> 
> If you don't care about branches/tags at all, you can also try
> 
>   git svn clone --no-follow-parent \
>     https://svn-mirror.plone.org/svn/plone/Plone/trunk Plone

Yep, that one does the trick.

It does what it says though: it stops at the rename boundary 
22715->22716. Luckily I can do other checkouts on the other names that 
this package has had and complete my analysis anyway.

:*CU#
-- 
***   Guido A.J. Stevens        ***   tel: +31.43.3618933    ***
***   guido.stevens@cosent.nl   ***   Postbus 619            ***
***   http://www.cosent.nl      ***   6200 AP  Maastricht    ***

             s h a r i n g    m a k e s    s e n s e

	

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Admins] Re: git-svn breakage on repository rename
  2009-12-06 16:24   ` Guido Stevens
@ 2009-12-07 16:21     ` Jérôme Petazzoni
  0 siblings, 0 replies; 4+ messages in thread
From: Jérôme Petazzoni @ 2009-12-07 16:21 UTC (permalink / raw)
  To: Guido Stevens; +Cc: Eric Wong, wichert, George Kuk, admins, clark.alex, git

Guido Stevens wrote:
> Thanks everybody for helping to solve this problem! I can now integrate 
> the analysis of Products.CMFPlone into the overall Plone ecosystem 
> analysis, and it would have been very awkward not to be able to do that 
> because of this renaming issue. Again: thanks.
>   

You're very welcome :-)

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-12-07 16:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-04 20:26 git-svn breakage on repository rename Guido Stevens
2009-12-05 22:22 ` Eric Wong
2009-12-06 16:24   ` Guido Stevens
2009-12-07 16:21     ` [Admins] " Jérôme Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).