Re: FW: FW: How to tell Pre commit script the exact File Name containing Spaces?
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Paras jain [EMAIL PROTECTED] writes: Thanks Russ, (Sorry Russ please ignore previous mail) You can test this by creating a script with the above as contents. Run it with args: a b b a. Then remove the quotes from the $@ ant try it again with the same args to see what (ba)sh does to the args. But my script is getting from CVS server is a b c not a b c That is why for I in $@ not helped me Let two files named as a and b c then CVS server send to my script is a b c not a b c ... I think I need to modify slightly in CVS code so that Pre-commit script will get files surrounded by double quotes but I am not known to CVS code ?? If anybody has the same problem or can guide me where to start... Pick up a copy of cvs 1.12.x and look at putting UseNewInfoFmtStrings=yes in your CVSROOT/config file along with changes to the various CVSROOT trigger files. Read https://www.cvshome.org/docs/manual/cvs-1.12.11/cvs_18.html#IDX319 for more details. (I believe this feature was introduced in cvs 1.12.6.) -- Mark -BEGIN PGP SIGNATURE- Version: GnuPG v1.2.3 (FreeBSD) iD8DBQFCTsoU3x41pRYZE/gRAqPaAKC+LZEc1TL6vM4iTM4xWVkTTK7i4QCgzCO0 GmTeV2lIf/CqkqzcIyPPZK0= =YdDf -END PGP SIGNATURE- ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: FW: FW: How to tell Pre commit script the exact File Name containing Spaces?
UseNewInfoFmtStrings=yes will not fix the problem I don't think. The problem is with how (ba)sh handles expansion of a list of arguments not how the arguments are passed to it. $@ is very different from [EMAIL PROTECTED] [EMAIL PROTECTED] b c d (or a b c\ d) sh expands $@ to: a, b, c, d but expands $@ to: a, b, c\ d Even with the suggested fix, (ba)sh will still expand the arguments incorrectly (for the intended script behaviour) if $@ is unquoted. --Russ. Changing the On Apr 2, 2005 11:36 AM, Mark D. Baushke [EMAIL PROTECTED] wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Paras jain [EMAIL PROTECTED] writes: Thanks Russ, (Sorry Russ please ignore previous mail) You can test this by creating a script with the above as contents. Run it with args: a b b a. Then remove the quotes from the $@ ant try it again with the same args to see what (ba)sh does to the args. But my script is getting from CVS server is a b c not a b c That is why for I in $@ not helped me Let two files named as a and b c then CVS server send to my script is a b c not a b c ... I think I need to modify slightly in CVS code so that Pre-commit script will get files surrounded by double quotes but I am not known to CVS code ?? If anybody has the same problem or can guide me where to start... Pick up a copy of cvs 1.12.x and look at putting UseNewInfoFmtStrings=yes in your CVSROOT/config file along with changes to the various CVSROOT trigger files. Read https://www.cvshome.org/docs/manual/cvs-1.12.11/cvs_18.html#IDX319 for more details. (I believe this feature was introduced in cvs 1.12.6.) -- Mark -BEGIN PGP SIGNATURE- Version: GnuPG v1.2.3 (FreeBSD) iD8DBQFCTsoU3x41pRYZE/gRAqPaAKC+LZEc1TL6vM4iTM4xWVkTTK7i4QCgzCO0 GmTeV2lIf/CqkqzcIyPPZK0= =YdDf -END PGP SIGNATURE- ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
FW: How to tell Pre commit script the exact File Name containing Spaces?
Dear List, When I commit a file (which is having spaces in it's name), CVS checks for any pre commit scripts and passed arguments to that scripts which includes the file names to be checked in. Now I want to parse those file names in my Pre commit scripts but because file name contains spaces, I could not parse the exact file names! If a file name is DRN 106.doc I will get there DRN and 106.doc. I am parsing the file names in my pre commit scripts as for file in $@. And I get DRN first and then 106.doc, but I want DRN 106.doc? Is there any way to tell pre commit script the exact file names with spaces? Am Using CVS 1.11.17 on LINUX ES 3. -- Best Regards Paras Jain _ ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: FW: How to tell Pre commit script the exact File Name containing Spaces?
(sorry for double post Paris, forgot to copy the group) Not really a cvs question but if you put quotes around the $@, it will work. for i in $@ do echo $i done You can test this by creating a script with the above as contents. Run it with args: a b b a. Then remove the quotes from the $@ ant try it again with the same args to see what (ba)sh does to the args. --Russ On Apr 1, 2005 8:30 AM, Paras jain [EMAIL PROTECTED] wrote: Dear List, When I commit a file (which is having spaces in it's name), CVS checks for any pre commit scripts and passed arguments to that scripts which includes the file names to be checked in. Now I want to parse those file names in my Pre commit scripts but because file name contains spaces, I could not parse the exact file names! If a file name is DRN 106.doc I will get there DRN and 106.doc. I am parsing the file names in my pre commit scripts as for file in $@. And I get DRN first and then 106.doc, but I want DRN 106.doc? Is there any way to tell pre commit script the exact file names with spaces? Am Using CVS 1.11.17 on LINUX ES 3. -- Best Regards Paras Jain _ ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
FW: FW: How to tell Pre commit script the exact File Name containing Spaces?
Thanks Russ, (Sorry Russ please ignore previous mail) You can test this by creating a script with the above as contents. Run it with args: a b b a. Then remove the quotes from the $@ ant try it again with the same args to see what (ba)sh does to the args. But my script is getting from CVS server is a b c not a b c That is why for I in $@ not helped me Let two files named as a and b c then CVS server send to my script is a b c not a b c ... I think I need to modify slightly in CVS code so that Pre-commit script will get files surrounded by double quotes but I am not known to CVS code ?? If anybody has the same problem or can guide me where to start... Regards Paris -Original Message- From: Russ Sherk [mailto:[EMAIL PROTECTED] Sent: Friday, April 01, 2005 7:57 PM To: Paras jain Cc: info-cvs@gnu.org Subject: Re: FW: How to tell Pre commit script the exact File Name containing Spaces? (sorry for double post Paris, forgot to copy the group) Not really a cvs question but if you put quotes around the $@, it will work. for i in $@ do echo $i done You can test this by creating a script with the above as contents. Run it with args: a b b a. Then remove the quotes from the $@ ant try it again with the same args to see what (ba)sh does to the args. --Russ On Apr 1, 2005 8:30 AM, Paras jain [EMAIL PROTECTED] wrote: Dear List, When I commit a file (which is having spaces in it's name), CVS checks for any pre commit scripts and passed arguments to that scripts which includes the file names to be checked in. Now I want to parse those file names in my Pre commit scripts but because file name contains spaces, I could not parse the exact file names! If a file name is DRN 106.doc I will get there DRN and 106.doc. I am parsing the file names in my pre commit scripts as for file in $@. And I get DRN first and then 106.doc, but I want DRN 106.doc? Is there any way to tell pre commit script the exact file names with spaces? Am Using CVS 1.11.17 on LINUX ES 3. -- Best Regards Paras Jain _ ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Commit script
Jim.Hyslop writes: We must have configured our server differently - we only get one prompt per checkin command, no matter how many files or directories are involved. There's no such configuration option. If you don't get a prompt for each directory, you've not running a standard CVS release. -Larry Jones He's just jealous because I accomplish so much more than he does. -- Calvin ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
RE: Commit script
[EMAIL PROTECTED] wrote: Jim.Hyslop writes: We must have configured our server differently - we only get one prompt per checkin command, no matter how many files or directories are involved. There's no such configuration option. If you don't get a prompt for each directory, you've not running a standard CVS release. I hate to disagree with you, Larry, but looking at commit.c it seems that the standard client behaviour is a single prompt per commit: #ifdef CLIENT_SUPPORT if (current_parsed_root-isremote) { ... /* * We do this once, not once for each directory as in normal CVS. * The protocol is designed this way. This is a feature. */ if (use_editor) do_editor (., saved_message, (char *)NULL, find_args.ulist); So, it appears that the prompt-per-directory behaviour only applies on local CVS systems. -- Jim Hyslop Senior Software Designer Leitch Technology International Inc. (http://www.leitch.com) Columnist, C/C++ Users Journal (http://www.cuj.com/experts) ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
RE: Commit script
What is normal CVS and local CVS? I can probably guess but I'd rather not. -chris -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jim.Hyslop Sent: Tuesday, March 23, 2004 10:03 AM To: [EMAIL PROTECTED] Subject: RE: Commit script [EMAIL PROTECTED] wrote: Jim.Hyslop writes: We must have configured our server differently - we only get one prompt per checkin command, no matter how many files or directories are involved. There's no such configuration option. If you don't get a prompt for each directory, you've not running a standard CVS release. I hate to disagree with you, Larry, but looking at commit.c it seems that the standard client behaviour is a single prompt per commit: #ifdef CLIENT_SUPPORT if (current_parsed_root-isremote) { ... /* * We do this once, not once for each directory as in normal CVS. * The protocol is designed this way. This is a feature. */ if (use_editor) do_editor (., saved_message, (char *)NULL, find_args.ulist); So, it appears that the prompt-per-directory behaviour only applies on local CVS systems. -- Jim Hyslop Senior Software Designer Leitch Technology International Inc. (http://www.leitch.com) Columnist, C/C++ Users Journal (http://www.cuj.com/experts) ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
RE: Commit script
I just did a test commit and it prompted me per directory. -chris -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Fouts Christopher (6452) Sent: Tuesday, March 23, 2004 11:21 AM To: [EMAIL PROTECTED] Subject: RE: Commit script What is normal CVS and local CVS? I can probably guess but I'd rather not. -chris -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jim.Hyslop Sent: Tuesday, March 23, 2004 10:03 AM To: [EMAIL PROTECTED] Subject: RE: Commit script [EMAIL PROTECTED] wrote: Jim.Hyslop writes: We must have configured our server differently - we only get one prompt per checkin command, no matter how many files or directories are involved. There's no such configuration option. If you don't get a prompt for each directory, you've not running a standard CVS release. I hate to disagree with you, Larry, but looking at commit.c it seems that the standard client behaviour is a single prompt per commit: #ifdef CLIENT_SUPPORT if (current_parsed_root-isremote) { ... /* * We do this once, not once for each directory as in normal CVS. * The protocol is designed this way. This is a feature. */ if (use_editor) do_editor (., saved_message, (char *)NULL, find_args.ulist); So, it appears that the prompt-per-directory behaviour only applies on local CVS systems. -- Jim Hyslop Senior Software Designer Leitch Technology International Inc. (http://www.leitch.com) Columnist, C/C++ Users Journal (http://www.cuj.com/experts) ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
RE: Commit script
Fouts Christopher (6452) wrote: I just did a test commit and it prompted me per directory. What connection method are you using? I use mumble pserver /mumble. -- Jim Hyslop Senior Software Designer Leitch Technology International Inc. (http://www.leitch.com) Columnist, C/C++ Users Journal (http://www.cuj.com/experts) ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
RE: Commit script
Local connection, ie, user and server are on the SAME machine. -chris -Original Message- From: Jim.Hyslop [mailto:[EMAIL PROTECTED] Sent: Tuesday, March 23, 2004 12:03 PM To: 'Fouts Christopher (6452)'; [EMAIL PROTECTED] Subject: RE: Commit script Fouts Christopher (6452) wrote: I just did a test commit and it prompted me per directory. What connection method are you using? I use mumble pserver /mumble. -- Jim Hyslop Senior Software Designer Leitch Technology International Inc. (http://www.leitch.com) Columnist, C/C++ Users Journal (http://www.cuj.com/experts) ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Re: Commit script
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Fouts Christopher (6452) wrote: Local connection, ie, user and server are on the SAME machine. -chris -Original Message- From: Jim.Hyslop [mailto:[EMAIL PROTECTED] Sent: Tuesday, March 23, 2004 12:03 PM To: 'Fouts Christopher (6452)'; [EMAIL PROTECTED] Subject: RE: Commit script Fouts Christopher (6452) wrote: I just did a test commit and it prompted me per directory. What connection method are you using? I use mumble pserver /mumble. Actually, that is the difference. It is a design simplification/optimization that causes pserver (and other client/server modes) to only request a single log message and use it for all directories being committed. The alternatives involve requesting one message, then making the user wait on possibly slow network transactions, then asking for the next, or asking for all the messages up front and presenting the user with a list of files with obscure names in /tmp containing log messages for reuse on commit failure, and so on. Derek - -- *8^) Email: [EMAIL PROTECTED] Get CVS support at http://ximbiot.com! -BEGIN PGP SIGNATURE- Version: GnuPG v1.2.1 (GNU/Linux) Comment: Using GnuPG with Netscape - http://enigmail.mozdev.org iD4DBQFAYH1nLD1OTBfyMaQRAoZQAJYoXByYzKG0zfZBw9N9tSESwxS6AJ0W1t9z dltE3VSFC02nLV649CuXOQ== =Dyy7 -END PGP SIGNATURE- ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
RE: Commit script
How can I achive the yet another alternative where only one log message is prompted even on a LOCAL connection? -chris -Original Message- From: Derek Robert Price [mailto:[EMAIL PROTECTED] Sent: Tuesday, March 23, 2004 1:10 PM To: Fouts Christopher (6452) Cc: [EMAIL PROTECTED] Subject: Re: Commit script -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Fouts Christopher (6452) wrote: Local connection, ie, user and server are on the SAME machine. -chris -Original Message- From: Jim.Hyslop [mailto:[EMAIL PROTECTED] Sent: Tuesday, March 23, 2004 12:03 PM To: 'Fouts Christopher (6452)'; [EMAIL PROTECTED] Subject: RE: Commit script Fouts Christopher (6452) wrote: I just did a test commit and it prompted me per directory. What connection method are you using? I use mumble pserver /mumble. Actually, that is the difference. It is a design simplification/optimization that causes pserver (and other client/server modes) to only request a single log message and use it for all directories being committed. The alternatives involve requesting one message, then making the user wait on possibly slow network transactions, then asking for the next, or asking for all the messages up front and presenting the user with a list of files with obscure names in /tmp containing log messages for reuse on commit failure, and so on. Derek - -- *8^) Email: [EMAIL PROTECTED] Get CVS support at http://ximbiot.com! -BEGIN PGP SIGNATURE- Version: GnuPG v1.2.1 (GNU/Linux) Comment: Using GnuPG with Netscape - http://enigmail.mozdev.org iD4DBQFAYH1nLD1OTBfyMaQRAoZQAJYoXByYzKG0zfZBw9N9tSESwxS6AJ0W1t9z dltE3VSFC02nLV649CuXOQ== =Dyy7 -END PGP SIGNATURE- ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Re: Commit script
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Fouts Christopher (6452) wrote: How can I achive the yet another alternative where only one log message is prompted even on a LOCAL connection? Hack your client (Jim Hyslop already pointed out the correct location - at the `if (current_parsed_root-isremote)' line)? Use `cvs commit -m message'? Wrap your CVS executable with a script that prompts for the log message then passes it to `cvs commit' as the argument to `-m'? Derek - -- *8^) Email: [EMAIL PROTECTED] Get CVS support at http://ximbiot.com! -BEGIN PGP SIGNATURE- Version: GnuPG v1.2.1 (GNU/Linux) Comment: Using GnuPG with Netscape - http://enigmail.mozdev.org iD8DBQFAYII2LD1OTBfyMaQRAotaAKD1Pc8vVHYQ/jUAXSlLfYkg10ufNQCfQxnN Uj+El0RjiYlO50mI6rLO21A= =6nqi -END PGP SIGNATURE- ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Re: Commit script
Derek Robert Price wrote: Fouts Christopher (6452) wrote: How can I achive the yet another alternative where only one log message is prompted even on a LOCAL connection? Hack your client (Jim Hyslop already pointed out the correct location - at the `if (current_parsed_root-isremote)' line)? Use `cvs commit -m message'? Wrap your CVS executable with a script that prompts for the log message then passes it to `cvs commit' as the argument to `-m'? Derek would not :fork: or :local: do it, with out having to make fun code mods? -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Re: Commit script
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Todd Denniston wrote: Derek Robert Price wrote: Fouts Christopher (6452) wrote: How can I achive the yet another alternative where only one log message is prompted even on a LOCAL connection? Hack your client (Jim Hyslop already pointed out the correct location - at the `if (current_parsed_root-isremote)' line)? Use `cvs commit -m message'? Wrap your CVS executable with a script that prompts for the log message then passes it to `cvs commit' as the argument to `-m'? Derek would not :fork: or :local: do it, with out having to make fun code mods? Nice catch. :local: wouldn't work, but :fork: as an access method should. Derek - -- *8^) Email: [EMAIL PROTECTED] Get CVS support at http://ximbiot.com! -BEGIN PGP SIGNATURE- Version: GnuPG v1.2.1 (GNU/Linux) Comment: Using GnuPG with Netscape - http://enigmail.mozdev.org iD8DBQFAYJTyLD1OTBfyMaQRAk7pAKD1mfZ0/b98bbY36a/mX8sW/EDepgCg1ozJ MeR/srWsi1DjpNWCzy/lXzM= =7TQP -END PGP SIGNATURE- ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
RE: Commit script
The BEST solution yet - simple and effective! I tried this and it worked! Now for another question - where is the default commit template? Note I don't have the source files so I can't check yet. I'll download them later so I can browse them. I want to eventually create my own template and scripts to validate user, bug number etc... -chris -Original Message- From: Derek Robert Price [mailto:[EMAIL PROTECTED] Sent: Tuesday, March 23, 2004 2:50 PM To: Todd Denniston Cc: Fouts Christopher (6452); [EMAIL PROTECTED] Subject: Re: Commit script -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Todd Denniston wrote: Derek Robert Price wrote: Fouts Christopher (6452) wrote: How can I achive the yet another alternative where only one log message is prompted even on a LOCAL connection? Hack your client (Jim Hyslop already pointed out the correct location - at the `if (current_parsed_root-isremote)' line)? Use `cvs commit -m message'? Wrap your CVS executable with a script that prompts for the log message then passes it to `cvs commit' as the argument to `-m'? Derek would not :fork: or :local: do it, with out having to make fun code mods? Nice catch. :local: wouldn't work, but :fork: as an access method should. Derek - -- *8^) Email: [EMAIL PROTECTED] Get CVS support at http://ximbiot.com! -BEGIN PGP SIGNATURE- Version: GnuPG v1.2.1 (GNU/Linux) Comment: Using GnuPG with Netscape - http://enigmail.mozdev.org iD8DBQFAYJTyLD1OTBfyMaQRAk7pAKD1mfZ0/b98bbY36a/mX8sW/EDepgCg1ozJ MeR/srWsi1DjpNWCzy/lXzM= =7TQP -END PGP SIGNATURE- ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Re: Commit script
Fouts Christopher (6452) wrote: The BEST solution yet - simple and effective! I tried this and it worked! Now for another question - where is the default commit template? Note I don't have the source files so I can't check yet. I'll download them later so I can browse them. I want to eventually create my own template and scripts to validate user, bug number etc... -chris SNIP there is no 'default commit template` with cvs, but you can make and use your own following the directions: http://www.cvshome.org/docs/manual/cvs-1.11.14/cvs_18.html#SEC156 specifically the template is pointed to by rcsinfo http://www.cvshome.org/docs/manual/cvs-1.11.14/cvs_18.html#SEC174 verifymsg points to the script/program you want to use to check they filled out the template. http://www.cvshome.org/docs/manual/cvs-1.11.14/cvs_18.html#SEC168 one basic example set sent to the list a while back is at: http://mail.gnu.org/archive/html/info-cvs/2000-11/msg00330.html you might look for others in the archive http://mail.gnu.org/pipermail/info-cvs for this and other related things: http://mail.gnu.org/archive/html/info-cvs/2001-02/msg00447.html -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Re: Commit script
On Mon, 22 Mar 2004, Fouts Christopher (6452) wrote: I'm playing CVS admin for my group. Currently during the commit process, one gets prompted for a commit edit message window for every file to be committed. This is of course impractical for a lot of files. How can I set up a script in rcsinfo to use the same commit message for ALL files to be committed? cvs commit -m Message Jim Wildman, CISSP, RHCE[EMAIL PROTECTED] http://www.rossberry.com ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Re: Commit script
Fouts Christopher (6452) writes: I'm playing CVS admin for my group. Currently during the commit process, one gets prompted for a commit edit message window for every file to be committed. CVS prompts for each *directory*, not each file. If you're really seeing something else, it's due to some kind of local modification. -Larry Jones Who, ME? Who?! Me?? WHO... Me?! Who, me??? -- Calvin ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
RE: Commit script
[EMAIL PROTECTED] wrote: Fouts Christopher (6452) writes: I'm playing CVS admin for my group. Currently during the commit process, one gets prompted for a commit edit message window for every file to be committed. CVS prompts for each *directory*, not each file. If you're really seeing something else, it's due to some kind of local modification. We must have configured our server differently - we only get one prompt per checkin command, no matter how many files or directories are involved. -- Jim Hyslop Senior Software Designer Leitch Technology International Inc. (http://www.leitch.com) Columnist, C/C++ Users Journal (http://www.cuj.com/experts) ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Format for 1.11.10's contrib's loginfo, used by log_accum commit script?
I asked this question before and got pointed to the Cederqvist manual, which does *not* help at all. Please don't tell me to RTFM, the answer is not there. We are on CVS 1.11.5, moving to 1.11.10. We are using a really old version (1.11.1p) of the log_accum.pl and loginfo files. I would like to upgrade to the commit_prep and log_accum scripts that are included in the $CVS/share/cvs/contrib directories of 1.11.10. However, I can't find any documentation or examples of what this variant of the 'loginfo' file should look like. When I run with the old formatted version of the loginfo file, I get a Too many arguments error coming out of process_argv. Now, I could spend a week learning PERL and figure out the format that is required... BUT, I'd really rather not. Does anyone out there know the file format required for the 'loginfo' file that is included in the 'contrib' directory of 1.11.10 CVS??? Presumably someone out there wrote this thing and knows what inputs it takes??? Thanks, pc Peter Connolly, CNET Networks, Inc. (415) 344-2840 [EMAIL PROTECTED] ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Re: a commit script
I am currently out of the office and unable to reply to your email. I will return to the office on Monday, March 17th, 2003. If this matter cannot wait, I can be reached via phone at (717) 579-6168. ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Re: a commit script
Derkaoui [EMAIL PROTECTED] writes: Thanks a lot for answering, here are my answer: * The version of cvs you are using.: cvs-1.11.5 Good. I am not sure why you consider . to be a HEAD 'branch' as the default cvs sources do not have any patch to pass the branch on the command line, just the directory and the list of modified files are the arguments. You didn't mention any special patches to cvs 1.11.5 to alter this behavior... * The version of the host operating system you are using: Debian Linux:2.2.20-idepci Okay. * The line of the commitinfo file that is calling your program might help to determine if all the arguments make sense. ALL /usr/local/src/cvsssupport/commit.branch ${USER} Okay. I don't understand why you don't just use $ENV{'USER'} inside your perl script to get the same value as the environment's ${USER}, but what you have should work. the commit.branch script will have the userid as the first argument, the directory as the second argument and the list of file(s) to be modified as the third and subsequent arguments. I suggest you debug the program outside of the context of cvs to see if it works as you expect: Yes i did, and i give enough arguments: root, $CVSROOT/myproj, fichier, but still have the same problem, if the number of the arguments wasn't enough i will then get: script commit.branch invoked wrongly . And if the arguments are correct, does the program exit with a zero return status? We are not really in the business here of debugging perl program fragments on this list. There are example programs in the contrib directory for doing access control and the mailing list also has other examples that folks have used. * If you compiled your own cvs from sources, what configure arguments did you use. i compiled the source with the option to let the root to commit, the proof that i can commit it's when i comment the lines calling branchIsLocked, then no problem. Okay. Good luck, -- Mark ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Re: a commit script
Mark D. Baushke writes: * The line of the commitinfo file that is calling your program might help to determine if all the arguments make sense. ALL /usr/local/src/cvsssupport/commit.branch ${USER} I don't understand why you don't just use $ENV{'USER'} inside your perl script to get the same value as the environment's ${USER}, but what you have should work. Because ${USER} in the administrative files is a CVS internal variable that contains the *CVS* username whereas the ${USER} environment variable contains the *sysem* username CVS is running as. When using pserver, they can be different. -Larry Jones I think your train of thought is a runaway. -- Calvin's Mom ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Re: a commit script
Larry Jones [EMAIL PROTECTED] writes: Mark D. Baushke writes: * The line of the commitinfo file that is calling your program might help to determine if all the arguments make sense. ALL /usr/local/src/cvsssupport/commit.branch ${USER} I don't understand why you don't just use $ENV{'USER'} inside your perl script to get the same value as the environment's ${USER}, but what you have should work. Because ${USER} in the administrative files is a CVS internal variable that contains the *CVS* username whereas the ${USER} environment variable contains the *sysem* username CVS is running as. When using pserver, they can be different. Good point. My advise works fine if one is using a local or :ext: client/server repository, but will not work properly with a :pserver: repository. The examples seemed to indicate a local repository, but I didn't make that clear in the above text. I regret any confusion my message may have caused. -- Mark ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
a commit script
Hi, I hope somebody could help me with these: I am using a script to control commit , here it is ( only the part that i think cause the probleme): Usage: # commit.branch username repository files1 branch1 [file2 branch2 ...] # # Checks that the specified branches are valid for the given files. # Branch may be . for head. # ## use Mysql; use diagnostics; use strict; my $scriptdir = `dirname $0`; chomp $scriptdir; require $scriptdir/logmsg-parsing.pl; use vars qw($db); ### sub branchIsLocked($$$) { my ($username, $module, $branch) = @_; my $query = $::db-query(ENDQUERY); select 1 from open_branches br, user_groups ug where br.cvs_module = '$module' and (br.branch_name = '$branch' or br.branch_name is null) and (br.username = '$username' or br.username is null) and ((br.groupname = ug.groupname and ug.username = '$username') or br.groupname is null) ENDQUERY if ($query-fetchrow()) { return 0; } else { return 1; } } ### # Main routine of script sub main() { # We require at least three arguments. (scalar(@ARGV) = 4) || diePrinting(Script commit.branch invoked wrongly.); my ($username, $repositoryPath, @remainder) = @ARGV; # Extract the root of the repository path, by stripping off # the /home/cvs ($cvsRootDir) and then looking at the first part before '/'. $repositoryPath = stripCVSRoot($repositoryPath); my $module = ; if ($repositoryPath =~ m|^([^/]+)|) { $module = $1; } else { diePrinting(Invalid repository path (after CVSRoot strip) - $repositoryPath); } # Check the branch for each file... while (@remainder) { my $file = shift @remainder; my $branch = shift @remainder; if ($branch eq .) { $branch = HEAD; } # See if we are locked on this module/branch if (branchIsLocked($username, $module, $branch)) { diePrinting(Branch '$branch' on module '$module' ($repositoryPath/$file) . is locked for '$username'.) } } # At this point, we know that everything's cool! exit(0); } ## # Main body main(); # Every time I commit I receve this message : Branch 'HEAD' on module 'myproj' (myproj/fichier) is locked for 'root' cvs commit: Pre-commit check failed cvs commit: Examining myproj cvs [commit aborted]: correct above errors first I am the root, and at first I created my proj directory with fichier as file in it, import it to the repository, i didn't create any module or a branch ( i am new to cvs and I don't know how to create a module or a branch). any help? Thank you. = M. Derkaoui who can do, do. Who can't do, teach. Who can't teach, critics. __ Lèche-vitrine ou lèche-écran ? magasinage.yahoo.ca ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Re: a commit script
Derkaoui [EMAIL PROTECTED] writes: Hi, I hope somebody could help me with these: I am using a script to control commit , here it is ( only the part that i think cause the probleme): Usage: # commit.branch username repository files1 branch1 [file2 branch2 ...] [...perl program fragment elided...] cvs only cares that your program return a zero or a non-zero return code. A non-zero return code will abort the commit and a zero return code will allow it to continue. How you choose to make that decision is up to you. I suggest you debug the program outside of the context of cvs to see if it works as you expect. In future e-mail to info-cvs, you may wish to include a few more 'important' bits of information: * The version of cvs you are using. * The version of the host operating system you are using for both the client and (if known) the server. * If you compiled your own cvs from sources, what configure arguments did you use. If not, what distirbution of cvs are you using? * The relevant configuration information for example the line of the commitinfo file that is calling your program might help to determine if all the arguments make sense. Every time I commit I receve this message : Branch 'HEAD' on module 'myproj' (myproj/fichier) is locked for 'root' cvs commit: Pre-commit check failed cvs commit: Examining myproj cvs [commit aborted]: correct above errors first BTW: Have you looked in the documentation in cvs.info-8 or cvs.texinfo with the item cannot commit files as 'root' ? I am the root, and at first I created my proj directory with fichier as file in it, import it to the repository, i didn't create any module or a branch ( i am new to cvs and I don't know how to create a module or a branch). any help? Look at the example contrib/cvs_acls and the contrib/commit_prep scripts in the cvs source distribution. Look at the on-line manual and FAQ in www.cvshome.org to search for terms like 'module' and 'branch' also, look in the info-cvs mail archives at http://mail.gnu.org/archive/html/info-cvs/ a reasonable search string that might get you started is 'branch access' Good luck, -- Mark Thank you. = M. Derkaoui ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Re: Does pre-commit script with a remote server?
As you mentioned that the patch doesn't work well with client/server mode, which is exactly what I need. I hope this feature will be added to the next release of CVS? Since there is no good solution to this issue, we probably have to live with $CVSROOT NFS mounted on each client host. That's bad news. Howard - Original Message - From: "Derek R. Price" [EMAIL PROTECTED] To: "Howard Zhou" [EMAIL PROTECTED] Cc: "CVS Info" [EMAIL PROTECTED] Sent: Friday, January 12, 2001 7:29 AM Subject: Re: Does pre-commit script with a remote server? The only thing I can suggest is one of the patches I already mentioned. Derek -- Derek Price CVS Solutions Architect http://CVSHome.org ) mailto:[EMAIL PROTECTED] OpenAvenue ( http://OpenAvenue.com ) -- Tis better to be thought a fool, than to open your mouth and remove all doubt. Howard Zhou wrote: My real issue is as follows: I want to protect $CVSROOT from being modified since it is NFS mounted. I'd like to set up a client/server with :pserver: method. When I tested the :pserver:, I found that editinfo is bypassed and commitinfo is not executed prior to the interactive cvs log editting. The only way to make the commitinfo work right is to use -m option, which is not good enough since users want to edit cvs log interactively with a pre-defined template. Any suggestions? Howard - Original Message - From: "Derek R. Price" [EMAIL PROTECTED] To: "Howard Zhou" [EMAIL PROTECTED] Cc: "CVS Info" [EMAIL PROTECTED] Sent: Thursday, January 11, 2001 6:02 AM Subject: Re: Does pre-commit script with a remote server? Howard Zhou wrote: Now if I use :pserver: method, I still have the same problem. Is :pserver: using rsh too? Nope, but I didn't understand the rest of your question. As for the first question, I have three possible solutions: 1) Set the CVSEDITOR variable on all clients to a script which edits the log message before calling the standard EDITOR on it for the user. This would all happen on the client, of course, so usually brings up portability issues. 2) The BSD people have a patch for CVS which allows the verifymsg script to change the log message after the user sees it but before it gets into the RCS files. This may do what you need. There should be a link in the mail archives. 3) I have a patch I wrote myself that adds a templatefilterinfo admin file which allows the rcsinfo template to be edited before it is presented to the user, but it doesn't work properly in client/server mode yet. You're welcome to try and fix it. If you ask nicely, I'll post the link again. :) Derek ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Re: Does pre-commit script with a remote server?
My real issue is as follows: I want to protect $CVSROOT from being modified since it is NFS mounted. I'd like to set up a client/server with :pserver: method. When I tested the :pserver:, I found that editinfo is bypassed and commitinfo is not executed prior to the interactive cvs log editting. The only way to make the commitinfo work right is to use -m option, which is not good enough since users want to edit cvs log interactively with a pre-defined template. Any suggestions? Howard - Original Message - From: "Derek R. Price" [EMAIL PROTECTED] To: "Howard Zhou" [EMAIL PROTECTED] Cc: "CVS Info" [EMAIL PROTECTED] Sent: Thursday, January 11, 2001 6:02 AM Subject: Re: Does pre-commit script with a remote server? Howard Zhou wrote: Now if I use :pserver: method, I still have the same problem. Is :pserver: using rsh too? Nope, but I didn't understand the rest of your question. As for the first question, I have three possible solutions: 1) Set the CVSEDITOR variable on all clients to a script which edits the log message before calling the standard EDITOR on it for the user. This would all happen on the client, of course, so usually brings up portability issues. 2) The BSD people have a patch for CVS which allows the verifymsg script to change the log message after the user sees it but before it gets into the RCS files. This may do what you need. There should be a link in the mail archives. 3) I have a patch I wrote myself that adds a templatefilterinfo admin file which allows the rcsinfo template to be edited before it is presented to the user, but it doesn't work properly in client/server mode yet. You're welcome to try and fix it. If you ask nicely, I'll post the link again. :) Derek -- Derek Price CVS Solutions Architect http://CVSHome.org ) mailto:[EMAIL PROTECTED] OpenAvenue ( http://OpenAvenue.com ) -- I used to think people were crazy to get tattoos. Nowadays, I envy them that clarity of thought. There was at least one point in their lives when they thought they knew what they were doing. They could walk into a tattoo parlor and say, "I want a big old pig, in red and black, with flames shooting out of its nose! And I want it right there! That's who I am!" ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Re: Does pre-commit script with a remote server?
The only thing I can suggest is one of the patches I already mentioned. Derek -- Derek Price CVS Solutions Architect ( http://CVSHome.org ) mailto:[EMAIL PROTECTED] OpenAvenue ( http://OpenAvenue.com ) -- Tis better to be thought a fool, than to open your mouth and remove all doubt. Howard Zhou wrote: My real issue is as follows: I want to protect $CVSROOT from being modified since it is NFS mounted. I'd like to set up a client/server with :pserver: method. When I tested the :pserver:, I found that editinfo is bypassed and commitinfo is not executed prior to the interactive cvs log editting. The only way to make the commitinfo work right is to use -m option, which is not good enough since users want to edit cvs log interactively with a pre-defined template. Any suggestions? Howard - Original Message - From: "Derek R. Price" [EMAIL PROTECTED] To: "Howard Zhou" [EMAIL PROTECTED] Cc: "CVS Info" [EMAIL PROTECTED] Sent: Thursday, January 11, 2001 6:02 AM Subject: Re: Does pre-commit script with a remote server? Howard Zhou wrote: Now if I use :pserver: method, I still have the same problem. Is :pserver: using rsh too? Nope, but I didn't understand the rest of your question. As for the first question, I have three possible solutions: 1) Set the CVSEDITOR variable on all clients to a script which edits the log message before calling the standard EDITOR on it for the user. This would all happen on the client, of course, so usually brings up portability issues. 2) The BSD people have a patch for CVS which allows the verifymsg script to change the log message after the user sees it but before it gets into the RCS files. This may do what you need. There should be a link in the mail archives. 3) I have a patch I wrote myself that adds a templatefilterinfo admin file which allows the rcsinfo template to be edited before it is presented to the user, but it doesn't work properly in client/server mode yet. You're welcome to try and fix it. If you ask nicely, I'll post the link again. :) Derek ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Re: Does pre-commit script with a remote server?
Howard Zhou wrote: Now if I use :pserver: method, I still have the same problem. Is :pserver: using rsh too? Nope, but I didn't understand the rest of your question. As for the first question, I have three possible solutions: 1) Set the CVSEDITOR variable on all clients to a script which edits the log message before calling the standard EDITOR on it for the user. This would all happen on the client, of course, so usually brings up portability issues. 2) The BSD people have a patch for CVS which allows the verifymsg script to change the log message after the user sees it but before it gets into the RCS files. This may do what you need. There should be a link in the mail archives. 3) I have a patch I wrote myself that adds a templatefilterinfo admin file which allows the rcsinfo template to be edited before it is presented to the user, but it doesn't work properly in client/server mode yet. You're welcome to try and fix it. If you ask nicely, I'll post the link again. :) Derek -- Derek Price CVS Solutions Architect ( http://CVSHome.org ) mailto:[EMAIL PROTECTED] OpenAvenue ( http://OpenAvenue.com ) -- I used to think people were crazy to get tattoos. Nowadays, I envy them that clarity of thought. There was at least one point in their lives when they thought they knew what they were doing. They could walk into a tattoo parlor and say, "I want a big old pig, in red and black, with flames shooting out of its nose! And I want it right there! That's who I am!" ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Re: Does pre-commit script with a remote server?
The issue with this problem is that commitinfo and editinfo scripts are not executed until you finish editing cvs log interactively. That's probably because :ext: method uses rsh. Now if I use :pserver: method, I still have the same problem. Is :pserver: using rsh too? Howard - Original Message - From: "Howard Zhou" [EMAIL PROTECTED] To: "CVS Info" [EMAIL PROTECTED] Sent: Wednesday, January 03, 2001 12:09 AM Subject: Does pre-commit script with a remote server? I am trying to write a pre-commit script to insert a change id to cvs log. The commitlog generates the change id while editlog inserts the change it to a temporary template file in /tmp dir. They all work fine if $CVSROOT is local to a client machine. However, if I set $CVSROOT to :ext:host:/cvsroot, the commitinfo and editinfo don't work in the order expected. It seems to be that all interactive command such as stdin commands are ignored. The commitinfo was not executed prior to editting CVS log as it's supposed to be. Is there any way around this problem? BTW, the commitinfo script writes the change id info to a file and editinfo uses this file to transfer the change id info to the /tmp template file. I really appreciate if you can shed some light on this issue. Thanks. Howard ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Does pre-commit script with a remote server?
I am trying to write a pre-commit script to insert a change id to cvs log. The commitlog generates the change id while editlog inserts the change it to a temporary template file in /tmp dir. They all work fine if $CVSROOT is local to a client machine. However, if I set $CVSROOT to :ext:host:/cvsroot, the commitinfo and editinfo don't work in the order expected. It seems to be that all interactive command such as stdin commands are ignored. The commitinfo was not executed prior to editting CVS log as it's supposed to be. Is there any way around this problem? BTW, the commitinfo script writes the change id info to a file and editinfo uses this file to transfer the change id info to the /tmp template file. I really appreciate if you can shed some light on this issue. Thanks. Howard ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
Re: Does pre-commit script with a remote server?
Howard Zhou wrote: I am trying to write a pre-commit script to insert a change id to cvs log. Precommit scripts can't affect the file being committed, if by "precommit" you mean "fired by the commitinfo admin file". Cheers, Laird -- W: [EMAIL PROTECTED] / P: [EMAIL PROTECTED] http://www.amherst.edu/~ljnelson/ Good, cheap, fast: pick two. ___ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs