code imports for complicated cvs modules miss details
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>
panda3d doc &ppremake &dtool &panda &direct &pandaapp &pandatool &dmodels
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/
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.
Changed in launchpad-bazaar: | |
assignee: | nobody → mwhudson |
status: | New → Confirmed |
Changed in launchpad-bazaar: | |
status: | Confirmed → Triaged |
description: | updated |
Changed in launchpad-code: | |
assignee: | Michael Hudson (mwhudson) → nobody |
affects: | launchpad → lp-codeimport |
Ah, I think this is due to the way the CVS is set up:
$ cvs -d :pserver:<email address hidden> :/cvsroot/ panda3d co -c
& models
cvs checkout: CVS password file /home/mwh/.cvspass does not exist - creating a new file
panda3d doc &ppremake &dtool &panda &direct &pandaapp &pandatool &dmodels
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.