I keep all my Drupal sites up-to-date by updating a single Drupal core instance and one install profile. And I keep Drupal core and all modules in this install profile updated through CVS. But then a problem poses: what if a file was added to or removed from CVS? Until now, you'd have to manually svn add or svn rm the file. And in the case of some modules (e.g. Views), that's a lot of files you'll have to check.
I'm aware that this probably isn't the best name, but it gets the job done :).
Ever been disgruntled by the fact that you can't do a cvs diff with new files, because you haven't got write access on a Drupal contrib module's CVS repository and thus can't cvs add those new files? There's a solution though: edit CVS's Entries file. But who likes manually modifying files over and over again?
The solution: fakeadd! (I've attached the file to this post in case this site ever goes down.) This nice shellscript allows you to update the Entries file using a simple syntax: fakeadd newfile.php.
A quick install how-to:
~/scripts.~/.bash_profile file (if you're using the bash shell, this is the default shell on OS X) and add the following:
# Add custom scripts, such as the CVS fakeadd script. export PATH=$PATH:~/scripts
chmod +x ~/scripts/fakeadd.-N flag. So your eventual command will look like this: cvs diff -N -up > foo.patch.Add these lines to your ~/.bash_profile if you're using the Bash shell:
alias ddiff="cvs diff -u -F^f -N > "
alias dhead="cvs -z6 -d:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal checkout drupal"
alias dupdate="cvs update -dP"Now you have three new commands at your disposal:
ddiff patchfile.patch, creates a patch file.dhead, checks out Drupal HEAD in the current directory.dupdate, updates the current directory recursively.