CVS diff with new files: fakeadd
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:
- Save the file to a location of your choice, I’ve saved it in
~/scripts
. Open your
~/.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`
Make the script executable:
chmod +x ~/scripts/fakeadd
.- When you create patches (also see this blog post of mine), use the
-N
flag. So your eventual command will look like this:cvs diff -N -up > foo.patch
.
Update on November 30, 2008
The above blog post was improved based on the feedback I got in the comments:
* Robert Douglass mentioned in the comments that you have to pass the -N
parameter for cvs diff
to pick up new files.
* drewish was kind enough to post an improved version in the comments, which allows you to use the script for files in subdirectories.