code imports for complicated cvs modules miss details

Bug #280617 reported by Treeform
4
Affects Status Importance Assigned to Milestone
Launchpad code imports
Triaged
Low
Unassigned

Bug Description

The modules file of CVS allows a more complicated set up than many people realize. For example:

mwh@grond:trunk$ cvs -d :pserver:<email address hidden>:/cvsroot/panda3d co -c
panda3d doc &ppremake &dtool &panda &direct &pandaapp &pandatool &dmodels
             &models

This defines a module called 'panda3d' that is actually made up of a number of other modules -- it says "check out the doc module, and splice all these other ones into it".

The problem comes from the interaction of two facts.

1) After you've run "cvs co panda3d" you can't actually tell from the checkout that this is what you've done:

$ cat panda3d/CVS/Repository
doc

If the modules file of the repo was empty and you'd just happened to check out the various modules in this arrangement, I don't think you'd be able to tell the difference, and certainly there's no way of getting back from the checkout to the name of 'panda3d' 'module'. Which is unfortunate, because:

2) the interface to cscvs we use is effectively "check out a foreign tree and point cscvs at it" -- there's nowhere to pass on the information that we got the checkout using the 'panda3d' module. I don't actually know if there's a more flexible interface to cscvs we could be using instead -- it would be worth finding out!

So cscvs merrily and successfully imports the 'doc' module, and then fails the validation step at the end because masses of files are missing from the imported branch.

Revision history for this message
Michael Hudson-Doyle (mwhudson) wrote :

Ah, I think this is due to the way the CVS is set up:

$ cvs -d :pserver:<email address hidden>:/cvsroot/panda3d co -c
cvs checkout: CVS password file /home/mwh/.cvspass does not exist - creating a new file
panda3d doc &ppremake &dtool &panda &direct &pandaapp &pandatool &dmodels
             &models

This means that the panda3d 'module' is made up of lots of other modules -- which cscvs actually supports, but for one reason or another it doesn't find out about. You could, if it makes sense, request imports for each module separately. Or we could try to patch up our import process so that cscvs finds out we're really importing the 'panda3d' module.

Revision history for this message
Treeform (starplant) wrote :

I am not sure how panda3d cvs is setup either.
I am not sure how I would set each module separability, is there a wiki or tutorial on how to accomplish this work around? What if its modules all the way down? How do i tell if a folder is a module or not?

I am not trying to give people more work, but you know its better to fix bugs then to work around it.

Revision history for this message
Michael Hudson-Doyle (mwhudson) wrote :

OK, I was able to get the import to complete on staging, by means of utterly hideous hackery: https://code.staging.launchpad.net/~vcs-imports/panda3d/main (the branch data will disappear in some hours). It means I know what I need to do to fix this properly though :)

Revision history for this message
Treeform (starplant) wrote :

wow cool great to see it some progress! I really appreciate you looking into this. But it does not look like the full import took place ~ only select files from the doc and the makepanda breach got listed, is this what I should be expecting? I would expect to see very early versions for a while but of complete directories.

dirs in the brench:
doc makepanda SceneEditor

expected dirs:
direct makepanda pandatool dmodels models ppremake doc panda samples SceneEditor dtool pandaapp

Revision history for this message
Michael Hudson-Doyle (mwhudson) wrote :

Oh hm, yeah, that's really odd. I'll try to make some time to look into this more deeply, but it's not going to happen today :(

Changed in launchpad-bazaar:
assignee: nobody → mwhudson
status: New → Confirmed
Revision history for this message
Treeform (starplant) wrote :

Hi, have you had a chance to look at the errors? Thank you for any help you can provide.

Revision history for this message
Michael Hudson-Doyle (mwhudson) wrote :

No, sorry.

Revision history for this message
Jonathan Lange (jml) wrote :

Looks to me like this is in-progress, is that right?

Changed in launchpad-bazaar:
importance: Undecided → Low
status: Confirmed → In Progress
Revision history for this message
Michael Hudson-Doyle (mwhudson) wrote :

Not really, no. Sorry.

Changed in launchpad-bazaar:
status: In Progress → Confirmed
Jonathan Lange (jml)
Changed in launchpad-bazaar:
status: Confirmed → Triaged
description: updated
Revision history for this message
Treeform (starplant) wrote : Re: [Bug 280617] Re: cscvs.cmds.totla.ValidationFailed: directories differ

Could the process that check CVS be disabled if this will never get
fixed? I don't think i have access to delete my request import?

On Wed, Feb 4, 2009 at 11:03 PM, Jonathan Lange <email address hidden> wrote:
> ** Changed in: launchpad-bazaar
> Status: Confirmed => Triaged
>
> --
> cscvs.cmds.totla.ValidationFailed: directories differ
> https://bugs.launchpad.net/bugs/280617
> You received this bug notification because you are a direct subscriber
> of the bug.
>

Revision history for this message
Treeform (starplant) wrote : Re: [Bug 280617] Re: code imports for complicated cvs modules miss details

Yes the project is about 10 years old with 880,000 source lines of code.

