CVS implications of moving core modules into their own directories
On 2006-07-12, the modules within the Drupal core repository were moved into their own directories. Previous to this change, all modules in the core Drupal distribution lived in a single directory: drupal/modules. Now, each module has its own directory (for example, drupal/modules/system), just like the modules from the contributions repository.
This change only affected the versions of each module living in the trunk of the CVS repository (also known as the "cvs" or "HEAD" version), which will eventually become Drupal version 4.8.x and beyond. The 4.7.x, 4.6.x, and all prior versions of these modules still exist in the old location. For the most part, the move will be completely transparent to Drupal users and developers. In general, everything will work perfectly if you use CVS commands like cvs log and cvs annotate for the same branch as the copy of the source you have checked out. However, there are a few areas where this move will be noticable when you attempt to query for historical information about a file on a different branch than your currently checked out workspace.
In all examples, modules/x/x.module will be a generic module in the new location, and modules/x.module will be something in the 4.7.x and older location.
cvs logwill continue to work perfectly for viewing log messages on the same branch as the copy of the source that you check out. However, if you want to usecvs logto view log messages on a different branch than your currently checked out workspace, beware that if you're looking atmodules/x/x.moduleyou will not see log messages for commits that are done in the DRUPAL-4-7 or DRUPAL-4-6 branch after the files were moved to their new locations on 2006-06-20. Similarly, the copies in the old location (modules/x.module) will not have log messages that were commited to the HEAD from after the date the files were moved. A few examples might help clarify the situation:- If you've checked out a workspace from the HEAD of CVS, but you want to see the most recent cvs commits on the DRUPAL-4-7 branch on the node.module file, you'll want to cd into the
modulesdirectory itself, and run the following command:
cvs log -rDRUPAL-4-7 node.module
Even though that file doesn't exist in your local workspace, CVS knows how to display the log information to you.
- If you've checked out a workspace from the HEAD of CVS, but you want to see the most recent cvs commits on the DRUPAL-4-7 branch on the node.module file, you'll want to cd into the
cvs log -rTRUNK node/node.moduleSince there's no
node directory in your workspace, the cvs log command will fail, even though the rest of the options are valid. In this case, your only option is to checkout another copy of the source directly from the TRUNK (so modules will be in modules/x/x.module and you can view the full history along the TRUNK in that workspace.
cvs annotate command will have the same sorts of problems when trying to use it on other branches than the currently checked-out workspace. It will not be able to annotate the source with the most recent changes made on a different branch than the one you've checked out (if the files were moved between the two branches you care about). So, cvs annotate -r DRUPAL-4-7 x.module will work fine in a DRUPAL-4-6 branch (assuming it's run from inside the modules directory). However, if you attempt to annotate relative to the TRUNK (which is the default behavior, even if you run it from a workspace that has been checked out of another branch) on the modules/x.module copy, you will only see changes made before 2006-06-20.
Normally, so long as you're trying to use CVS commands on the same branch as your current workspace, everything will work perfectly, and you'll probably never have to know that the move took place.
