Awkward CVS Directory Structure

I just grabbed the latest sources from the CVS, and something seemed a bit out of place. I’ve grabbed the sources before, and /makepanda/ has always been at the root. Yet this time, it was not there. I explored a bit and found it along with a couple of other directories in the /doc/ directory.

I tried running in the /doc/makepanda/ directory, and I received an error about it not being in the Panda root, which makes sense since the last time I compiled from source (1.5.4) it was in root. After moving /makepanda/ back to the root directory, I received an error about it not finding /doc/LICENSE. Looking in the /doc/ directory, I found a /doc/ subdirectory with the files that should be in the /doc/ directory.

So correct me if I’m wrong, but did the directory structure get messed up in a recent revision? /doc/doc/ has the files that should be in /doc/ and there are other directories in /doc/ that should be in root. On my local copy, I rearranged it to fit that structure, and worked.

you actually need to run the program while once removed it’s kinda weird.

so from the command line it would be. makepanda/makepanda

you do this from the panda3d folder of course.

I’m actually not sure what Kira’s referring to, but the awkward directory structure that Xidram reports is really there and has been there for a long, long time. The problem is that it’s difficult to restructure an active CVS repository to fix it–this would require taking the CVS repository offline for several days, but we can’t afford to stop development for several days, so it hasn’t been worth it.

But we have special CVS keywords in the repository that are supposed to make it so that the “doc” directory gets mapped to the root. (In fact, it’s the existence of these keywords that caused this mess in the first place, because it means that new root folders created since the addition of the keyword actually got added into “doc” instead of at the root where they were intended.)

This CVS magic is supposed to happen automatically when you check out the Panda tree. Did you check out the tree using a different mechanism this time so that it went around this trickery somehow?


Ok. Disregard my other post. I admit I only had time to skim your post the first time around. That is quite strange. It worked for me.

It is quite screwy when you look at it, but all I did was check out ‘panda3d’ under ‘HEAD’ and my client took care of moving everything to the right place. Imagine that you grabbed each folder one-by-one, thus retaining the strange structure? Maybe, I don’t know. I’m no CVS expert…

That is interesting. Well, yes, I used to check out the CVS using TortoiseCVS on Windows, but I’ve been making the transition to Linux, and after unsuccessfully getting a GUI CVS client to work right, I resorted to simply the basic command line.

Kira mentioned ‘HEAD’, which is something that the GUI clients I’ve worked with (TortoiseCVS and the ones on Linux) did have on by default. I guess I did not consider it when using the command line. Oh, and yes, I did run the command by feeding in each directory individually. I guess there’s more to learn about this command line CVS client.

So it’s been like that for a long time, huh? I understand that several days without development would be bad, but perhaps after the 1.6 release it should be considered. I mean, with 1.6 currently getting squared away, I understand the hesitation, but perhaps its release should be followed by a quick tidying up?

Just my thoughts–and I admit to the possibility that I am unaware of the problems with a post-release clean-up period. I really have little experience with CVS, so I don’t know what could be so difficult about moving a few directories around and committing; unless I’m missing something.

Anyway, thank you for the replies. I’ll take that ‘HEAD’ into consideration next time.

Actually, most of the development on Panda is done within Disney, and we have little regard to the releases that happen here on the website–we have our own internal release system and schedule. So the 1.6 release isn’t necessarily an important milestone here, but it’s true that we probably could find a good milestone all the same, in which we could afford to take a few days off to fix this problem once and for all.

But in practice, it hasn’t really been that much of a problem. People notice it and wonder about it in ViewCVS from time to time, but you’re the first person to be tripped up by it in an actual checkout, and I guess that’s probably because you’re also the first person to check out the tree one directory at a time. :slight_smile:


It’s pretty annoying though - services like Ohloh and Launchpad stumble over it and can’t import the CVS because of the weird structure. I agree that we shouldn’t stop development if changing this would take too long - but if there would somehow be a possibility, it would be great.

OK, I’ll fix it. Didn’t realize it was bugging so many people.


Well, honestly, I felt the need to speak up because I’ve been a bit frustrated at the lack of contribution I’ve made to the community; so really, anything suspicious like this would have triggered my voice. Glad to see it caused a (somewhat small) chain reaction that led to the decision to fix it. I take a stance that when one wishes to see change, the first step is to speak up (even though this annoys my peers beyond a doubt). Thanks again, David.

I fear that it might break other stuff.

Now look, I’m sure David knows what he’s doing. I’m sure everything will be OK. He’ll just make the fix, and everything will be fine. Besides, worse comes to worst, if something goes a little wrong and breaks a few other things, I’m sure everything can be reverted back to the way it was before. There’s nothing to worry about. Just smile and go with the flow; take a leap.

If by now you do not have a smile on your face and a sense of relief, then I have failed. My point is–it’s not like this would be the end of the project or a major setback. Where there is a will, there is a way.

Addendum: I’ve just restructured the CVS. The weird doc/ annoyance has been removed.
I recommend everyone with a working copy to make a re-checkout, but I dunno if it’s necessary. If you run into issues, you’ll know you need a re-checkout. :slight_smile:

Hooray! Many thanks to pro-rsoft yet again.