On Thu, Feb 5, 2009 at 3:13 PM, Michael Hudson
<email address hidden> wrote:
> ** Summary changed:
>
> - cscvs.cmds.totla.ValidationFailed: directories differ
> + code imports for complicated cvs modules miss details
>
> ** Description changed:
>
> - I get cscvs.cmds.totla.ValidationFailed: directories differ error
> + The modules file of CVS allows a more complicated set up than many
> + people realize. For example:
>
> - You can see the log here:
> + mwh@grond:trunk$ cvs -d :pserver:<email address hidden>:/cvsroot/panda3d co -c
> + panda3d doc &ppremake &dtool &panda &direct &pandaapp &pandatool &dmodels
> + &models
>
> - http://launchpadlibrarian.net/18357989/panda3d-main-log.txt
> + This defines a module called 'panda3d' that is actually made up of a
> + number of other modules -- it says "check out the doc module, and splice
> + all these other ones into it".
>
> - This is a really old project. Would not surprise if its 10 years old.
> - What can i do to help this through?
> + The problem comes from the interaction of two facts.
> +
> + 1) After you've run "cvs co panda3d" you can't actually tell from the
> + checkout that this is what you've done:
> +
> + $ cat panda3d/CVS/Repository
> + doc
> +
> + If the modules file of the repo was empty and you'd just happened to
> + check out the various modules in this arrangement, I don't think you'd
> + be able to tell the difference, and certainly there's no way of getting
> + back from the checkout to the name of 'panda3d' 'module'. Which is
> + unfortunate, because:
> +
> + 2) the interface to cscvs we use is effectively "check out a foreign
> + tree and point cscvs at it" -- there's nowhere to pass on the
> + information that we got the checkout using the 'panda3d' module. I
> + don't actually know if there's a more flexible interface to cscvs we
> + could be using instead -- it would be worth finding out!
> +
> + So cscvs merrily and successfully imports the 'doc' module, and then
> + fails the validation step at the end because masses of files are missing
> + from the imported branch.
>
> --
> code imports for complicated cvs modules miss details
> https://bugs.launchpad.net/bugs/280617
> You received this bug notification because you are a direct subscriber
> of the bug.
>

Revision history for this message
rdb (rdb) wrote :

We've just restructured the CVS repository and the weird doc/ root annoyance has been removed. Could the panda3d project be re-added to the import list?

Revision history for this message
Michael Hudson-Doyle (mwhudson) wrote :

Currently 'cvs co panda3d' does not succeed:

...
U contrib/src/sceneeditor/sePlacer.py
U contrib/src/sceneeditor/seSceneGraphExplorer.py
U contrib/src/sceneeditor/seSelection.py
U contrib/src/sceneeditor/seSession.py
U contrib/src/sceneeditor/seTree.py
cvs checkout: existing repository /cvsroot/panda3d/doc/makepanda does not match /cvsroot/panda3d/makepanda
cvs checkout: ignoring module makepanda
cvs checkout: existing repository /cvsroot/panda3d/doc does not match /cvsroot/panda3d
cvs checkout: ignoring module Makefile
cvs checkout: existing repository /cvsroot/panda3d/doc does not match /cvsroot/panda3d
cvs checkout: ignoring module .project
mwh@grond:tmp$ echo $?
1

Revision history for this message
rdb (rdb) wrote :

Hmm. Can we make it checkout the invididual modules instead of the fake
"panda3d" module?
The modules are named:
contrib, direct, dmodels, doc, dtool, makepanda, models, panda, pandaapp,
pandatool, ppremake

On Tue, Apr 28, 2009 at 8:38 AM, Michael Hudson <
<email address hidden>> wrote:

> Currently 'cvs co panda3d' does not succeed:
>
> ...
> U contrib/src/sceneeditor/sePlacer.py
> U contrib/src/sceneeditor/seSceneGraphExplorer.py
> U contrib/src/sceneeditor/seSelection.py
> U contrib/src/sceneeditor/seSession.py
> U contrib/src/sceneeditor/seTree.py
> cvs checkout: existing repository /cvsroot/panda3d/doc/makepanda does not
> match /cvsroot/panda3d/makepanda
> cvs checkout: ignoring module makepanda
> cvs checkout: existing repository /cvsroot/panda3d/doc does not match
> /cvsroot/panda3d
> cvs checkout: ignoring module Makefile
> cvs checkout: existing repository /cvsroot/panda3d/doc does not match
> /cvsroot/panda3d
> cvs checkout: ignoring module .project
> mwh@grond:tmp$ echo $?
> 1
>
> --
> code imports for complicated cvs modules miss details
> https://bugs.launchpad.net/bugs/280617
> You received this bug notification because you are a direct subscriber
> of the bug.
>

Revision history for this message
Michael Hudson-Doyle (mwhudson) wrote :

Sure, just register each module at https://code.launchpad.net/+code-imports/+new :)

Revision history for this message
rdb (rdb) wrote :

Thanks, will do that.

On Tue, Apr 28, 2009 at 10:51 AM, Michael Hudson <
<email address hidden>> wrote:

> Sure, just register each module at https://code.launchpad.net/+code-
> imports/+new <https://code.launchpad.net/+code-%0Aimports/+new> :)
>
> --
> code imports for complicated cvs modules miss details
> https://bugs.launchpad.net/bugs/280617
> You received this bug notification because you are a direct subscriber
> of the bug.
>

Revision history for this message
rdb (rdb) wrote :

Can the main branch be removed then?

On Tue, Apr 28, 2009 at 11:04 AM, pro-rsoft <email address hidden> wrote:

> Thanks, will do that.
>
>
> On Tue, Apr 28, 2009 at 10:51 AM, Michael Hudson <
> <email address hidden>> wrote:
>
>> Sure, just register each module at https://code.launchpad.net/+code-
>> imports/+new <https://code.launchpad.net/+code-%0Aimports/+new> :)
>>
>> --
>> code imports for complicated cvs modules miss details
>> https://bugs.launchpad.net/bugs/280617
>> You received this bug notification because you are a direct subscriber
>> of the bug.
>>
>
>

Changed in launchpad-code:
assignee: Michael Hudson (mwhudson) → nobody
Colin Watson (cjwatson)
affects: launchpad → lp-codeimport
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.