Hello. I'm sure this question has been asked MANY times... How do I use Drupal's CVS? I think I've actually gotten the basics down, but I'm not quite sure I'm using CVS correctly. I am using WinCVS and am going to keep using it since I've invested quite a bit of time learning it. Please don't reply telling me to use a different CVS client (It's recommended on the CVS documentation pages: http://drupal.org/handbook/cvs). I'm still having trouble grasping a few concepts related to CVS usage even though I've read the Drupal documentation. Please bear with me as I explain my lack of understanding.
I am able to connect to my module through CVS and create a local directory. I have even successfully committed changes back to CVS. Here is where my confusion is at the moment. BRANCHES and TAGS.
I am working on a module that to this point was not ported to 5.x. I think I want to create a new branch for it and I think that branch should be called DRUPAL-5--1 (according to handbook pages). Once that branch is created, I then want to create a tag for the state of the files as I am committing them today which should be called DRUPAL-5--1-0-BETA1 (I think it should be a BETA)? Do I then commit to the said branch? Where does my tag translate into the nifty version numbers I see when I download a module? Does CVS take care of all this? Also, in my case, I was unable to create a 5--1 branch but somehow succeeded in a 5--2 branch. It's slightly confusing, but I believe I'm very close to understanding it. I'm perfectly willing to read more documentation if folks can point me to it. Also, how do I search for three letter words in Drupal? That would have helped me see if anyone has asked these questions before?
Thanks to anyone who can help shed some light,
Jonathan
Comments
CVS
I wouldn't say WinCVS is recommended - it is just listed as a possible client for Windows on some pretty old pages. The only client preference I have ever heard coming from 'senior' (whatever that means) Drupal devs is for the actual CVS command line. The trouble with GUI clients is that you might not actually be doing the exact same operation you get from the command line examples listed in the Drupal docs.
This is all from my hazy understanding, you'd better read the actual docs again after reading this and follow those rather than just take my word for it...
You generally want to start with a DRUPAL-5 branch which is actually a project module shortcut for what would normally be called DRUPAL-5--1 (which is why you can't actually create DRUPAL-5--1, but why you can create DRUPAL-5--2). This confusion will go away with Drupal 6 branches - the DRUPAL-6--1 name will be explicit and there won't be a DRUPAL-6 branch as such.
It's all here: http://drupal.org/handbook/cvs/branches-and-tags/contributions and http://drupal.org/handbook/cvs/releases
BTW: most of what is confusing you isn't CVS as much as the drupal.org project module processes and workflows. The CVS server at drupal.org has been configured to only allow certain tag/branch patterns in certain orders etc. The project module then does all the packaging into tarballs and releases etc for you.
The docs are pretty comprehensive, and all contained under the tree at http://drupal.org/handbook/cvs. It might just take a few readings for it to sink in.
--
Anton
New to Drupal? | Troubleshooting FAQ
Example knowledge base built with Drupal
Anton, Thanks for your
Anton,
Thanks for your reply. Just that tiny bit of explanation makes a huge difference. And of course I will go back and read the docs again now that you said that. Sometimes it's actually a huge help when one is running around panicking to get slapped, told to calm down, and read the docs again. Thanks again for the clarification and redirection. I'll post again if I have still more questions after reading.
Thanks,
Jonathan
Drupal's so easy, even I could do it.
http://www.kfol.org/
Anton,
I also stink at using forum replies.
Thanks again for the
Thanks again for the redirection. I think I finally have the hang of things. I bounced around a lot while reading the documentation the first time and guess I missed some critical elements. I'm still not quite certain that it's explained in the best way, but if I think of a better way, I'll submit a write-up for the documentation pages. I did confuse myself with the branch names, but I at least can see clearly that the order is branch, commit, tag. The only other thing that had me running in circles was WinCVS' peculiar way of incorporating (or rather ignoring until you tell it to include them) new files. This may be a CVS feature in general, but it wasn't intuitive from an FTP mindset. Still it's a very impressive system, and I'm glad to know how it works.
Thanks,
Jonathan
Drupal's so easy, even I could do it.
http://www.kfol.org/
Not automatically including new files
isn't a WinCVS thing, it is a standard version control thing for any version control system. After all you wouldn't want any random file cluttering up the repository that wasn't intended to be put there - files stay there forever in the old revisions even after you've removed it from the later ones. That is the whole point of a version control system. You can roll code back to any point of time in the past.
CVS is a bit of a relic with all sorts of historical idiosyncrasies and limitations but it works and is what drupal.org uses. There are more modern friendlier alternatives if you want to try them (eg Subversion), but you'll need to know CVS to contribute code to drupal.org.
Branches are just that, a way of branching (or forking) the lines of development. Tags are just a way of putting a fixed label on the state of a branch at a certain point in time. You can change the code at the ends of the branches, and even merge changes between branches. But you can't change a tag.
--
Anton
New to Drupal? | Troubleshooting FAQ
Example knowledge base built with Drupal