Actions:
|
2010-05-23 10:20 AEST by Arthur Barrett - If a file is of type 'kkv' or 'kb' or 'ku' then different clients can store it in the appropriate format (eg:
correct line endings).
The RCS format already has a field for 'mode' - but there are limited options on some client platforms
for interacting with this.
It would be a valuable extra feature if a new kopt could distinguish a text file from a text executable
file (eg: a shell script or a batch script). Or it could be a text executable windows file, text executable
unix file, text executable all file.
The server could automatically store the mode of any 'executable' kopt file as mode |= 700; allowing
older clients to preserve this info. |
|
2010-05-24 12:03 AEST by Arthur Barrett - The mode of the file as sent to the CVS/CVSNT server can be easily altered on the client based on the
kflags in send_modified() in client.cpp, eg:
if (vers && vers->options)
{
RCS_get_kflags(vers->options, false, options_flags);
if(options_flags.flags&KFLAG_EXEBIT)
mode_string = mode_to_string (sb.st_mode|700);
|
|
2010-05-24 12:14 AEST by Arthur Barrett - WORKAROUND:
If you are using CVS Suite (eg: CVS Suite 2008 or CVS Suite 2009) then you can set the registry variable
GetUnixFileModeNtEA to 700 before committing the file (eg: cvs ci -f -m "force commit to change file
mode") and a file revision will be created with the execute bit set. Note: only CVSNT Server stores the file
mode per revision - so depeneding on the CVS/CVSNT Server this will have different results.
|
|
2010-05-24 22:42 AEST by Arthur Barrett - Updated pseudocode:
if (vers && vers->options)
{
RCS_get_kflags(vers->options, false, options_flags);
if(options_flags.flags&KFLAG_EXEBIT)
mode_string = mode_to_string (sb.st_mode|0100);
Alternatively we could use 0111 but that would give owner/group/world execute access - are there
security implications to that?
|