CVS : File Permission Preservation Patch

This patch enables CVS to preserve file permissions in the repository and correctly apply those permissions on checkout and updates using either a local or remote repository.

Current version is 0.3 which works with CVS version 1.11.5.

(For a patch that works with cvs version 1.10, see version 0.2)



Installation Instructions

Current version is 0.3 -- March 18, 2003

Download patch
Download file from below

Apply patch
In the cvs source code directory (cvs-#.##/) run 'patch -p1 < patchfile'

NOTE: If you are having problems applying the patch, make sure you have the latest version of GNU patch.

Configure
If you want to, set the default file permissions (see 'with_filemode' in configure or configure.in) used when files in the repository don't have the file permissions saved -- default is 0600. (Running ./configure with '--with-filemode=0XXX' should work as well although I have not tested it.)

Make and Install
From within the top level CVS source directory (cvs-#.##/) running './noautomake.sh --noautoconf && ./configure && make && make install' usually does the trick

Change the repository configuration
Check out CVSROOT and edit CVSROOT/config -- set PreservePermissions to 'file_perms' (PreservePermissions=file_perms) and make sure the line is uncommented. Commit config back in to the repository.

Import a module or commit the permissions for an existing module
Importing is done the same way as before the patch. See below for handling an existing module



Handling a pre-existing module

Modules that already exist in the repository prior to enabling the file permission preservation will not have permission information already saved.

These modules can be updated to store the current file permissions by performing the following steps (with an existing sandbox on a Unix machine):



Notes



Download

Version 0.3 -- March 18, 2003
Updated patch to work with CVS version 1.11.5
 
Download earlier version (works with CVS version 1.10)


Reporting Bugs

Please send all bug reports on this patch to Larry Coffin <lcoffin@PointInfinity.com>






Copyright © 2003 Point Infinity