Re: Any consequences over removing a subdir permanently?
S I wrote: Thank you as always. Do you think though that deleting a dir and later retrieving a dead file would confuse the dead file where to implant itself? Well ... if you rm -fr'd the directory structure the file was in, you'll likely be confused yourself, because not only is there no dead file to retrieve but there is no attic. :) This is the reason it is _usually_ a _very_ BAD idea to remove things from the repository. Because when they are gone from the version control file system / database they are GONE, NOT COMING BACK, DESTROYED. I have a dummy repository and I'm going to try this to find out the outcome. That is good practice, keep it up. :) The subdirs I speak of are about 5 years old and don't think anyone would care. Be SURE, don't just think it. 8O We have restructured our code so many times and we may soon port over to a completely clean repository without its history. So in our case it shouldn't matter but I see your point about NOT exercising this. A middle ground might be: 1) tell everyone to commit all changes they have currently. 2) backup to cold storage media. 3) copy the CVS tree to a new location. 4) do a checkout from the new location and then do a `cvs watch on -R` against that checkout. 5) find and mark all the directories in the new copies location read only, and setup a lockdir for it so people can do readonly checkouts. (lock it down) 6) again backup to cold storage media. 7) remove the unused directories. This should leave you with a copy in the new location for people who need to know the ancient history, a copy to recover from if you hit enter on the rm in the wrong directory, and a smaller repo but with all the history since the each of the files were last restructured. Thanks. :) SNIP -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Any consequences over removing a subdir permanently?
Todd Denniston wrote: Clerity demands I respond to my own post. sorry. S I wrote: SNIP We have restructured our code so many times and we may soon port over to a completely clean repository without its history. So in our case it shouldn't matter but I see your point about NOT exercising this. A middle ground might be: 1) tell everyone to commit all changes they have currently. 2) backup to cold storage media. 3) copy the CVS tree to a new location. 4) do a checkout from the new location and then do a `cvs watch on -R` against that checkout. 5) find and mark all the directories in the new copies location read only, and setup a lockdir for it so people can do readonly checkouts. (lock it down) 6) again backup to cold storage media. SNIP 7) remove the unused directories, in the original (and still current) version of the repo, i.e., no one has to change their CVSROOT values. 8) if people still have sand boxes from before there may be some difficulty in doing updates and such, have them check that `cvs update -dP` command works with out error at a minimum. If your really sure just have them remove all their old sandboxes and start fresh. This should leave you with a copy in the new location for people who need to know the ancient history, a copy to recover from if you hit enter on the rm in the wrong directory, and a smaller repo but with all the history since the each of the files were last restructured. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Smart CVS
Liquidchild wrote: The reason i am using locks is because the files are XML, and as far as i know when CVS trys to merge XML it can result in invalid XML. I do however remember on previous uses of CVS the option to check stuff out as read only. However I cannot find that option now, this option was on the WinCvs client I am sure. I have not searched the net for problems with XML and CVS, but I thought XML was text, and as such should be reasonably merge-able by CVS ... that is unless your XML contains binary blobs like what MS Word kicks out. I assume then that you have either seen some problems yourself or read about it on line? Do i require to do some sort of configuration on the Cvs Server to allow the locking of files? I have read the above manual, well actually the manual for 1.11.17, as this is what I am using, it just seems to describe the difference between reserved and normal edits. In most situations, with reasonable developers, reserved edits and watch notification, can take the place of locking. i.e., you can do `cvs watch on *XML` [1] setup the notify administrative file and have the developers do `cvs watch add -a all file_they_work_on` then have them do `cvs edit filename` anytime they need to edit a file. Then here is the hard part, if they get a notification that another user has begun editing a file, they should contact that user and negotiate with them the time needed to finish their own edits. You might also want to look at the 1.12.x series, IIRC it has the advisory lock patch in it, and can stop the edit from working, if there is someone else editing the file, unless the developer knowingly bypasses the edit with an option. i.e., it is a stronger (extended) form of the 'cvs watch on` + `cvs edit` commands. I have been able to check out the repository but then had to manually tell it to unedit all the files, so they appeared as locked. Had you already done `cvs watch on` on the files? if you had then they should have come as read-only (locked). Then when i commit a change to a file it just leaves it as editable, were in previous use of cvs it would go back to being uneditable, i.e read only. Then I would expect you had not yet done a `cvs watch on` on those files, the manual indicates [2] : the cvs commit command, which checks in your changes and returns the watched files to their usual read-only state Does anyone know if i need to do something else that I may have not done. See above and below. :) Thanks all for the extended help S. [1] https://www.cvshome.org/docs/manual/cvs-1.11.20/cvs_10.html#SEC88 [2] https://www.cvshome.org/docs/manual/cvs-1.11.20/cvs_10.html#SEC91 -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Inaccurate documentation re cvs tag
Ming Kin Lai wrote: Sec 4.5 of 1.11.20 cederqvist says: running the cvs tag command without arguments causes CVS to select the revisions which are checked out in the current working directory. ... One potentially aspect of the fact that cvs tag operates on the repository is that you are tagging the checked-in revisions, which may differ from locally modified files ... I think it is somewhat confusing, especially to new users. At first it talks about a checked-out revision, then it talks about a checked-in revision. Well, I understand they mean the same, at least in some cases; but it is not quite accurate and probably confusing. 1. The problem with checked out is that it does not literally mean checked out. Actually it does literally mean the version which was checked out, not what you currently have (i.e., not possible local mods). Suppose I check out a file with revision 1.1, modify it and commit it, so now I have revision 1.2 in my working directory. Well this commit does do essentially a checkout (actually update, which is why things like $Log:$ and $Id:$ get updated). I run cvs tag. And 1.2 gets tagged. Because you checked out (updated to) 1.2 by committing it. Literally 1.1 is the revision I checked out. I did not check out 1.2, unless commit implies check out - but I think it's better separate them; after all ci and co are two different commands. It was learned long ago that less confusion was created by cvs handling the immediate update, otherwise cvs would have a hard time being Concurrent Versions System, the command you imply are serial locking commands and CVS is a parallel merging system. Also, stating that a checked-out version is tagged may give the wrong impression that the user (unnecessarily) needs to do a cvs co before tagging. No the update makes it the checked out version, this is simply a misconception on your part. 2. The problem with checked in is that there may not be any check-in (cvs ci). Suppose I check out a file for the first time and without modifying it, run cvs tag. The one and only one revision gets tagged; but there is never any check-in. If you checked it out there was a check in, which created 1.1. Stating that a checked-in revision is tagged may give the wrong impression that the user (unnecessarily) needs to do a cvs ci before tagging. Anyone agrees or disagrees? Yes, see above. Incidentally, the entry for tag in Appendix B (page 132) says Add a symbolic tag to checked out version. I think checked out need to be re-worded, and version probably should be revision. In most cases people tag an entire baseline (which is also the better practice), which has a version, but also has many files which have revisions. It seems clear as written from here. Finally there are a number of places in cederqvist that use the phase checked out. I am not sure all mean literally checked out. For example, Sec 1.3.4 says diff compare[s] the version (revision?) of driver.c that you checked out with your working copy. Again, suppose I check out a file with revision 1.1, modify it and commit it, so now I have revision 1.2 in my working directory. I run cvs diff. There is no difference. The comparison is NOT between 1.1 (the last revision I checked out (using cvs co)) see above information about your misunderstanding because cvs commit does an update to get you synchronized with what is in the baseline after commit. and 1.2. I think the phase checked out should be used with care. It is, you simply have a little learning to do. Ming Kin Lai -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Annotate of Log output wrong
Ming Kin Lai wrote: This is to continue the discussion of the thread with the same subject that started on Dec 7, 2004. The original discussion appeared to focus on the expansion of the $Log$ keyword both in the file and as output by the cvs annotate command (under version 1.11.17); but I think other keywords such as $Id$ have the same problem. I am running CVS version 1.11.6 on Solaris. After I committed a file that contains some keywords, (I did not perform a checkout or update after that,) the file in my working directory shows the following: See my reply to your 'Inaccurate documentation re cvs tag'. commit does an update to keep things consistent between your sandbox and the repo when it gets done. BTW I think you should stop thinking of ci and co, which are RCS commands, and start thinking in terms of checkin and checkout which are CVS commands, and imply a bit more work. (although CVS will happily let you abbreviate checkin with ci and checkout with co, do not try to abbreviate the concepts.) SNIP Annotations for compiler.c *** 1.3 (mingl12-Jul-05): $Id: compiler.c,v 1.2 2005/07/12 02:32:17 mingl Exp $ 1.3 (mingl12-Jul-05): this is $Date: 2005/07/12 02:32:17 $ 1.2 (mingl12-Jul-05): $Log: compiler.c,v $ SNIP From the leftmost column, it is obvious that the latest revision is 1.3; however, the keywords expand to only revision 1.2. 1. Todd Denniston states that If I Recall Correctly, $Log:$ is expanded on checkout, so the last (chronological) log entry seen in a Log in a sandbox has not yet been checked into CVS. Therefore, the repository knows nothing about it, and can not annotate what to it does not exist. (Larry Jones says similar thing: the $Log$ keyword (not command) is expanded by checkout/update.) I think the first half of the sentence is inaccurate: apparently the keywords are expanded (in the working file) upon commitment (check-in), i.e. no subsequent checkout is needed. No you misinterpret the situation, because commit syncs your sandbox with the repository after it does the commit. (What Todd probably meant is: $Log$ is expanded in the ,v file on checkout. - But see my Points 2 and 3 below.) And I think check in and check out should not be confused. ci and co are two separate commands, aren't they? Yes and NO. co can be performed separate, but in a Concurrent situation, a ci must be followed with a co to have your sandbox in sync, CVS handles it for you. (some where around here I expect Larry, Derek or Greg to hit me with a clue stick.) The keywords are expanded in the working file on checkin, not checkout. In fact, Section 12 of the cederqvist 1.11.20 manual states Embedded strings of the form $keyword$ ... in a file are replaced ... whenever you obtain a new revision of the file. The way I interpret the phase whenever you obtain a new revision of the file is in a working file that has a new revision number. So, when you commit, you obtain a new revision. You don't need to check out to obtain a new revision. correct you obtain the new revision because commit updates your local directory to re-expand the RCS keywords. Now, what annotate shows is another question. Section A.7.1 of cederqvist says [annotate] print[s] the head revision of the trunk, together with information on the last modification for each line. I will discuss that in Point 4. SNIP 3. Todd says the log entry not yet been checked into CVS. I think that is the implementation detail that users should not be concerned with. From users' perspective, all cederqvist in effect says is After a local file with a keyword is checked in, the keyword in that file is expanded to reflect the new revision information. Maybe Todd knows that the keyword is actually not expanded in the ,v file at the time of the check-in so the ,v file does not have the keyword expanded to reflect the new revision information. But I am hesistant to use some undocumented implementation details, rather than cederqvist, to explain the program behavior. Actually, it is a known thing that the RCS keywords cause problems / misunderstandings and it is expected that if you really want to use them you will do enough reading and experimenting to understand their intricate problems in a concurrent environment, i.e., they were made to be used in RCS not CVS and their behavior because of the RCS history makes them act kind of badly under CVS. 4. cederqvist says annotate should print the last modification on each line (Sec A.7.1). It does not say whether the modification is in respect to the local file or the ,v file. partially agreed, the manual does indicate that it is printing the head revision of the trunk which implies the version from the repository. I am not certain (someone needs to test) if you are on a branch if annotate does the branch instead of the trunk. assuming annotate will show branch information if you
Re: How to share files between CVS projects?
Adam Lipscombe wrote: Folks, Apologies if this question is a no-brainer. I have basic CVS knowledge but not more. I have 2 versions of source code. In each version only a very few files are different - about 5 in total out of a total of @950. What I want to do is to share the files that are not different to be shared between projects, and to maintain separate versions of the 5 differing files. 1) If you mean that you have two projects that use the same source, however each has some files with specific mods in just a few of the files and only those changes can not share between the two, I would think what you would want is to branch (cvs tag -b tagname). the further choice would be, do you do development on the trunk in a generic manner and have two branches and update the branches only when the generic set has stabilized. or do you have one of the projects be the main one (on the trunk) and only update the other one on the branch when the main one stabilizes, i.e., Third Party Codeline[2]. I suggest look at the ACME project [1] for ideas. [1] http://www.cmcrossroads.com/bradapp/acme/ http://www.cmcrossroads.com/bradapp/acme/branching/ [2] http://www.cmcrossroads.com/bradapp/acme/branching/branch-structs.html#ThirdPartyLine 2) If on the other hand you have a situation where each project essentially use a library of other code and have completely different non common files, then having the non common in their own sub repositories and using ampersand modules would be a good idea. In VSS I think one can do this by pinning the files. But I am not sure how to achieve this with CVS. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Smart CVS
Liquidchild wrote: Guys Finally got it all working! woho! Great. Only question I have left is can you make files read only in smartCVS so that users have to select the file for editing first, to stop other users being able to edit the same file at the same time? Canonical answer: Why would you want to do that? Are you working with some strange binary format? Full answer: If you really think you wan to do that, read the manual section 10 Multiple developers[1], the answers you seek are there. [1] https://www.cvshome.org/docs/manual/cvs-1.11.20/cvs_10.html#SEC82 -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: How do I get a barebone stripped off list of files changed between2 builds?
S I wrote: Hi I'm trying to get a stripped down list of files modified and committed between 2 builds or a build and my working folder in CVS. I would just like to see the path/filename only. Compare it to a list received from the developers to verify we're in synch, do the build and deliver their corresponding .class files. Many of the CVS commands (log, tag, history, diff, etc) generate way more than I need. Do I need to write scripts that parse out what I need? Is there a cvs command to do this so I can avoid scripting? For instance I did the following command: cvs history -ac -D yesterday cvsHist1.txt And this is yet the closest I've got to what I needed. I am usually happy with what cvs2cl gives me. I do however have a script which does: PREVIOUS_DATE=`ls -l --full-time $OUTFILE 2/dev/null| \ awk '{print $7 \ \ $8 \ \ $9 \ \ $10}'` cvs his -calD $PREVIOUS_DATE |sort -rb -k 7,7 |\ sort -mub -k 7,7|sort -b -k 8,8 $TMP_FILE the sorts get rid of redundant information to hopefully just show the last change of each file. $OUTFILE is a file that was created when the script was last ran, and well I expect you know what $TMP_FILE is. It still has a lot of information in it, but I find that info useful, I believe if you take $TMP_FILE and run it through the following awk it will have just what you want: cat $TMP_FILE|awk '{print $8 / $7 }' as I indicated I only use it to see what has changed between runs, more of a disaster recovery tool than anything (and yes I have _used it for that_), now that I have cvs2cl and am using CVS vs SCCS. Your biggest trick is either creating a file with the date you want, or building up the $PREVIOUS_DATE string by hand. Thanks Steve -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Pbm updating sandbox
Muriel Delaveau wrote: Hello, An user has put a new source in the repository. But other users can't even see the new source when updating their sandbox even which tkcvs. What can be the reason ? Thanks for your help. Assumption, the user who put the new source in the repository, did so by using `cvs add file` and `cvs commit file`, and there is a ,v for the file in the repository. Q1) is the new file in a new directory, or a directory that never had any thing in it before? Reason they don't see it: their sandbox has been optimized to work on what was known at the time of their checkout, i.e., don't waste time looking for things we did not find the first time. Fix, have every one else `cvs update -dP`. Q2) is the user who put the new source in the repository, working on a branch, or a different branch from the rest of the users (the trunk can be considered a branch for consideration of this question)? Reason they don't see it: branches exist for work separation and segregation of changes so one group will not affect another until they are ready to be affected. Fix, read the CVS manual on merging changes from branch to branch. (-j options to update or checkout, IIRC) -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Locking CVS
S I wrote: Hi everyone, I'm planning to lock cvs today getting ready for our release. I realize with certain version control software nowadays you don't have to lock the repo and the developers can continue with their work. However, we're imposing and enforcing a few days for freeze and to regroup. Another method would be to tag and then branch, decide whether the trunk or branch is where you will host the release, and use cvs_acls to lock down the trunk/branch for release work only. look at ACME [2] for ideas. Our repository resides on a linux box with :pserver method access from WinXP CVS DOS and Tortoise clients. Could I just lock the repo by executing cvs admin -l or -L or do I have to download some perl module to accomplish this? I need to lock our CVS repository today. Three projects reside in the repository, is it possible to lock them selectively or would admin -l lock the entire repo? There are a few ways I think you could go at it. If you don't even want anyone reading from the repo, you could temporarily remove it's allow-root option from [x]inetd.conf.(assumes the three projects have different roots in [x]inetd.conf) if you are ONLY accessing the repo via pserver, the reader / writer [1] files could do it for you.(assumes the three projects have different roots in [x]inetd.conf, OR that none of the developers work on multiple projects) if you want fine grain control, look at using cvs_acl, from the distribution contrib directory, as a commitinfo script. [1] https://www.cvshome.org/docs/manual/cvs-1.11.20/cvs_2.html#SEC36 [2] http://www.cmcrossroads.com/bradapp/acme/ http://www.cmcrossroads.com/bradapp/acme/branching/ -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: cannot open /nonexistant/.cvsignore: Permission denied
Boris Landa wrote: Hello Colleagues, It's my second posting on the same issue. I am relatively new to CVS and I would really appreciate if somebody could help me to understand the root cause of the problem. I am using CVS version 1.11.17 for both client and server. My server is in Oregon. My client is in California. It runs on a PC under Windows XP using CYGWIN_NT-5.1 1.5.13(0.122/4/2) 2005-03-01 11:01. CVS works fine for me. However, every time I do a check in I get an additional error message: cvs server: cannot open /nonexistant/.cvsignore: Permission denied SNIP I searched and have not found any directory with nonexistant name. I searched Internet and your archives. This message was not found. Because of cygwin, you get a different message than is normally found. the canonical message is cvs server: cannot open /root/.cvsignore: Permission denied If you or someone else feels up to it, the manual should probably be updated to include cvs server: cannot open /nonexistant/.cvsignore: Permission denied in all the places you find the above message. And here is some reading on the subject. http://lists.gnu.org/archive/cgi-bin/namazu.cgi?query=%2Froot%2F.cvsignore+and+jonessubmit=Search%21idxname=info-cvsmax=20result=normalsort=score Also in: https://www.cvshome.org/docs/manual/cvs-1.11.20/cvs_21.html#SEC188 a little ways down we see: cvs server: cannot open /root/.cvsignore: Permission denied cvs [server aborted]: can't chdir(/root): Permission denied See Trouble making a connection to a CVS server. - https://www.cvshome.org/docs/manual/cvs-1.11.20/cvs_21.html#SEC189 apparently then you probably haven't specified `-f' in `inetd.conf'. Hope this helps. I would really appreciate if anybody knows where these messages come from and why. Thank you in advance. Boris -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: CVS and SSH V2
Liquidchild wrote: Guys, I am trying to setup CVS and SmartCVS to allow communication with each other. smartcvs has a mailing list which might help more. http://www.smartcvs.com/smartcvs/community.html I did not set up the CVS server, our admin team has done that. So here is what i have been doing: I have installed SmartCVS and entered the following into for the connection string: :ext:[EMAIL PROTECTED]:22\appl\cvs\ole using public/private key auth, with the private key file pointed to and the public copied into authorized_keys. When I test the connection using smart cvs it seems fine, then when i click next to enter a modules i get an io error with details null. with regular cvs the troubleshooting starts with: https://www.cvshome.org/docs/manual/cvs-1.11.20/cvs_21.html#SEC189 in your case I think the command you want to try is something like: ssh [EMAIL PROTECTED] cvs -v or ssh -l gtx 10.10.115.11 cvs -v I am really hitting a brick wall with this stuff I have never had to setup CVS with SSH before, I have even tried previous clients of WinCVS and get similiar setup, again I seem to be able to login to the server, as its return command ran with 0, but when i try to checkout the module i get a ksh: cvs not found error This looks like the environment of the server does not know where to find the cvs executable, you might try smartcvs's equivalent of defining CVS_SERVER giving it the full path the the cvs executable the admin staff want you to use. This would imply its not loading the enviroment variables hences cvs is not on the path, which i think it does not do for ssh, ie does not load the .profile, but how do you get round this. If indeed this is (a) problem. you could try this (assuming the server is running a shell that accepts bash scripts): ssh [EMAIL PROTECTED] echo $PATH ssh [EMAIL PROTECTED] . /etc/profile;. ~/.profile;echo $PATH ssh [EMAIL PROTECTED] . /etc/profile;. ~/.profile;cvs -v I am unsure if i am required to do anything on the client machine either, i.e set any enviroment variables. As you can see any help would be appreciated, and if anyone has done this before i would very much like to talk to them! Please keep responses to me on the mailing list, thanks. This is not intended to be direction to a gov contractor to do anything, just a listing of information which _may_ answer the question which was asked. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the WarfighterThe opinions expressed here are not sanctioned by and do not necessarily represent those of my employer. ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Newbie question
Madhavi Thottempudi wrote: Hello everyone! I am trying to install CVS. Before starting I want to check few things and hopefully U guys have answers. My questions are: 1. CVS (linux) vs CVSNT (windows) - Which one is better performance wise, stability and reliability wise? As I haven't started the project yet, I can go either way. Please suggest me which is better to use or if it makes no difference. I believe prior messages on the list have indicated that if you are doing some dev on Unix and some dev on MS, having the server on Unix is the better option. I suggest you search the list[1] about unix vs windows server. as for CVS vs CVSNT (which can also be installed on Unix), if you will not be using any of the extended features CVSNT offers, CVS comes with most linux distributions and is probably already installed so you can just begin using it. 2. What are system requirements on which we install CVS server? manual section 2.9.1, Server requirements [2] [1] http://lists.gnu.org/archive/html/info-cvs/ [2] https://www.cvshome.org/docs/manual/cvs-1.11.20/cvs_2.html#SEC27 -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Problem with admin privileges
Julian Opificius wrote: SNIP Thanks for this input! The problem is that each of these articles achieve their intended results by restricting commands to cvs. I don't want to do that: my CVS users are my engineering department members with legitimate logins. It's only access to the CVS repositories that I have to control. PServer through ssh does exactly what I want in that regard. Big question: What do you think using :pserver: at this point, gain you and your users over just :ext: over ssh? Because they already have (and will continue to have) valid system shell login, from here it only looks like more admin trouble to setup and maintain pserver, plus it probably reduces the authentication or authorization you had from the ssh and system level, especially when a new pserver hole comes out. I have solved most of my admin problem by running admin users as their themselves using $CVSROOT/CVSROOT/passwd entries like this: username:password rather than as the global cvs user: username:password:cvs SNIP Why use the $CVSROOT/CVSROOT/passwd at all, just use the system authentication fallback, it SHOULD make your life easier because only the system level auth files need scrubbed when someone leaves not the system level AND all the cvs repos. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Check out fails
Rancier, Jeff wrote: Responses below ... | Rancier, Jeff wrote: | | OK. I took your advice and created the repository on | Solaris 8. Every | seemed to go smoothly. When I attempt to import some, I | get the following: | | Assumption 1) all commands you are executing are being | executed on the SUN | machine, not in cygwin. Yes. SNIP Concurrent Versions System (CVS) 1.11.19 (client/server) It seems like it's just the import command. I got around it by creating the directory structure in $CVSROOT, then check it out, copy all my files to it, and add/ci all the file. Thanks for the help Todd. I replied in case someone wanted to pursue this further. SNIP Jeff, would you be up for executing the following and reporting back the results if it dies? If it does not maybe mod your inetd to allowroot=/tmp/test/rep/ and replace the :fork: with :pserver: . Or are you just happy with the way things are working now? :) I don't see any problems under FedoraCore3 with (CVS) 1.11.17 nor under Solaris 2.6 with Client:(CVS) 1.11.9 Server:(CVS) 1.11.11 with both :fork: and :pserver: note: script is the script command that will record your input and the command outputs to the file listed just after the call to script. script SeeCVS1.11.19_die_onSUNfork.txt export PS1=$ cd /tmp mkdir test/rep -p mkdir test/work -p cd test export CVSROOT=:fork:/tmp/test/rep/ #pserver needs cvs login, #edit your password out of report cvs init mkdir indat cd indat date f1;date f2;date f3 cvs import -m Imported sources source test start cvs version rm /tmp/test/rep/source/ -fr mkdir d1/d2/d3 -p date d1/fd1 date d1/d2/fd2 date d1/d2/d3/fd3 cvs import -m Imported sources source test start rm /tmp/test/rep/source/ -fr rm f* cvs import -m Imported sources source test start exit cat SeeCVS1.11.19_die_onSUNfork.txt | tr -d \r tmpfile mv tmpfile SeeCVS1.11.19_die_onSUNfork.txt -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: merging only directory
ichai wrote: Hello, I have a little problem when configuring CVS. when I checkout a module, I get just the directory tree but not any file in it. what I have misconfigured. thanks for your help Ichai Assumption 1) there are ',v' files in your repository directory structure, i.e., you have either added and committed some files or imported some files. Please show us the exact command line you used to do the checkout, and output. My bet, based on the current information, would be that you specified a tag which either does not apply to any of the files or only to dead revisions. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Check out fails
Rancier, Jeff wrote: OK. I took your advice and created the repository on Solaris 8. Every seemed to go smoothly. When I attempt to import some, I get the following: Assumption 1) all commands you are executing are being executed on the SUN machine, not in cygwin. Assumption 2) you have already ran `cvs -d/usr/local/cvsroot init` prior to attempting the import (not sure if you can do the init through pserver, it may have to be local). Assumption 3) jrancier exists as a unix user on jrsun, and you can login in with that user name. Assumption 4) CVSROOT/passwd does not exist. Assumption 5) [x]inetd's configuration has been modified according to the CVS manual and restarted. Assumption 6) you got your cvs binary from some place reliable. Assumption 7) you have again followed the manual's troubleshooting guide[4]. (just checking:) cvs import -m Imported sources source test start cvs [import aborted]: received abort signal Which version of cvs does yours report itself (cvs --version) to be? I don't find the above message in my OLD copy of the source or in the current manual[3], and if we are going to look for it we need to know where to look. Based on what I've seen by googling, I tried the following: cvs -tn import -m Imported sources source test start - main loop with CVSROOT=/usr/local/cvsroot cvs [import aborted]: received abort signal - Lock_Cleanup() Ok looks reasonably the same, but we still don't know why the abort happens. cvs -d :pserver:[EMAIL PROTECTED]:/usr/local/cvsroot import -m Imported sources source test start Segmentation fault (core dumped) this be NOT good. please respond with more version info. I logged in fine, and cvs created my ~/.cvspass OK. Any ideas how to track this down. I installed cvs as a package, so I don't have the source to debug. Where did you get that package? Are you adverse to getting a tarball[1] from cvshome.org and compiling yourself, and/or try the one compiled up on cvshome[2]? Yes I am stumped. [1] https://ccvs.cvshome.org/servlets/ProjectDocumentList https://ccvs.cvshome.org/files/documents/19/863/cvs-1.11.20.tar.gz https://ccvs.cvshome.org/files/documents/19/862/cvs-1.11.20.tar.gz.sig [2] https://ccvs.cvshome.org/servlets/ProjectDocumentList?folderID=93expandFolder=93folderID=86 https://ccvs.cvshome.org/files/documents/19/912/cvs-1.11.20-SUN.gz [3] https://www.cvshome.org/docs/manual/cvs-1.11.20/cvs_21.html#SEC188 [4] https://www.cvshome.org/docs/manual/cvs-1.11.20/cvs_21.html#SEC189 -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: More keyword expansion questions
Jorgensen, Steven wrote: I have another keyword expansion related question. We are version controlling some Microsoft office documents along with our source code, and would like to use a keyword expansion in those documents so users can see what revision they are looking at. This can be setup, but you must know ahead of time the length the text will be. On another project that used pvcs, they solved this issue by specifying that any keywords when expanded would take a fix set of space, using blanks to make up for any characters that the keyword didn't need. Is there any way to do this in CVS? Thanks for any help. Steve Unless you are exporting those documents out to (real not MSextended) CSV or XML formats, so that they are now ascii text, those documents are binary, and you DO NOT want CVS mucking about in them. This is why when you add or import a word doc you give it the -kb flag. Short answer: NO. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Problem with admin privileges
Julian Opificius wrote: SNIP I have one more issue that affects my choice that I should have mentioned earlier. We are working in an FAA-regulated environment, and my CVS respository must be secure, in that nobody can impair the lifecycle data, and all accesses must be documented and controlled, i.e.e all accesses must be via the cvs server. This is why I chose pserver in the first place. How can I maintain this level of integrity without pserver: keeping the repository itself inaccessible, while allowing write access through cvs? If you search the list[1] and some of the howtos you should be able to figure out how to set ssh so that the users can only execute one command on the server, that command is 'cvs'. If you are already giving them SSH access to the machine, to then run pserver, you have less accountability (and/or authentication [I can never remember which]) than if you were just giving them SSH (with no restrictions on commands), because all logs show the cvs user they are mapped to instead of the real user name (look for some of Greg A. Woods posts[2] on these matters). [1] http://lists.gnu.org/archive/html/info-cvs/ A promising hit is http://lists.gnu.org/archive/html/info-cvs/2003-09/msg00203.html [2] http://lists.gnu.org/archive/cgi-bin/namazu.cgi?query=woods+AND+ssh+AND+pserveridxname=info-cvsmax=20result=normalsort=score -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
demime the list? (was Re: a newbie facing tagging problem)
[EMAIL PROTECTED] wrote: On Fri, 24 Jun 2005, Larry Jones wrote: [EMAIL PROTECTED] writes: This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. Please do not send MIME and/or HTML encrypted messages to the list. Plain text only, PLEASE! Why doesn't this list run something like the demime package to scrub HTML/MIME postings to this list, so people don't have to be bothered with worring about how their mail client is configured? http://scifi.squawk.com/demime.html I use it on the mailing list I manage, and it does a fair job of converting HTML to plain text and it does strip MIME attachments out of mail. Adam Speeking mostly for my self, translating the message text would not be a bad thing, but MIME ATTACMENTS are NEEDED so we can exchange code patches and scripts where the formatting of the data matter. i.e., if someone needs to send an attachment that is MIMEed, no problem, but the message body should be ASCII text. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: $Name$ causes files to be locally modified
Jorgensen, Steven wrote: I am having a problem with the $Name$ keyword expansion. We use a cvs tag to indicate when a file has moved beyond local testing stage, and is ready for general use by all developers (a release tag if you will) so that we can automate a update and build process to keep a working development version of our software compiled for all developers. So this tag is not permanently attached to a single revision, rather it moves as files get modified and tested by individual developers and released for use by other developers. The problem I'm having is when people use the $Name$ keyword in their file. In this tree of released software, it causes any file that contains a $Name$ keyword to be in a Locally Modified state when it is checked out. Where the only difference in the file is the fact that $Name$ is now filled out. The next time around we run an update on one of these files that changes, produces a conflict on the $Name$ line.For example: Myheader.h --- const char *tag = $Name$; Becomes on the next revision. Myheader.h Const char *tag = $Name: releasetag $; == Const char *tag = $Name: $; 1.2 Is there any way to prevent this from happening? On all the other keyword expansions $Id$, $Header$, etc, the keyword is expanded, but the file's status is Up-to-date. Thanks for any help. Steve Steven Jorgensen [EMAIL PROTECTED] Method #1, I think if the update is done with the '-kk' option it will stop the expansion. Method #2, tell your developers to stop using keywords and remove them where ever they find them. Method #3, do Method #2, and prevent the developers from checking files in to the baseline with the keywords inside, using a commitinfo script. ***begin simplistic commitinfo script (in bash)* #echo 0($0) 1($1) 2($2) 3($3) @($@) #get rid of path at the begining shift 1 #echo 0($0) 1($1) 2($2) 3($3) @($@) ARGS=$@ for i in $ARGS do # cat $i # exit 1 if grep -e \\$Name:\\$ -e \\$Id:\\$ $i then echo we no longer allow rcs keywords in the files, find your info in the echo cvs log from now on. exit 1 fi done ***end simplistic commitinfo script* BTW never written a commitinfo before, no warranties on the above script. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: CVS-Directories disappear when uploading per SFTP-Client
Dennis von Ferenczy wrote: Dennis von Ferenczy [EMAIL PROTECTED] wrote: SNIP Yes. Get a CVS client for your local machine and do your cvs commits from there behind the IDE's back. On the CVS server == web server, use the loginfo hook to keep a reference sandbox up to date, from which the web site operates. https://www.cvshome.org/docs/manual/cvs-1.11.20/cvs_18.html#SEC158 Thanks for your advice. But what will be the advantage? If I get you right, then I would have to do a commit every time I want to test the changes in my scripts, even if I have changed only a single line of code - and even if the code is buggy. OK, your above comment and your following comment seem to contradict each other. If you are testing locally (on your development box, using your sand box) why would you need to commit to the Production CVS/WEB server with a posibly broken change set? If you can currently test on your local box, then make your checkout to that location, do your mods and tests, then when you are done, and have a good change set, do a commit. What you have been doing with SFTP is half of what CVS will do for you, IF YOU LET IT. Right now I work locally, have the files mirrored using SSH (I'm not sure if cvs can use SSH) can immediately try my changes and if everything works as desired I do a commit. Like this I can always be sure, that code in the repository is actually code that is working correctly. If you re-read my message you should see that CVS can use ssh, but you have to tell CVS to use ssh instead of rsh by setting `export CVS_RSH=ssh` (in a unix environment, there is a way to do it with cvsnt as well, but you will need to read their wiki[1]). BTW I suggest you run `cvs version` in your windows environment and include its output with your next email, it might help us answer some of the questions you have. If I understand your workflow it goes something like this: 1) cvs checkout on server machine. 2) sftp checkout to dev machine. 3) make mods and test on dev machine. 4) sftp checkout back to server machine. 5) cvs commit changes on server machine. 6) sftp changes from dev machine to the production web server. If you setup cvs, using ssh, you should be able to change your workflow to: 1} cvs checkout on dev machine. 2} make mods and test on dev machine. 3} cvs commit changes on dev machine. 4} login to the production area, issue `cvs update`. if steps 3) and 2} involve ftping files to the production webserver, I suggest you spend time rereading Jim Hyslop's email. Best practices usually involve having a test 'server'/setup where you test all your work and when it is working then you commit tag, and then login to the production area and do a `cvs update` from a known working tag. [1] http://www.cvsnt.org/wiki -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Help Required in CVS
Please don't use HTML in email to mail lists. 1) I have migrated my cvs server to new box which is fedora core 3. I've copied all the modules as it is to new box. Now, I've setup several access control on modules. The problem is, I want to setup setgid bit on one module including all of its sub-directories (only). But if I use -R option it also applies setgid bit on all files . I know it'll not make any sense for files. But it's not possible for me to apply it on each and every sub directory as it's a big tree and having around 200 subdirectories. Please tell me how can apply setgid to directories only? instead of using chmod/chown -R, I use find+xargs `cd repo; find . -type d|xargs chmod g+swr` BTW if this was not something you just started doing, tar could have preserved the permissions you had on the repo in the past if you gave it the `-p` option while untaring. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Check out fails
Rancier, Jeff wrote: Yep. I downloaded, compiled, and installed for Solaris 8 on Sparc. The manpage for initgroups indicates the following: SNIP So, I SU'd and logged into the repository again and attempted to do a check out again, with the same error. Has anyone experience this on Solaris? Have a resolution? If you are using pserver you should not need to su, [x]inetd runs as root. I have a few questions to that may resolve some assumptions the rest of us are making. Q1) what username are you giving to CVS? Q2) on the solaris box what does the following command sequence yield? cat /etc/passwd /tmp/workoutuser; ypcat passwd /tmp/workoutuser ; \ grep username_from_Q1 /tmp/workoutuser Q3) on the solaris box what does the following command sequence yield? (Note that you may not want to give all the information output here, just what you believe may be involved.) cat /etc/group /tmp/workoutgroup ; \ ypcat group /tmp/workoutgroup; \ grep username_from_Q1 /tmp/workoutuser |awk -F: '{print $4}' /tmp/workoutgid grep -e `cat /tmp/workoutgid` \ -e username_from_Q1 /tmp/workoutgroup | \ awk -F: '{print $1 \t: $3}' Q4) on the solaris box what does the following command sequence yield? ls -l `echo $CVSROOT |awk -F: '{print $4}'` #assuming CVSROOT is set to pserver Thanks, Jeff | -Original Message- | From: Rod Macpherson [mailto:[EMAIL PROTECTED] | Sent: Monday, June 20, 2005 6:39 PM | To: Rancier, Jeff | Subject: RE: Check out fails | | | Did you successfully cvs login as the user in your CVSROOT string? | | -Original Message- | From: [EMAIL PROTECTED] | [mailto:[EMAIL PROTECTED] | On Behalf | Of Rancier, Jeff | Sent: Monday, June 20, 2005 2:48 PM | To: info-cvs@gnu.org | Subject: Check out fails | | When attempting to checkout a module using pserver, I get: | | initgroups failed: Invalid argument | | I googled this but didn't come up with anything helpful. | | Thanks, | Jeff -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Check out fails
Rancier, Jeff wrote: Thanks, I was using my username. The results from the ypcat: and what is that user name? so we can see if it matches the other output, is it your unix or MS username? ypcat: the domainname hasn't been set on this machine. I was making the assumption you were using NIS[+], seems I was wrong. skip all the ypcat calls I had. if you are using some other method of distributed authentication you will need to get its data in where I was doing the ypcat info, and I am assuming that the distributed auth uses the same format as the local auth files. Do I need to resolve this, or is just a method for troubleshooting? | -Original Message- | From: Todd Denniston [mailto:[EMAIL PROTECTED] | Sent: Tuesday, June 21, 2005 2:43 PM | To: Rancier, Jeff | Cc: info-cvs@gnu.org | Subject: Re: Check out fails SNIP | Q3) on the solaris box what does the following command | sequence yield? (Note | that you may not want to give all the information output | here, just what you | believe may be involved.) | cat /etc/group /tmp/workoutgroup ; \ | ypcat group /tmp/workoutgroup; \ | grep username_from_Q1 /tmp/workoutuser |awk -F: '{print $4}' | /tmp/workoutgid | SNIP note I did not wrap the above lines quite correctly, it should have been: cat /etc/group /tmp/workoutgroup ; \ grep username_from_Q1 /tmp/workoutuser | \ awk -F: '{print $4}' /tmp/workoutgid -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Check out fails
Larry Jones wrote: Todd Denniston writes: If you are using pserver you should not need to su, [x]inetd runs as root. But is it set up to run pserver as root? If not, you can only run as the user you're running pserver as -- any attempt to run as a different user will result in similar problems (although one would expect initgroups() to fail with EPERM rather than EINVAL). which would imply either the user name given was invalid (for where initgroups looked) or the additional group was. Does initgroups get pointed at CVSROOT/passwd if it exists? seeing this and his latest (21 Jun 2005 15:15:46) email I wonder if Jeff has jrancier in /usr/local/cvsroot/CVSROOT/passwd and in the correct format assuming his mention of CVSROOT/passwd means it exists. Jeff, sorry that was one of my other assumptions, CVSROOT/passwd did not exist. You should only need CVSROOT/passwd if you want to allow logins that are not system username logins. I will let you decide if you want to read up on pserver past and current insecurities and decide if having CVSROOT/passwd is something you really want. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: CVS-Directories disappear when uploading per SFTP-Client
Dennis von Ferenczy wrote: Let's see if I got this straight: 1) You start with the CVS/ directories present. 2) You run an SFTP client. 3) The CVS/directories are gone. Based on these facts, I would say that the SFTP client removed the directories. although this sounds rather unlikely to me, I will have a look at it and try another SFTP client (currently I am using WinSCP 3.7.5) May I ask why you are mixing CVS and sftp ? Why can't you have a CVS sandbox checked out on the machine from which you were uploading changes ? Instead of uploading, you would just cvs commit from there. The problem is the following: the cvs server is at the same time the web server where the application runs. So I have to checkout to the web server. But: My IDE runs locally on my machine and it needs the complete source code to enable it to use code completion etc. Between my local machine and the server there is only a DSL connection so I have the local changes mirrored to the web server (using the SFTP client) and then do the commit from the web server. Any better ideas? Try having your repository as a remote repo[2] using ssh as your :ext: method[1] with CVS for your local work and use ssh to login and do either `cvs update` or `cvs export` on your web server. Note that depending on your IDE you may be able to integrate it directly into calling CVS[3], if you have cvs setup as a remote repository. [1] https://www.cvshome.org/docs/manual/cvs-1.11.20/cvs_2.html#SEC28 i.e., set CVS_RSH=ssh #or your systems ssh client. note for the example shown I believe you will want to replace all rsh calls with ssh. [2] https://www.cvshome.org/docs/manual/cvs-1.11.20/cvs_2.html#SEC26 [3] http://www.cvsnt.org/wiki/ThirdPartyTools#head-fc58f200cea8e136e0be4d945fcee085858fe670 -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: rogue filename
Kelsang Norpel wrote: apologies if this comes through twice - I posted it before i subscribed to the mailinglist - so I'm not sure if it will get delivered... anyway here's the message: hi all when I set up my repository I had a stray file called '--no-recursion' that was a byproduct of a mistyped command. I have managed to remove this from my local list, but when I do a cvs commit it fails. How can I get rid of this file, since now I cannot do any more commits until this error is resolved. (can I even just make cvs 'forget' about his file altogether?) thanks, norpel Sounds like one of those EXTREMELY rare times where executing rm INSIDE the repository might be acceptable. note that you will probably have to escape the name because of the '--', it has been a while since I did it but I think your command would look something like: `rm ./--no-recursion` or from reading the rm man page `rm -- --no-recursion` -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Jindent
Zanabria, Moises wrote: Hi guys, I'm planning to run Our Java beautifier for the java files prior to committing, for that I need to run the Jindent, I know this could be done in the commitinfo file but I'm wondering if someone has been experienced this before and compare other thought. Thanks for any help. Moises. One thing to keep in mind, if you run the beautifier from within the commitinfo, only do so to test if the user did it, DO NOT put the output of the commitinfo beautifier into the repository. Reason: there are situations where the user's sand box no longer represents what is in CM when commitinfo beautifier data is put in the repository. This can lead to big confusion later on. So the commitinfo beautifier output should only be used as an input to diff, if diff indicates the files (the input file to beautifier and the output file from beautifier) given to it are different you exit with a non zero value and remind the user to run the beautifier. If the beautifier does not produce consistent output, stop using it. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: APIs for CVS
Ganapathi Hegde wrote: Hi, I need to integrate my tool with CVS. Is CVS gives any APIs? Or any otherway I need automate Check-In, Check-Out and Modify Thanks Regards, Ganapathi It is not clear if you are needing to integrate a tool you have built with CVS or one you have purchased. if you built it, then libcvs might be a good fit. if you have purchased it, there are some projects which have integrated cvs with Microsoft's SCC API, and other individual IDEs[1]. (I use the link to cvsnt because they are conveniently together there) [1] http://www.cvsnt.org/wiki/ThirdPartyTools#head-fc58f200cea8e136e0be4d945fcee085858fe670 -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Repository Access
Jim Hyslop wrote: S I wrote: Hi Class! Currently our CVS repo has 3 main separate projects running under it. By default when I create a new unix user; I give them access to the whole repository, however, some folks have been editing files in projects they were not supposed to. How can I ONLY and specifically create or modify the access rights privileges of only few specific people w/o wreaking havoc on the whole repository? And by default if they're not listed in that file then that means they have access to all projs? Is there a way? Use your operating system's access control system. Create a group for each project, and assign people to the groups they are allowed to be in. You will have to determine, in conjunction with your project leaders, which projects new users will have access to, by default. And, of course, get the managers and project leaders on side to explain that changing project files they haven't been assigned to will result in disciplinary action, up to and including termination. Although the above is what I also see as the best option, you *MAY* also be able to get some where in the middle using the cvs_acls script. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: CVS Lock Errors
S I wrote: Hi I have a 2nd question: A user using Tortoise window's client using :pserver to the linux box, executed the commad searching for tags. Not a specific tag but all tags in the repository. The command's been running for about 15 hours now, locking cvs, and not allowing anyone else to tag. We can update, commit, etc but not tag. And I do need to tag my build today. When I try to tag, I get the error msg that so so user has it locked. When I do -cvs admin -U, the server says waiting for the user's lock, etc. On the linux server side, I thought it was a ps process I could kill...but NONE! If it is a process that is still running, you should be able to find the process with `ps options |grep cvs` where options are either aux or ef. How can I kill this annoying process? I told him to delete all his working folders, reboot, and check out fresh and anew again. If he has done all the those things, which should be unnecessary, and the ps netted nothing ... some how cvs (on the server) was terminated while he was doing his tag search and was not given a chance to clean up after itself. Any suggestions? WARNING USE AT YOUR OWN RISK * WARNING USE AT YOUR OWN RISK * with all the above going on I would: 1) configure inetd or xinetd to not run any more cvs processes while I figure out what is going on. (and restart [x]inetd) 2) stop any currently running cvs instances (under linux on the server) `killall -SIGTERM cvs;echo nice kill done; \ sleep 60; killall -9 cvs; echo lets se-em survive that` #if you get any output before the nice kill done echo, #there were no cvs's running. 3) make a backup of the repository. 4) run Donald Sharp's check_cvs script to see what if anything is amiss with the repository 5) take note of and delete any locks check_cvs finds. 6) decide if you want to fix anything else check_cvs finds. 7) take some guesses as to how it got into this state (this seems like a very weird state to me, it would probably be good to let the mailing list know what version of cvs you are running on the server and Tortoise. have you ever had this search for all tags action work in the past?) 8) put the system back on line for cvs work. reconfigure [x]inetd to run cvs pserver and restart [x]inetd. 9) you might want to check and make sure everyone is accessing the repo through pserver or ext (to the same server machine) and that no one is accessing it using a filesystem method. WARNING USE AT YOUR OWN RISK * WARNING USE AT YOUR OWN RISK * -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: migration of CVS repositery from one machine to another
ravish agarwal wrote: Hi Todd, thanx for the information. But here is still a problem. The setup for cvs-1.11.1p1 is not available on the link you have specified. can you please give any other link where I can find that binary. Also please tell me if I need to do version upgrade which version is the best to install. and will there be any issues related to version upgrade of CVS. regards Ravish You really should upgrade because of the security upgrades. If you REALLY have to stick with 1.11.1p1 I believe you have two choices: 1) copy every thing from the cvs install you have on the old machine. 2) compile and install 1.11.1p1 from source, which you can get from the site[1]. But you really should go with a newer[3] version. On 6/13/05, Todd Denniston [EMAIL PROTECTED] wrote: ravish agarwal wrote: Hi all, We need to migrate CVS repositery from one HP-UX machine to another HP-UX machine. We are using cvs-1.11.1p1. For that I need to install that version on second machine. Now my queries are: 1. Where can I find the cvs-1.11.1p1 installable(binary) on HP-UX. Note that there have been many security (and other types of) fixes since cvs-1.11.1p1 it would be best to update. If you really don't want to compile CVS yourself, there appear to be hp binaries available on the website[3]. SNIP [1] https://ccvs.cvshome.org/servlets/ProjectDocumentList?folderID=193expandFolder=193folderID=77 [3] https://ccvs.cvshome.org/servlets/ProjectDocumentList?folderID=87expandFolder=87folderID=80 -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: migration of CVS repositery from one machine to another
Todd Denniston wrote: ravish agarwal wrote: Hi Todd, thanx for the information. But here is still a problem. The setup for cvs-1.11.1p1 is not available on the link you have specified. can you please give any other link where I can find that binary. Also please tell me if I need to do version upgrade which version is the best to install. and will there be any issues related to version upgrade of CVS. regards Ravish You really should upgrade because of the security upgrades. If you REALLY have to stick with 1.11.1p1 I believe you have two choices: 1) copy every thing from the cvs install you have on the old machine. 2) compile and install 1.11.1p1 from source, which you can get from the site[1]. But you really should go with a newer[3] version. Sorry, I missed responding part of the questions. cvs-1.11.20 is the latest stable, it should have the least (probably does not really have any) unexpected changes since cvs-1.11.1p1. Given your reluctance to upgrade at all 1.11.20 is your best choice. There should be no issues upgrading to 1.11.20 unless you were doing some behaviors which were contraindicated for a long time like: moving or deleting branch tags without -B. using Checkin.prog and Update.prog functionality. Method options (used by WinCVS CVS 1.12.7+) in CVSROOTs are ignored. see the following link for full details up through 1.11.19 https://ccvs.cvshome.org/files/documents/19/746/NEWS.1.11.19 Not sure why 1.11.20 is not listed in the archive directory. For a though upgrade it should not hurt to run `cvs init` to get any NEW config files. SNIP [1] https://ccvs.cvshome.org/servlets/ProjectDocumentList?folderID=193expandFolder=193folderID=77 [3] https://ccvs.cvshome.org/servlets/ProjectDocumentList?folderID=87expandFolder=87folderID=80 -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: migration of CVS repositery from one machine to another
ravish agarwal wrote: Hi all, We need to migrate CVS repositery from one HP-UX machine to another HP-UX machine. We are using cvs-1.11.1p1. For that I need to install that version on second machine. Now my queries are: 1. Where can I find the cvs-1.11.1p1 installable(binary) on HP-UX. Note that there have been many security (and other types of) fixes since cvs-1.11.1p1 it would be best to update. If you really don't want to compile CVS yourself, there appear to be hp binaries available on the website[3]. 2. what are the steps involved in migration of whole data from one machine to another. I dont want any change in the tags and history. thanx in advance moving a repo is covered in the manual[1]. basically: 0) get everyone to do a final checkin and then release their sandboxes (mainly prevent confusion later). 1) Back up the repository [2]. 2) take the backup to the other machine. 3) restore from backup. 4) configure the machine to serve cvs. 5) update everyone's CVSROOT values. regards Ravish [1] https://www.cvshome.org/docs/manual/cvs-1.11.20/cvs_2.html#SEC25 [2] https://www.cvshome.org/docs/manual/cvs-1.11.20/cvs_2.html#SEC24 [3] https://ccvs.cvshome.org/servlets/ProjectDocumentList?folderID=87expandFolder=87folderID=80 -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: add new module error - Terminated with fatal signal 11
Please avoid html email to a mailing list. Erik Andersson wrote: Hi I'm trying to add a new module, but recieves Terminated with fatal signal 11 Were using: Concurrent Versions System (CVS) 1.11.18 (client/server) with CVSACL Patch 1.2.1 (cvsacl.sourceforge.net) cvs -t add new_module - main loop with CVSROOT=:pserver:[EMAIL PROTECTED]/cvs/xxx - Connecting to server(192.168.100.100):2401 - Create_Admin (new_module, new_module, /cvs/xxx/new_module, , , 0, 0, 1) - unlink_file(new_module/CVS/Tag) - Create_Admin - rename(CVS/Entries.Backup,CVS/Entries) - unlink_file(CVS/Entries.Log) S- rename(CVS/Entries.Backup,CVS/Entries) S- unlink_file(CVS/Entries.Log) Terminated with fatal signal 11 - Lock_Cleanup() Anyone able to locate the problem? Best Regards / EA 1) did not know this patch existed, it seems interesting. you might check to see if cvs1.12.X has incorporated it. 2) They have a mailing list which might be of more help because this is not something which is normally in cvs. http://sourceforge.net/mailarchive/forum.php?forum=cvsacl-users 3) a quick poke into their bug tracker http://sourceforge.net/tracker/?atid=542794group_id=75057func=browse shows something probably related http://sourceforge.net/tracker/index.php?func=detailaid=1167700group_id=75057atid=542794 including a work around. 4) have you tried the contrib script cvs_acls? (note some recent updates have been made) 5) if you really like the effect of this patch have you looked into helping it's maintainers get the patch in a form that might be accepted into cvs1.12.X or cvs1.13.X (read the HACKING file that comes with the cvs source, make sure you update the documentation and the sanity checks). -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: File Checked Out Notification
Aaron Jackson wrote: Thanks for all the help on my previous problem, now I have a new one. Please change the threaded subject line then. I'm working on a system where multiple developers are working on many of the same projects and some of the files overlap. Is there some way to notify someone when they check out a file to tell them that another user has checked out that file recently and not checked in the changes or to set a flag that does the same thing. I might have to write an app to do this, but I'm really looking more for something that already exists that will work with a pserver set up to preform these notifications. They can be e-mail notices or Windows and linux broadcast messages. Thanks for any input, Yolan `cvs watch --help` you might also check cvs 1.12.10+ to see if the advisory locks (AKA Reserved Edits) feature[1] will do it for you? [1] https://www.cvshome.org/docs/manual/cvs-1.12.12/cvs_10.html#SEC84 -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Sorry about this newby question
Jim wrote: Ah, I didn't understand the part about the attic. I'm trying to build a system that will still work when the server is off-line. I'll have to scratch my head about that one. No doubt I did the init by mistake. Before I did it, it adding caused it to yell at me about CVSROOT and after it did not yell, so it seemed right to me, but as I said, I'm new. Thank you. Jim You might be interested in the following threads: http://lists.gnu.org/archive/html/info-cvs/2004-11/msg00191.html http://lists.gnu.org/archive/html/info-cvs/2004-11/msg00213.html http://lists.gnu.org/archive/html/info-cvs/2005-01/msg00244.html I would suggest consulting with Greg A. Woods to find out if he has began implementation, or has a coherent set (not spread across several emails) of specifications for the changes suggested in the above links. Also be aware the request in 2004-11/msg00191 for the ability to do the add -C thing, i.e., don't make it impossible. Over all I think this, removing cvs add's need to contact the server, is the FIRST step in giving cvs an off-line mode. (yes that means I have been thinking about it, but have not implemented anything.) -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Sorry about this newby question
Jim wrote: Hello, Coming back to re-read your original post ... I note some possible confusion. I apologize in advance for what is no doubt a foolish question, but I'd greatly appreciate it if a kind soul could set me straight. I've just checked out a CVS archive (I have Fedora Core 1 running on a laptop, if that matters). export CVSROOT=/usr/local/cvs mkdir $CVSROOT cd $CVSROOT cvs init You have just made a local (to your machine) cvs repository. cvs -d:pserver:[EMAIL PROTECTED] login cvs -z3 -d:pserver:[EMAIL PROTECTED] co modulename Now you try to checkout a module from another site INTO your repository. This is wrong!!!. There are two ways I can think of to do what I THINK you are attempting to do: 1) use a product like cvsup[1] to mirror the repository you want 2) do the checkout from the remote machine some where else and either convince cvs to ignore the CVS directories, or remove the CVS directories, and either import or add all the files into your local repository. method 1 may be easier to do and keep sanely synchronized, but if it (and I have not read the cvsup pages) requires a special program on the server you may be stuck with method 2. (I pasted in the instructions that were on the site, so I'm pretty sure I did it right.) Now I want to add a file to the local repository (by that I mean the sandbox). But I am on a laptop, not connected to the Internet. cd modulename cp /home/jim/newfilename . cvs add newfilename and the system objects unknown host ... (it names the host from which I checked out the material). This is because you have confused cvs by doing a checkout from an external repository into your local one. You should never do a checkout inside of the repository. [1] http://www.cvsup.org/ -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Cannot rename file error
Ennis, Tony wrote: Hello, I am on Win2000, latest rev of cvsnt, using pserver to the repository on a Windows box. With this said, you will likely get better answers on the cvsnt mailing list. http://www.cvsnt.org/wiki http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt When I check projects out, I am getting this error intermittantly: cvs checkout: Updating svs/apacherelease U svs/apacherelease/apache_1.3.33.tar.gz cvs [checkout aborted]: cannot rename file _new_apache_1.3.33.tar.gz to apache_1 .3.33.tar.gz: Bad address I have inherited a dubiously constructed repository, but for now... it is what it is. I just need to get it working. My checkouts fail one time in 4 perhaps, always on a different file each time, but *i think* it happens more often on large binaries. I am checking the project out into an empty directory, if that matters. This wasn't happening previously, and then BAM! it just started, with a vengeance. Any ideas? Between it working and now not working, have you updated to a newer cvsnt? The only similar experience I have ever had with regular cvs is when at 1.11.1p1-1.11.2 they changed to memmaping files and my solaris box had a broken memmap implementation, and then it only happened on the biggest of repositories with them machine under load. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Cannot rename file error
Ennis, Tony wrote: Oy! You caught me. I am not the admin of the cvs server and I assumed *cough* that it was a Windows box. After reading your response, I decided to check my facts... it's a Solaris box. We use Windows server at my installation but the cvs box is elsewhere. They use Suns there. The solaris box that gave me trouble was running: `uname -s -r -m -p` SunOS 5.6 sun4u sparc I don't know how large the entire repository is, but my module is just under 1G. Is this large? The one I had fail was ~300MB, so Yes I would consider 1G large. I have the latest rev of CVSNT. but did you update to it before or after you started having trouble, or have you been using this version all along? I would suggest getting the following information: version number of cvs used for pserver on the solaris machine. version information from `uname -s -r -m -p` on the solaris machine. the version NUMBER of the CVSNT you are using on the client. date when you started having problems. date when the admins of the solaris machine updated cvs (and ask if they updated around the date you started having trouble) and what was the old version. I would suggest asking on the CVSNT list if anyone has seen this trouble, because to me it looks like a client problem. I would also suggest, after asking about on the CVSNT list, having the unix cvs/system admins look at these messages and look for the messages I sent to the bug-cvs list, they might know what's up. Subject: 1.11.[29], server abort, unable to parse Date: Mon, 17 Nov 2003 20:06:30 -0500 -Original Message- From: Todd Denniston [mailto:[EMAIL PROTECTED] Sent: Friday, May 27, 2005 10:02 AM To: Ennis, Tony Cc: 'info-cvs@gnu.org' Subject: Re: Cannot rename file error Ennis, Tony wrote: Hello, I am on Win2000, latest rev of cvsnt, using pserver to the repository on a Windows box. With this said, you will likely get better answers on the cvsnt mailing list. http://www.cvsnt.org/wiki http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt When I check projects out, I am getting this error intermittantly: cvs checkout: Updating svs/apacherelease U svs/apacherelease/apache_1.3.33.tar.gz cvs [checkout aborted]: cannot rename file _new_apache_1.3.33.tar.gz to apache_1 .3.33.tar.gz: Bad address I have inherited a dubiously constructed repository, but for now... it is what it is. I just need to get it working. My checkouts fail one time in 4 perhaps, always on a different file each time, but *i think* it happens more often on large binaries. I am checking the project out into an empty directory, if that matters. This wasn't happening previously, and then BAM! it just started, with a vengeance. Any ideas? Between it working and now not working, have you updated to a newer cvsnt? The only similar experience I have ever had with regular cvs is when at 1.11.1p1-1.11.2 they changed to memmaping files and my solaris box had a broken memmap implementation, and then it only happened on the biggest of repositories with them machine under load. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Synchro two folder --
cvs by giardina Software wrote: Hello list, sorry for the stupid question; so i have a CVS server machine that's different from the Webserver production, this only for reasons of security. When the file/s are updated on the server CVS(2401), it must them be updated on the Webserver(80) production to make visibility of the differences. Our strategy probably is up to date, but now, what's the better mode to adjourn automatically the CVS server (here we have a global repository with some web project, portals, workgroup ecc ) and the WebServer production? I am not certain I understand your question(s), but if what you want is to always have your web server content the same as the HEAD revision from the cvs repository, perhaps Keeping a checked out copy[1] is what you want. [1] https://www.cvshome.org/docs/manual/cvs-1.11.20/cvs_18.html#SEC177 -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: intermittent cvs lock messages
Sam Steingold wrote: Hi, I use Concurrent Versions System (CVS) 1.11.17 (client/server) via SSH on cygwin and linux. During CVS commit, I often get this messages: Message: [22:06:14] waiting for sds's lock in /cvsroot/clisp/clisp/tests [note, sds is myself] then, after a few minutes, commit succeeds. two possibilities I can think of: 1) you are doing some other cvs operation at the same time. (which version(s) of CVS or/and CVS GUI/SSH agent/SSH clients are you using? or perhaps you use a script to do your commit, and it starts the secondary work too soon?) 2) the project admins have put some kind of automatic tool in the committing script that does a cvs operation in your name. (you may have to ask the Project admins.) I reported this to the repository maintainers and they said that there are no lock files there: https://sourceforge.net/tracker/?func=detailatid=21aid=1203166group_id=1 Compared with your notes here and in that bug report, their analysis seems sound. You indicate the commit goes on, after a while, so the locks are definitely not there by the time they looked for them. it appears that the locks are created by my client during commit: when I commit foo, it locks foo and then tries to commit it and runs into its own lock (which it then reports back to me in the above message), and, after waiting for the lock to expire (in a few minutes), it proceeds with the commit. is this really the case? Thanks! -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Retrieving dead files from the Attic
Deborah Comeau (LCL) wrote: Hi I am also interested in the best way to retrieve dead files. We have had several files and some directories deleted properly through CVS. We are working only on the head (no branches or tags yet, as it is a new project). I have run a few unix commands to determine which files were removed, (removed by one person on May 18th), but do not have the latest revision numbers. What is the best/proper way to retrieve these files from the Attic? Deb Comeau in a sandbox you can issue cvs history -cal name_of_removed_file or cvs log name_of_removed_file to get the version numbers. i.e. I issue: cvs history -cal $PATH/Makefile and get: R 2005-02-16 01:20 + tdennist 1.8 Makefile $PATH == remote The R at the begining is where it was removed, 1.8 is the 'dead' version, so to get back a live version... cvs checkout -r1.7 -p $PATH/Makefile $PATH/Makefile cvs add $PATH/Makefile I think... This is not intended to be direction to a gov contractor to do anything, just a listing of information which _may_ answer the question which was asked. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the WarfighterThe opinions expressed here are not sanctioned by and do not necessarily represent those of my employer. ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: cvs verifying log message format per branch
Mark D. Baushke wrote: vik [EMAIL PROTECTED] writes: I searched for and found a post on exactly this same topic on this group, and though it was helpfull, I couldnt figure out the technical details. So could someone please help me out? I am looking for a way to require a certain cvs log format --per branch--, For example, I want to require a format like Bug Id: digits in our production release branch, but not in the main branch. Here's what i found in the other post i read: SNIP The verifymsg script for your module is run once per directory after the commitinfo script is run. For client/server operations, it is run from the server-side directory that contains a copy of your files that are being committed. Would Vik be able to use the same routines as cvs_acls (a commitinfo script, that comes with the cvs source code) uses, or is the branch passed into the commitinfo script? It sounds like Vik wants a 'verifymsg_acls' in the end anyway, may as well start with code that has already had some serious debugging for a similar purpose. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: CVS Trigger for CruiseControl Configuration
Buorn, Yoway wrote: I am attempting to use a CVS trigger (loginfo) to asyncrhonously execute a script that runs maven cruisecontrol to reconfigure CruiseControl on each commit. The intent is to capture new CVS modules and automatically configure them for continuous integration. (even though I only want this upon adding of a module, I decided reconfiguration on every commit is not too bad of a side effect) I have a build machine (running CruiseControl) and a CVS machine. There is an entry in loginfo to execute a script on the CVS machine that uses rsh to execute commands on the build machine (to reconfigure CruiseControl). This is what it looks like: CVS Machine /export/CVS/CVSROOT/loginfo DEFAULT \ (/import/home/yoway/bin/rsh-cvs-cruise.sh %s) \ /import/home/yoway/commitlog /import/home/yoway/bin/rsh-cvs-cruise.sh REMCMD='bin/cvs-cruise.sh ${1}' echo ${REMCMD} eval rsh -l cruise -n db2.rd.ideas.gd-ais.com ${REMCMD} SNIP So my problem is this does not run asynchronously. No matter where I put the '', the commit always blocks until maven is done. I've tried placing the '' in rsh-cvs-cruise.sh after the last line (the eval line) and it still blocks. I've tried placing the '' after maven cruisecontrol in cvs-cruise.sh and it still blocks. SNIP 1) any reason you use 'eval' instead of just calling the command? 2) have you tried putting the '' at the end of the rsh? i.e., replace `eval rsh -l cruise -n db2.rd.ideas.gd-ais.com ${REMCMD}` with `rsh -l cruise -n db2.rd.ideas.gd-ais.com ${REMCMD} ` which should put the rsh in the background. 3) have you noted the BUGS section of the rsh man page (at least its there on Fedora Core 2)? This is not intended to be direction to a gov contractor to do anything, just a listing of information which _may_ answer the question which was asked, and questions that may lead to answers for the question which was asked. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the WarfighterThe opinions expressed here are not sanctioned by and do not necessarily represent those of my employer. ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: How to manage administrative file (quite long...)
manuel 'fmf' ferrero wrote: Hallo *. I have cvs 1.11.1p1 on a debian woody and i use WinCvs 2.0.0.2 as a client on my windows pc. I'm a beginner in cvs, but till now i can use it quite fine after reading the fine manuals... If debian has an update for the cvs binary, it would probably be a good idea to update it, many security holes have been fixed since 1.11.1p1 (I suppose debian may have patched them in to that version, it just scares me to see such an old version being reported). This week i discover administrative files and i'm trying to use them (i'm also root on debian, so i have the force!) I have two question about them. First one: I've modified my 'modules' file to match modules under cvs so users in WinCvs can list them during the checkout. Now i read somewhere that i can handle administrative files as a module under cvs just checking out the module CVSROOT. I tried and it works (except for some problems due to file permission in debian), but. But if i check out the module CVSROOT and i try to edit my local copy of 'modules' file it doesn't match the file i can see on the server. The file on the server is this: SNIP default modules file #Russia Russia #Generico Generico #filesystem filesystem #PleasureX PleasureX #Team Team #BOOT BOOT #Telco142 Telco142 Consulente1:/usr/local/cvs/CVSROOT# ---PINS--- and the local copy on my pc after checking out CVSROOT module is this: SNIP default modules file It differs in some comment line and the local copy doesn't have the module i've added by hand in the past. Why? Because you never checked it in, and what you got when you did the checkout was the version from the RCS file. Copy those lines from the difference you want into the checked out copy and do a commit. Second question: as you can see before, i've added some modules by hand, but they are single-word modules, but i also have some modules i want to keep under cvs whith names made by two or more word: something like 'project 1' or 'test suite product X'; windows allows (more or less...) to use spaces in filenames, so people here abuse them and i cannot tell them to use underscore instead. I wasn't able to set up a modules file to match this kind of project. I have to remember their names to checkout them in WinCvs. I also tried to use -a to set an alias, but i miss something... Can i use modules file to list this kind of projects? only by faking out the modules file with soft links, look back in the mailing list archives for the ways I and some others have done it. I don't know if the commitinfo script is passed (or can otherwise get) the file names (for files not directories, directories currently just go in), but if it is then you may be able to fail any commits of files with spaces in the file names. BTW if the users like being able to browse the list of modules and if I read correctly above that WinCVS does not list them without them being in the modules file, use the stick of not being able to browse the modules, to begin getting them to not use spaces. Granted I have a personal bias against spaces IN FILE NAMES (no problem with them in prose text) and don't even like the look of spaces in GUI file managers which is the only place they sort of look ok. Someone can give me some hints on how to well manage that files? Thanks in advance. always edit the administrative files in a checked out directory, not directly in the repository. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: How to get started
care of, otherwise they could miss putting changes into CVS that should have gone. I think it would make a lot more sense to do a gradual migration to CVS in a different way. Rather than doing CVS half-hearted on the whole codebase, you could take a small portion of the codebase, preferably a relatively young part, where all (or most) developers work on, and where a lot of changes are being made. SNIP While I agree with many of the things Maarten said, I disagree here. I have done a couple of these imports from ancient manual version controlled projects. If you are going to do it at all, do the whole thing at once, while you have the method of getting the old versions, into CVS, straight in your head. If I did not do the whole thing at one time, I usually gave up on getting the old history in the repository and just went with the current version of all the files I had not yet got in, so the developers could get going on the whole thing. Not doing the whole base at one time IS half-hearted. A last thing, I think you should forget about keeping the history, since, if I understand you correctly, their is no real structure or logic in the files-based history you have now. Maarten This is actually the biggest set of questions you need to ask yourself (and possibly the management and coders). Is having the old versions in the new version control system (VCS) (CVS in this case) worth the trouble? Would it be more cost effective (and at least as useful) to put the current manual repository in an archive directory for reference, and just put the current versions in the new tool? If you must put the old versions in the new VCS, a) do all of them need to go in, i.e., can you skip ones that are developer only revs? b) where are the records indicating the versions or dates of files which made up coherent sets? c) which developer is going to set with you to identify the needed versions? d) what are the names of the tags you want to use for the coherent sets? Maarten de Boer in another message wrote: You could keep the version history, if files are datestamped more or less consistently... If I understand you correctly, a file foo could have copies over time, ... I[t] should be rather easy to write a script that looks for all those versions of file foo, and commits them one by one, ordered by time, putting the version suffix in the log message. The main problem here is that you should put the oldest version in your initial import. If you are going to import all of the revs, I would suggest following Maarten's suggestion of writing a script (or a dozen), but if you want to have the dates it might be easier using RCS to build the ',v' files and then move them into the CVS repository. If you are going to use CVS import, I would actually suggest using your scripts (or do it by hand) to try and build coherent sets in different directory (structures) to import, and then import each set. It gets very hard to keep track which set a particular file goes in if you do it one file at a time. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: How to get started
Mark E. Hamilton wrote: Rondal, SNIP 2. Next, import everything from the current production area into the new repository. This puts everything under revision control, saving all the historical information. It also ensures you have a complete, current backup if anything goes wrong in the next steps. Sure, it may be a lot of irrelevant stuff, but disk space is cheap. SNIP Mark has outlined an interesting an useful method to do what I was indicating, if it was decided to keep just the latest revs in the CVS repo. After I read it, I decided that doing Mark's steps 1 through 4, would be a good idea even if the decision was to work all the history into the new repository. That is, I would do Mark's 1-4 and then in a second repository do the work of importing the histories of the files[1], and when the history imports were done, check back with the original repository to get the diff from when you set it up (and grabbed the files for making the histories), so you can patch any current changes into the new repository, then replace the 'production run directory' with a checkout from the histories repository. [1] i.e., rename foo, foo.2003-04-23, foo.2003-06-30, baz, baz.2003-04-20, baz.2003-06-15 to fo and baz in directories like: 2003-5-0/foo -was foo.2003-04-23 2003-5-0/baz -was baz.2003-04-20 cd 2003-5-0 cvs import crownJewels MyCompany AsWasFirstOfMay2003 cd .. 2003-7-0/foo -was foo.2003-06-30 2003-7-0/baz -was baz.2003-06-15 cd 2003-7-0 cvs import crownJewels MyCompany AsWasFirstOfJuly2003 cd .. current/foo current/baz cd current cvs import crownJewels MyCompany AsWasWhenIFoundThisMess cd .. Note, it has been a while since I did a set of imports, I might have the options wrong. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: checkout - no downloads, just entries list
[EMAIL PROTECTED] wrote: On 2005-05-16, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: Hello, I have the following problem: I would like to checkout a CVS module without downloading its files - just the module's CVS description (the CVS directory). The problem is that the module is very big (linux sources) and I need only few files to build packages. OK, I solved it. I created manually directory CVS with files: Root, Entries, Entries.Static and Repository, and now I can download only files I want. This sounds like a very painful way to go. The invocation: cvs -d server co SOURCES/package did not work - that is why I had to create CVS dir manually. What do you mean 'cvs -d server co SOURCES/package did not work'? Normally, cvs -d server co CVSRootRelitivePathToFile/filename does what you want, and quite easily. Can you please post a cut and paste from any error messages you got to the list, so we might get a better idea what went wrong? In case there is an easier way I would appreciate any comments and suggestions for the sake of a general knowledge about CVS. Sorry, if the problem was the trivial one. -- J.tar -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: CVS Annotate or FORCING users to comment their checkins
S I wrote: Hi Is there any way to force the users to comment or annotate their commits or checkins? Short answer, Yes. I know by default the -m comment goes here the system asks them to provide a brief comment, however, this can easily be bypassed. Can a template be set up or is there anyway to do this through the Admin level? Short answer, Yes. Long answer, search the list and read the manual, specifically on commitinfo and verifymsg. I have sent a few messages[1] over the years to the list on how I have done it, perhaps they would be of use to you, specifically[2] and [3] [1] http://lists.gnu.org/archive/cgi-bin/namazu.cgi?query=denniston+verifymsgsubmit=Search%21idxname=info-cvsmax=20result=normalsort=score [2] Re: using commitinfo and verifymsg Date: Thu, 24 Jun 2004 10:50:22 -0500 http://lists.gnu.org/archive/html/info-cvs/2004-06/msg00414.html [3] Re: Verifymsg on branches?Date: Wed, 22 Nov 2000 15:29:54 http://lists.gnu.org/archive/html/info-cvs/2000-11/msg00330.html -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Permission Denied for 'other' users
farseer wrote: I have setup CVS under CYGWIN + XP. When i commit files, they are added to the repository as read only always (-r--r--r-- or -r-xr-xr-x). this means when anyone else does an update and tries to work with these files, he/she is unable to commit changes. does anyone know of the possible causes of this and how to correct? Fix your _directory_ permissions (assuming CYGWIN allows/uses dir perms) to allow the group/others write privs on the directories. if you can use group perms on dirs and set the sgid bit it will make your life easier. ignore the _file_ permissions, CVS takes care of those. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: How to get changelog between two tags
[EMAIL PROTECTED] wrote: Hello, I know there are some discussions in the past about using tags with cvs log, but I found no answer to my current problem. I need to get the changes which are made on some files since a specific tag. My Problem is to get also changes from files, which don't have the specified tag, because they are added to cvs after the tag has been generated. What I have tried, is to use the following syntax: cvs log -rTag1::Tag2 Is it possible to get the changes for files which don't have Tag1 but have Tag2 ? It is not possible to use the file revision (e.g. 1.13), because I have many files (~28000) and it would take to long to get the possible filerevisions for cvs log -rFileRev::Tag2 . Is there a other way, or a hidden parameter, to get also files which don't have the Tag Tag1? Unfortunately you can not combine a Date and a tag, but if you know the dates of both tags I think you can combine them to get what you want like: cvs2cl.pl -l -d \2005-05-05T11:202005-05-17T16:51\ or call the log command directly cvs log -d 2005-05-05T11:202005-05-17T16:51 Note that the date format above does not fully comply with ISO 8601 [2], because the time zone is not included, so you will have to convert to UTC if you are getting the date from some tool not using UTC. [1] cvs2cl.pl http://www.red-bean.com/cvs2cl/ [2] Date format http://www.w3.org/TR/NOTE-datetime -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Using CVS as an enterprise backup facility
Merlin Beedell wrote: CVS sounds like a possible solution to the following scenario: We are currently looking at backing up our main [file] servers to a remote site's hard disk. The requirements are: All files to be copied to the remote site just once (i.e. so that 200Gb does not get transferred every night/week or month over broadband connection). From then on we only need to back up new or changed files. For Changed files, we need to keep up to 3 (or a configurable number of) prior versions We need to see a simple report showing backup completion and any issues on the way To restore, we need to be able to easily select a file from a directory structure on the backup machine, and choose the most recent or one of the previous versions. I don't know of any backup software that runs quite like this (does anyone?). Clearly CVS would just be a component of such a system - yet it seems so possible that it really aught to be attempted. The key part is in a simple interfaces for - selecting servers and directories that should be backed up - a scheduler - a reporter - a restore interface. Am I being mad, or are there loads of existing products that do this, or does this sound like a great idea? Sounds like you really want to keep your backups in a VMS filesystem[1], which some might claim indicate you to be heading for madness. I thought there was a project to provide a VMS filesystem for linux, but I can't find it quickly. Curiosity question, how many VMS folks you got there? If ALL of your files are _ASCII text_ then you might be able to implement what you want with CVS, but otherwise I highly suggest abandoning that idea. There are several open source backup solutions available[2], AMANDA[3] backing up to a disk, with some extra tools[4], seems the most likely to me to come close to what you want. In February someone discussed doing what you are suggesting with (or on) Subversion[5]. If you could live with one backup, but have that backup in live hot real time, you might want to look at DRBD[6]. [1] http://en.wikipedia.org/wiki/OpenVMS_filesystem http://www.panix.com/~kingdon/free-vms.html http://www.tldp.org/HOWTO/Filesystems-HOWTO-9.html#ss9.19 [2] http://freshmeat.net/search/?q=backupsection=projectsGo.x=0Go.y=0 [3] http://amanda.sourceforge.net/ [4] http://freshmeat.net/search/?q=amandasection=projectsGo.x=0Go.y=0 [5] http://svn.haxx.se/users/archive-2005-02/0892.shtml [6] http://www.drbd.org/ -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Validations in CVS
Khurram Rashid writes: This is a multi-part message in MIME format. Please do not send MIME and/or HTML encrypted messages to the list, or even to me directly. Plain text only, PLEASE! I just wanted to know if there is any way in CVS to do validation check in, i.e. Developer checks out a module from CVS Developer makes some changes in the code. Developer then checks in the module as validation check in. At this stage by validation check in I mean that the module has to be reviewed by a validator before finally committing the module in the repository. i.e. No. it is either committed (checked in to the repository) or it is not. Validator now checks out the module from CVS Validator validates the module Validator commits the module in CVS You can however have a process using branches to implement this scheme using cvs. Have a branch(or set of them) which the developers can commit to, have another set of branches for the Validators to merge commits to and use cvs_acls to prevent developers from committing to the validated branch. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Alias syntax for a module that has a space in its name
Ed J wrote: What is the syntax for creating a module alias when there is a space in the module name? Not Possible, but it can be worked around. SNIP Is this a TortoiseCVS issue? No. See: http://lists.gnu.org/archive/html/info-cvs/2001-06/msg00350.html My solution, put a simlink in the repo to the directory of interest, and in the modules file use the link. This still lets you get it with the space [1] when doing release builds, but lets you make aliases to smaller chunks when you are working. [1] IMNSHO, spaces in file and directory names are one of the many evils in computers, remove them when possible and re-educate the creators (as much as you are allowed :). -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: cvs add-ing large source tree
Jate Sujjavanich wrote: My theory was wrong. A log file of the find ... -type f | xargs cvs add shows that it never schedules the missing file for addition. I'm not sure why yet. - Jate S. SNIP how about trying `find ... -type f | xargs -l cvs add` From the size of the tree you described, I would expect you could create a command line of over 1024 chars very quickly. I am trying to remember, I thought the command length was limited somewhere around 256 chars, but it could be longer. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: history command
Larry Jones wrote: dave frost writes: Could anyone tell me how to get user commit comments in the cvs history -e -a output ? Only by rewriting CVS. -Larry Jones Or by re-writing your question to ask how to get the information you need, not how to make a command do something it was not meant to do. i.e. what out of `cvs history -e -a` do you actually need, to go along with the output from `cvs log`? I rarely, i.e., NEVER, find the information in cvs history to be of use, except when trying to rebuild a repository from the remains of a failed raid 0 array (been there done that, better backups now), however the output of `cvs log` as parsed by the script cvs2cl [1] is something I use almost daily. If you still want the output of `cvs history -e -a` combined with the output of `cvs log` then look at cvs2cl and see about writing a script||program to do the combination for you. [1] http://www.red-bean.com/cvs2cl/ -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Silly question about CVS and permissions
Michaelis, Daniel writes: This is a multi-part message in MIME format.Please do not send MIME and/or HTML encrypted messages to the list. Plain text only, PLEASE! SNIP there doesn't seem to be anything that prevents User1 from going into the ProjectDir1/bin directory and removing file2 (which is owned by User2). SNIP 1) the users should not be working directly in the repository except in very rare cases and should be approved for doing the work there, this should be a stated company policy. 2) if you are using ssh, ssh can be configured to limit the commands allowed to be ran by the user(except if the user figures out a hole in the programs they are allowed to run, see the next item). 3) if the user is violating company policy, whether or not that involves breaking another program, discipline appropriately. SNIP I've kludged a solution, which is to set the setuid flag on the cvs executable, but I've seen a number of posts that indicate that isn't a wise move, and SNIP This sounds like a pserver problem, and if you are worried about security, you don't use pserver. SNIP 1.Is it the design of CVS that any user that needs to check in/out files must have read/write permission on all of the directories into which he/she can check in files (meaning that he/she has remove permission at the O/S level within these directories)? If so, I'll stop trying to solve this problem. Yes. 2.Are my (CVS/Repository missing) messages related to the setuid that I've done on the cvs executable? Unknown, which method are you using to login? what does `echo $CVSROOT` return or what are you passing after `cvs -d`? 3.If the previous is true, is that because setuid is truly not supported for the cvs executable, or is it something that I've misconfigured? 4.If there is a way to prevent destruction of files, and it is not through setuid, what is the method by which I would accomplish this? The users should only be accessing the repository through cvs. The company should make a written policy that the users will only access the repository through cvs. The users should be trained that they should only access the repository through cvs, and that it is company policy. The company should only (I hope this is common sense) higher and retain employees who can understand and follow company policies regarding destruction of company property(code base in this case). technology can help a little here, keep the cvs repository on a machine which has been setup for ssh access and has ssh access limited to running cvs, for all but administrative people. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Silly question about CVS and permissions
Michaelis, Daniel wrote: Todd, Thanks for the answers. Regarding your comments, my intent is less to provide a secure environment (we don't expose cvs outside the internal network), and I'm not terribly worried about malicious destruction of data; I'm much more concerned with the occasional fat-fingered mistake that folks make, The big trick here is to reduce the reason for them to be _where_ they can make a fat-finger. As I (in an overbearing manner) suggested, only put things in the repository that the users need to get to through cvs, and if you are CMing other things, they should be in other directories that are controlled by a different CM agent (which might be A single human||user), not all users need write access to _all_ the directories with the artifacts contained in them. or the mistaken impression that they're on server A when, in fact they're on server B. As such, it's probably not worth the administrative hassle to restrict ssh (but you're right; that's probably the best solution for a secure environment). To solve the server A vs B problem, on our lan we use rsh and some ssh. The big thing though is to get the users to _ consistently _ use the _ remote _ access method, even when they are on the server local to the hard drive. In short, all users should ALWAYS use a remote access method to the same 'remote' computer even when they are on the 'remote' computer. I have accomplished this by having a script for each project, that when the person changes to a new project they start sourceing the appropriate script to setup things like $CVSROOT, path to libs, compilers and programing tools (as needed), this way we have configuration management over the pertinent parts of the environment the program is being created in. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Versioning modules instead of files?
Matthias Kaeppler wrote: Sergei Organov wrote: Matthias Kaeppler [EMAIL PROTECTED] writes: SNIP It would be a lot better, if the versioning would happen on the module base, i.e. you can commit the content of your sandbox as a new version of your program rather than new versions of the individual files. Is that possible somehow? I can't find any means at all in the documentation to keep track and control the /program/ version instead of the individual source file revisions. cvs tag is your friend: quote manual SNIP /quote manual Ah okay, thanks for pointing me to the right direction. I'll read up on tagging and come back if I have further questions. In anticipation of what I expect your next question to be: CVS keeps the checkin logs with each individual file, how do I get a log that shows a coherent picture of each checkin? Please see cvs2cl: http://www.red-bean.com/cvs2cl/ There may be other tools to do it, but this one is my favorite. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: online backup
Hi, We have a cvs server and right now we just take a .tar.gz of the cvsroot directory. If we restore it then the user cannot start using the restored cvs data. I need to configure a online cvs server where both the servers are in sync and the second server should act a hot backup. If server 1 fails then the users should automatically/manually be redirected to the new server. Is there any specific HOW-To for doing such things ? For a hot backup my solution involves DRBD with heartbeat. http://www.drbd.org/ http://wiki.linux-ha.org/ http://wiki.linux-ha.org/GettingStarted_2fDRBD and for the CVS side of it, try following the thread I started here: cvs as a heartbeat client http://lists.gnu.org/archive/html/info-cvs/2004-03/msg00182.html I have not yet gotten permission to post my cvs-heartbeat script, so you will have to (re)create it from the same notes I got. Sorry. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Remote repository permissions best practices
Howard, Les wrote: I've hacked my way through setting up a few CVS repositories in the past, but I've always struggled with getting the user/group ownership and file permissions correct. I always seem to end up with a setup where the users can't access the files that other users have submitted without going into the repository as root and chmod/chowning some of the files. Sounds like you did not set the SGID bit on the directory structure. https://www.cvshome.org/docs/manual/cvs-1.11.19/cvs_2.html#SEC13 (On some systems, you also need to set the set-group-ID-on-execution bit on the repository directories (see chmod(1)) so that newly-created files and directories get the group-ID of the parent directory rather than that of the current process.) SNIP What is the right way to set up the repository, users/groups on the repository or users/groups on the remote workstations as far as file ownership and permissions go so that all users will be able to easily work on the files that each-other has submitted? SNIP but nothing about how to setup file permissions/ownership properly. Les 1) all the users who need write access to the repository should be in the same UNIX group. 2) after doing `cvs init` you need to chmod g+sw the repository project directory, i.e., `chown :projectUNIXgroup $CVSROOT/project/; \ chmod g+sw $CVSROOT/project/` -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Remote repository permissions best practices
Todd Denniston wrote: Howard, Les wrote: I've hacked my way through setting up a few CVS repositories in the past, but I've always struggled with getting the user/group ownership and file permissions correct. I always seem to end up with a setup where the users can't access the files that other users have submitted without going into the repository as root and chmod/chowning some of the files. SNIP 1) all the users who need write access to the repository should be in the same UNIX group. 2) after doing `cvs init` you need to chmod g+sw the repository project directory, i.e., `chown :projectUNIXgroup $CVSROOT/project/; \ chmod g+sw $CVSROOT/project/` BTW, as you currently have a repo, you may need to walk the whole existing repository tree and do something like: (assuming no spaces in your directory names, and you use this at your own risk) cd $CVSROOT/ chown :projectUNIXgroup project/ chmod g+sw project/ for i in `find project -type d` do chown :projectUNIXgroup $i chmod g+sw $i done -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Remote repository permissions best practices
[top posting as a courtesy for Doug] -R Recursively change permissions of directories and their contents. Its the their contents part that is the problem, you only need and want to change the ownership and permissions on the directories. The files should be read only, and we don't car who owns them. Doug Lee wrote: On Mon, Mar 28, 2005 at 04:05:51PM -0500, Todd Denniston wrote: SNIP BTW, as you currently have a repo, you may need to walk the whole existing repository tree and do something like: (assuming no spaces in your directory names, and you use this at your own risk) cd $CVSROOT/ chown :projectUNIXgroup project/ chmod g+sw project/ for i in `find project -type d` do chown :projectUNIXgroup $i chmod g+sw $i done What's the matter with cd $CVSROOT chown -R :projectUNIXgroup . chmod -R g+sw . assuming constant :projectUNIXgroup and no need for different permissions anywhere under $CVSROOT. I wonder in particular if a subsequent reset of owner/perms in $CVSROOT/CVSROOT would be in order. I think -R is standard for both chown and chmod now, but a couple of `man' checks on the target system wouldn't hurt.-- -- Doug Lee [EMAIL PROTECTED]http://www.dlee.org Bartimaeus Group [EMAIL PROTECTED] http://www.bartsite.com Innovation is hard to schedule. -- Dan Fylstra -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Remote repository permissions best practices
Jim.Hyslop wrote: Todd Denniston wrote: 1) all the users who need write access to the repository should be in the same UNIX group. Doesn't this effectively negate any benefit of using groups? For example, in our setup we want full-time staff to have general access to most of the repository, and co-op students to have access only to those sections of the repository they are working on. Certain sections of the repository are 3rd-party sources protected by an NDA, so only specific people (including both full-time and possibly co-op students) have access to those sections. How would you accomplish this by using a single group? We can't use cvs_acls, because it only restricts access on check-in, not on check-out. ok another set of assumptions on my part 1) each _project_ has a separate repo and any NDA stuff is kept even separate from the other normal things. 2) you have three sets of users, a) ones who can write to the repo, b) those who can read from the repo, and c) those who have no rights to the repo. This is all I have had to deal with. If I had to have a section where all my staff could read/write a section of the repo and co-ops could read/write that section as well, I would probably make group staff a member of group coops, and set that section of the repo to group coops. However I have never done it so I would probably be wrong. 3) if I don't want someone having checkout privs then they are not in the group for that project or the group that has write privs to the LockDir. Note: each project in my world has its OWN group, being in group staff gets you VERY little. Sorry, I lead a sheltered life with an un-interesting mix of users. :) -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Diff Info
SUBRAMANIAN, SARAVANAN (SBCSI) wrote: Hi All I need to find out how many are files are added, modified and deleted from one version tag to another tag. Please help me out. Thanks SARAVANAN SUBRMANIAN SCM Centrex Mate In the future, Please chop out any digest matterial that is not related to the new question. Try the following script. echo -n new files; cvs diff -N --brief -rTAG1 -rTAG2 2/dev/null| \ grep differ|grep s \/dev\/null|wc -l; echo -n removed files ; cvs diff -N --brief -rTAG1 -rTAG2 2/dev/null| \ grep differ|grep d \/dev\/null|wc -l; echo -n changed files; cvs diff -N --brief -rTAG1 -rTAG2 2/dev/null| \ grep differ|grep -v \/dev\/null|wc -l -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: sserver failure - SSL connection failed
Jason Williard wrote: I just completed the installation of our new cvs server. At this point, it is working as it should be with one exception; sserver is not working. SNIP I am able to successfully checkout the CVSROOT module using pserver, so I know that system is working. I am assuming that the issue has to do with the private key or public certificate, but I am not sure. Here is what I have installed: - Fedora Core 1 - 1.11.1p1.perm13 (From freepository.com) - OpenSSL 0.9.7a The SSL key and certificate were issued and placed in /etc/cvsSSLkeys. I am using TortoiseCVS on a Windows system to connect to the repository. Is there something that I am missing here? I think what you are missing is 1) that sserver is a CVSNT modification http://www.google.com/search?hl=enq=sserver+site%3Acvshome.orgbtnG=Google+Search http://www.google.com/search?hl=enlr=q=sserver+CVSNTbtnG=Search Note that as Arthur Barrett reminds us usually, CVSNT will also install under UNIX if you want it. http://www.cvsnt.org 2) even under normal cvs, version 1.11.1p1.perm13 is ancient and bug riddled. https://www.cvshome.org/ https://ccvs.cvshome.org/files/documents/19/746/NEWS.1.11.19 https://ccvs.cvshome.org/servlets/ProjectDocumentList Hope this helps. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: sserver failure - SSL connection failed
Jason Williard wrote: That recommendation was helpful, though I'm still unable to get SSL working. However, I feel more confident with this version of CVS. At this point, I have cvsnt-2.0.58d running. Once again, pserver is working but sserver is not. SNIP If the topic covered is specific to CVSNT (which this topic is), you will get better (or any) answers asking on their specific mailing list. http://www.cvsnt.org/wiki http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: rolling back and importing
Justin, with a bogus email address, wrote: Hi, Disclaimer: Unfortunately I come from a Visual Source Safe world, so please forgive my stupid questions: 1. Recently a developer submitted some bad code to the CVS server. I asked my local cvs contact how I could rollback the changes the dev made. I was informed that it would be difficult because there wasn't a recent tagged version. I found this perplexing, as this is pretty easy to do in Source Safe. There must be a way in CVS? If the checkin action on the repository has a good quantity of time between the checkins on either side of the bad code checkin, you could probably use the implicit tags CVS applies, that is, checkin date+time. Note that I have not tried this recently so you should probably back up your repo, and/or try it on a copy of your repo first. 1) cd to the root of a checked out sandbox. 2) run `cvs2cl -r -t` [1] on a checked out sandbox. 3) find the offending commit in the Changelog file (the output of cvs2cl). 4) find the time of the offending commit (BADTIME), and the commit previous to it (BEFORBADTIME). Note 4a: cvs2cl outputs time in local and CVS uses UTC. when doing the tags below you either need to convert the cvs2cl time to UTC, or tell cvs that the time given to -D is in your timezone, that is, if you are in TZ=EST you tell cvs '-DBADTIME EST'. Note 4b: that you may need to _add_ a 'fudge' to the date time of a few seconds or a minute to get the tags applied to the versions you want. This is why you want to see some time between the commits. 4a) If there is a good delay before and after the bad commit, you can use the times, if not you will have to apply the tags to the REVISION of each _file_ individually (not an easy task, been there done that). 5) run `cvs tag -DBADTIME BrokenCommit` on the whole sandbox. 6) run `cvs tag -DBEFORBADTIME BeforeBrokenCommit` on the whole sandbox. 7) re-run `cvs2cl -r -t` and you should see BrokenCommit and BeforeBrokenCommit listed as utags in each of the commits identified in step 4, if not you may have to increase the 'fudge'. You now have the recent tagged versions your cvs contact wanted, perhaps now you might check with that person to see if my next command is good/bad. 8) run `cvs update -jBrokenCommit -jBeforeBrokenCommit` on the whole sandbox, Note I almost expect have this command wrong. [1] http://www.red-bean.com/cvs2cl/ -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Problem with file permissions after checkout/update
Dave Bartmess wrote: I'm getting files from checkout and update commands that have no file permissions at all... The directories show the directory bit set, but files have NO bits set for permissions. What could cause this? We're using CVS 1.11.19, on a window platform, and using cygwin for the command line. This is holding up a build, please help! Reaching for straws... did you use the cygwin cvs client or one of the windows based cvs to do the checkout? Reason for query, not sure what perms cygwin would apply to files it did not put in the filesystem. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Persistent Notification Emails
Ricardo Cortes wrote: Hi, We divided one of our projects up awhile ago into two separate projects, one for static content and one for dynamic Java/JSP files. When we initially created the static content project, we performed an import so we wouldn't lose the CVS history. After doing this we realized that we no longer cared to receive CVS commit notifications on the new static content project. I tried modifying the loginfo file (we are using the mailAndLog.sh script with logInfo.pl) and removing the entry for the new static content project but we are still getting inundated with unwanted emails from the new static content project. Does anyone know how to stop these emails from being sent out for just our static content project? Any help would be greatly appreciated as I wasn't able to find an answer on Google nor in the archives. Thanks! Ricardo check $CVSROOT/CVSROOT/loginfo, I suspect you will find the only un-commented line is something like: DEFAULT ...logInfo.pl... if you change DEFAULT (or perhaps they change the syntax to ALL) to the name of the module(s) where you still want email, then you will only get email on those modules. See the manual here: https://www.cvshome.org/docs/manual/cvs-1.11.19/cvs_18.html#SEC173 -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: rolling back and importing
Justin wrote: Hi, SNIP 2. I have two versions of our source code I want to import into cvs. I would like to import the first version, then tag it and import the second. But I don't want to tag the second because it's not ready yet. How can I import the new code into the same trunk as the tagged version? Import the second as a different tag, then delete that tag? After all, Import will sync with the trunk, as well as create the tag right? three choices: 1) use `cvs import` with a tag you don't care about for the second one, i.e., `cvs import repository vendor-tag I_HadToPutItHereButDontCare1_release-tag` 2) use normal methods, i.e., for the second one checkout from the repo and copy the changed files on top of the sand box and commit (do any add/removes as needed). Note that this will get you a bunch of conflicts on the trunk if you ever use import again. 3) always use normal methods, i.e., from the start do all the cvs add/remove/tag/commits by hand. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: verifymsg script
[EMAIL PROTECTED] wrote: What information does CVS provide that a script that runs in verifymsg, ie, during a cvs commit, can process? I want to write a script that scans this info and say Hey I was looking for such and such, and didn't find it. The commit will then subsequently fail. Re: Verifymsg on branches?Date: Wed, 22 Nov 2000 15:29:54 has an simple example rcsinfo verifymsg which I have used on a project to make sure people put in bug numbers and at least simple comments. (it could be a starting point.) http://lists.gnu.org/archive/html/info-cvs/2000-11/msg00330.html -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: linux distribution
Gleidson Sá Barreto wrote: which better linux distribution for server cvs? It may seem trite, but the answer is simply: The one you loaded. All the distributions have their own advantages and disadvantages. I know of no reason any one of them should be picked over another in the case of just building a CVS server. If you like the way Fedora (RH) or Debian does their update distribution, use that, If you like to do it yourself Slackware or Gento might be your thing. Generaly, its the one you are most comfortable with (which might even be a BSD :O ). -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Long version numbers | Tedious to keep track
Jim.Hyslop wrote: Swaroop George wrote: SNIP - Is there anyway of alternate versioning and making it much more simple, but still maintaining the history to an extent. I'm almost certain your branching and versioning strategy can be simplified. It's been my experience that when people create such a complex branch structure sit down and analyze what they really need (along with an expert who truly understands branching) the branch and merge process becomes _much_ simpler. SNIP Along those lines you (or your to be branching expert) should probably take a look at Brad Appleton's Assembling Configuration Management Environments pages[1] (and books). He has a section specifically on branching techniques and reasoning[2], which I have found useful in the past. I thought I had seen some user feed back in some sections where individuals noted how they had used the pattern under various version control tools, and how it worked for them. [1] http://www.cmcrossroads.com/bradapp/acme/ [2] http://www.cmcrossroads.com/bradapp/acme/#Branching http://www.cmcrossroads.com/bradapp/acme/branching/ -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: CVS concept of time - time zone part 44!
Larry Jones wrote: Todd Denniston writes: Will there be an option I can put in my _ environment _ so all CVS commands client will show UTC times? Most systems honor $TZ. darn, I was hoping I could have everything else work with the local $TZ and cvs would use something like $CVS_TZ and only fallback to $TZ if $CVS_TZ was not set. Thanks. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: terminated with fatal signal 9
OTESAO wrote: Hi I'm a newbie I've tried to checkout the contents of a module to my local directory and some files got checked out but all of a sudden i got a Terminated with fatal Signal 9 Any help would be appreciated thanks Peter Assumption, your system uses the same signals as my linux box. `man 7 signal` Signal Value Action Comment - SIGKILL 9 AEF Kill signal The letters in the Action column have the following meanings: A Default action is to terminate the process. E Signal cannot be caught. F Signal cannot be ignored. Usually this means someone explicitly called `kill -9 your_process`, I don't know of the kernel ever using this signal without it being sent with a kill command. In most systems only you and root can do that to your process, so start with those people. :) Find out who and why. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: CVS concept of time - time zone part 44!
Larry Jones wrote: Mark D. Baushke writes: CVS keeps time in UTC to allow for clients that may be in other timezones. It is always in UTC. User input of dates defaults to local time, but you may add a timezone explicitly to the datestamp if you wish. The feature release of CVS (1.12.x) generally displays times in the client's local timezone rather than UTC like all previous releases did. Will there be an option I can put in my _ environment _ so all CVS commands client will show UTC times? I have grown rather used to it, and it makes more sense to me now than seeing it in a non constant zone. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Getting comments form the log
Mohanty, Debi (GE Healthcare, non-ge) wrote: Hi, Is there any way to pull out only the comment from the CVS- LOG command. ThanksRegards Debi please see cvs2cl as an example. http://www.red-bean.com/cvs2cl/ it gets other things as well but it processes the log messages down to something a little easier to parse by humans. It can also output formatted XML which _might_ be easier than the output of 'cvs log' to parse with a program. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: How to document tags?
Jim.Hyslop wrote: kj wrote: Is there any good way to document (using normal, unabbreviated English prose, as opposed to cryptic tag names) the meaning of individual tags? Not directly within CVS itself. Our company's guidelines require each project to have a file, tags.txt, which documents the tag, when it was applied, who applied it, and what it's used for. As you might guess, the biggest problem is remembering to make the entries in the file. I do the same thing here, but getting tags.txt updated is not a problem because all tags are applied with a script, which takes as input the documentation as a string and traps the rest of the who/when from the environment, the script first checks out a tree, then puts the data in tags.txt, commits tags.txt (with the documentation string as the comment), tags all the files in the tree including tags.txt, and finally releases the checkout. This also makes it nice when doing cvs2cl, as the tag (and why the tag was done) shows up on tags.txt when it was done, so you can see in with the rest of the chronological ordered data when the tags were applied (within a few seconds anyway). This works great for tagging the head of the trunk or a branch, which has been adequate for our needs, but if you want to tag some sandbox state it would need to be modified to walk back to the root of the sandbox checkout (boy some fun logic here), then do all the mods+commits+tagging. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: problem setting cvs pserver
alex wrote: server_args = -f --allow-root=/usr/local/cvsroot server should be server_args = -f --allow-root=/usr/local/cvsroot pserver You need pserver not server I made a typo. server_args is: server_args = -f --allow-root=/usr/local/cvsroot pserver the result is the same. telnet localhost 2401 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. Connection closed by foreign host. Any more help welcome. Alex You may have to put the line 'disable = no'[1] in /etc/xinetd.d/cvspserver. have you issued `service xinetd restart`, since setting up /etc/xinetd.d/cvspserver? has the following link been of any help? https://www.cvshome.org/docs/manual/cvs-1.11.19/cvs_21.html#SEC187 [1] For reasons I have forgotten, I believe there needs to be a tab between 'disable' and the '='. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Tuning CVS performance.
John Carter wrote: On Fri, 11 Feb 2005, Michael Schiestl wrote: Where the hell is the bottleneck? Is there a way to make CVS faster? While I wouldn't called CVS slow, I would appreciate some hints on optimizing / tweaking performance. We're using version 1.11.1p1 via pserver on a Redhat Linux version 2.4.17+acl on an ext3 file system and things are starting slow down painfully for some of our larger modules. SNIP Two things that might speed it up some, 1) update to something past 1.11.1p1, they started using mmap on the files in 1.11.2 which CAN make things faster. and as an added bonus you get security fixes. 2) see if you can get a newer kernel, self compiled. a kernel optimized for the hardware you have (instead of generic 386 calls) can be a little faster thus speeding up the whole system. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: enabling log.pl
Parvinder Singh Arora wrote: This is what is the entry in my loginfo file ALL (echo ; date; cat) | \ /usr/local/cvsroot/CVSROOT/log -u $USER -s \ -m [EMAIL PROTECTED] [ED. I broke the lines above with \s to make it clear this is expected to be one line in the file] What is it you intended the `(echo ; date; cat)` to do? I tried: (echo ; date; cat) |less and found it annoying in an interactive environment, as cat does not exit. `(echo ; date)` might be useful, though. also I am assuming that in your loginfo, the line you sent is all on ONE line. And when i try to do some commit this is what i get :( [EMAIL PROTECTED] CVSROOT]$ cvs commit temp.txt Checking in temp.txt; /usr/local/cvsroot/CVSROOT/temp.txt,v -- temp.txt new revision: 1.10; previous revision: 1.9 done Could not open(): No such file or directory sh: line 1: : command not found cvs server: Rebuilding administrative file database ~Parvinder Is the /usr/local/cvsroot/CVSROOT/log script your own or one of the ones on the net? (a net one we might be able to look at the source and guess what is going wrong.) Just from the name difference in your subject and here, I would expect the problem might be that sh is trying to interpret a perl script and failing. You might check the first line of /usr/local/cvsroot/CVSROOT/log and verify the first line is of the type #! /something/bin/perl, if it is then verify that /something/bin/perl will execute (or change it to point to the real perl on your system). -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: why is CVS so slow
Michael Schiestl wrote: Hello, I am using the latest version of CVSNT in combination with TortoiseCVS in my 100Mbit LAN. My Computers are quite up-to-date (~2Ghz, 512MB RAM). Still, CVS operations are really slow (add, commit, update,...). I can see no reason for that. The CPU usage is at about 10%-20% on both - client and server - computers. Same with the network utilisation which is around 5%. what is the access method? pserver, rsh, ssh, smb mounted directory, CVSNT method? Is your name server working well? (should take 10 seconds to nslookup all 254 names in the last octet, I know this one as I am currently experiencing a problem) does someone have a switch/hub looped through another switch/hub and back to the original switch on your network? (sure low utilization, just high burst/collision) Note, this could also be on a 10Mb sub LAN if you have some legacy equipment (thin net/thick net). BTW CVSNT questions will probably get answered better on their list. http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt Where the hell is the bottleneck? answers to the above questions may narrow it down. Is there a way to make CVS faster? sometimes. :) (times stated for a checkout of a 300MB tree I have worked with) using it on the physical server is as fast as you will get (I think). (1-2 Minute) using it through pserver, rsh or ssh are usually very reasonably fast on a LAN.(3-10 Minute, checked out with rsh onto a NFS mounted sandbox, both sets of trafic on the same 100Mb network) NFS/SMB mounted repositoryDON'T DO IT (for other reasons, search the archive for this list for network file system|SMB|NFS). Greetings, Michael -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: from cvs@localhost.localdomain
Guus Leeuw jr. wrote: -Original Message- From: [EMAIL PROTECTED] [mailto:info-cvs- [EMAIL PROTECTED] On Behalf Of Parvinder Singh Arora Sent: vendredi 11 février 2005 17:58 To: info-cvs@gnu.org Subject: from [EMAIL PROTECTED] Where do i need to update this at my server ? Read the sendmail/postfix manual, and the Admin Guide of your OS, so as to know how you set hostname / domainname for a server. Guus On a Fedora Core system you have to fix an install fault. the line with local host should just have local host. the short name for the machine should be on the line with the actual IP and Fully Qualified Domain name. example 127.0.0.1 localhost.localdomain localhost 192.168.1.128 cvshost.example.com cvshost this at least has fixed it for me. (older distributions normally even had a note just above localhost that indicated that was all that should be on that line!) -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: #cvs.locks directories multiplying
John Davin wrote: SNIP Sorry, I can not help you with the #cvs.locks, but I have cvs version 1.11.17 and 1.11.5 (and that one can not be upgraded because it's on a shared cluster which I don't have root on). SNIP If you are using rsh or ssh instead of pserver to login, you can compile cvs and put it in your home directory structure, and then set CVS_SERVER=/home/myusername/whereinstalledcvs/bin/cvs in the client environment. ends up being a nice way to test out new cvs versions yourself before putting them in production use. BTW, are the #cvs.locks created on the server or in your sandbox? -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: cvs log: incorrect usage?
coach24 wrote: If my repository is /usr/local/cvs, am I not supposed to be able to do this: cvs log /usr/local/cvs/project/file.py,v I get the *PANIC* administration files missing error every time. There is a CVS directory for that project. This command doesn't work on two different machines in three different repositories. What gives? ClueX4 yourself until you no longer feel the need to use commands directly on the repository files after you set it up, with _one_ exception the backup routine. :) Now, if the cvs log command is only supposed to be used in checked out sandboxes, fine. This is a true statement. What can I do then to be able to parse repository files for tags? In a sandbox: cvs log file.py |grep -A25 symbolic names: everything between symbolic names: and keyword substitution: is a relationship between a tag and a file revision. Does this help? Thanks for your help, Bob PS cvs history on the same pathname works just fine. um, don't do that either. :) -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: cvs log: incorrect usage?
Bob McCallister wrote: But what if I want to know what tags are available for a given project? We have a librarian who checks out tagged versions of projects to their production location. That librarian has no idea who is working on the project and therefore doesn't know where the working copies reside. Are you saying the librarian should have to check out a copy just to get the tags? 1) You already indicated the librarian HAS a checked out copy as part of thier job. :) the log command IIRC lists ALL revisions and tags, not just the one that was used to checkout a version. 2) as larry mentioned rlog (on current versions) will work without a checked out copy. 3) how is your libriarian to know what one they should be checking out anyway? Surely your process includes passing along the current production tag, correct? coach24 wrote: If my repository is /usr/local/cvs, am I not supposed to be able to do this: cvs log /usr/local/cvs/project/file.py,v I get the *PANIC* administration files missing error every time. There is a CVS directory for that project. This command doesn't work on two different machines in three different repositories. What gives? ClueX4 yourself until you no longer feel the need to use commands directly on the repository files after you set it up, with _one_ exception the backup routine. :) Now, if the cvs log command is only supposed to be used in checked out sandboxes, fine. This is a true statement. What can I do then to be able to parse repository files for tags? In a sandbox: cvs log file.py |grep -A25 symbolic names: everything between symbolic names: and keyword substitution: is a relationship between a tag and a file revision. Does this help? Thanks for your help, Bob PS cvs history on the same pathname works just fine. um, don't do that either. :) -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter __ This e-mail has been scanned by MCI Managed Email Content Service, using Skeptic(tm) technology powered by MessageLabs. For more information on MCI's Managed Email Content Service, visit http://www.mci.com. __ -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: cvs log: incorrect usage?
Bob McCallister wrote: You misunderstood me. The librarian is presented with a screen that lists all the projects. He clicks on a project and is presented with a list of tags (in theory). He then chooses which tag and *then* the project is checked out to its target directory. I suppose there are processes in place to help him choose the correct tag from the list. As for cvs rlog - I get a deprecated warning (use log) and I got an error that the directory was not found. My $CVSROOT was set accordingly. try `cvs --version` the rlog command is deprecated was fixed/changed between cvs-1.11 and cvs-1.11.1, it really is time for you to upgrade, there have been numerous fixes including security since then. Bob McCallister wrote: But what if I want to know what tags are available for a given project? We have a librarian who checks out tagged versions of projects to their production location. That librarian has no idea who is working on the project and therefore doesn't know where the working copies reside. Are you saying the librarian should have to check out a copy just to get the tags? 1) You already indicated the librarian HAS a checked out copy as part of thier job. :) the log command IIRC lists ALL revisions and tags, not just the one that was used to checkout a version. 2) as larry mentioned rlog (on current versions) will work without a checked out copy. 3) how is your libriarian to know what one they should be checking out anyway? Surely your process includes passing along the current production tag, correct? SNIP -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Can I turn off merge conflict markers?
Mark E. Hamilton wrote: [EMAIL PROTECTED] wrote: Can I set a cvs update option so that it will only report merge conflict files and NOT modify them with conflict markers? It does not appear that cvs update has an option like this, but maybe there is some trick someone can clue me in on. Probably not, but the CVS gurus here would know. When you get a file where automatic merge fails CVS will report a merge conflict and then modify the offending file with conflict markers: ...which is fine most of the time, but now I have a situation where I'm working in a project with someone else's code and I'm getting a lot of these. The difference for these files are trivial. It's a lot of extra hassle to have to go delete all these conflict markers. It's sufficient for me to know there is a problem. I want to update what I can, but I don't want cvs to touch the conflicted files. I just want it to report them. As I see it you've really only got three choices: 1. cvs update -C foo.c This will replace the file with a fresh version from the repository, discarding all the changes made in the sandbox version of the file, including those that merged successfully (ie, didn't cause a conflict.) Sometimes this is the right thing to do; you'll have to decide. 2. cp .#foo.c.x.y This will replace the updated version of the file with the version prior to the update, discarding all the changes made in the repository version of the file, including those that merged successfully (ie, didn't cause a conflict.) This is almost never the right thing to do. 3. Deal with those pesky conflicts and edit them as necessary. This is the right thing to do. This is the only answer that will retain any changes that were successfully merged. The caveat of course is that you need to run your tests after the update, because even changes that successfully merged might still be logically incorrect with the changes made in the sandbox. I believe Mark's responses are correct, but you might be able to use some other commands to deal with it the way you want. 1. make separate lists of files with and without conflicts (look for C in the output of update). cvs -n update 21 | \ process_to_separate_filenames_with_conflicts 2. just update those without conflicts. for i in `cat files_without_conflicts`; \ do cvs update $i;done 3. do something special for the ones with conflicts. for i in `cat files_with_conflicts`; \ do marks_method_1or2 $i;done marks_method_3 is the only known correct method, but your situation might be special. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
[slightly OT] Re: best production practice?
bobby temper wrote: Hello, Thanks for the answers. I also agree with Jim, but it might be hard to convince content people that they have to go throught a staging first, for simple stuff. I will definitly do whatever i can, tho :). Todd, what you're saying refers actually to what i'm asking: the production code is a checked out copy? (with the cvs folders, etc...). We already have a tag/branch procedure. The problem is, as now, we have a cvs export copy on production (and no cvs client on production either...). I'm wondering if it would be better to install a cvs client, and have the code being a cvs checkout copy. That way, we could do like you're proposing, with cvs diff. I'm actually just wondering if doing it that way has some drawbacks, vs doing a cvs export/tar-gzip/scp procedure. OUCH. OK, I am sometimes considered an SOB by those that work with me when it comes to releases, but it sounds like it is time for 1) the production machine to have the number of user names reduced to root+otherinstalleddefaultusers projectadmin or 2) the production area locked down so only root project admin can make modifications. If I was the person who had to answer what is in the production machine today?, I would make three documents document 1) I, [my name], have permission to [insert lock down method] the production [machine|area], and anyone who subverts that gets [insert appropriate punishment]. This will be implementing an industry best practice [site sources (besides/in addition to Jim me)][1] boss_signature_hereDate. document 2) I, [my name], am not responsible for the content of the production machine even though it has been suggested to customers we have someone in that job. boss_signature_hereDate. document 3) I, [my name], have informed [boss's name] that the production [machine|area], is out of control, and anyone with [insert level of access] can modify it at will and the changes will not be recorded in version control, so we can not track who or when a change was made. I, [my name], have informed [boss's name] of the following method for correcting the situation and been denied. [insert method(s) here] boss_signature_hereDate. I would then take them to my boss, and indicate s/he should pick one and sign it. BTW I am camping as physically close to my boss's person as is possible during working hours until one is signed. :) 1 gets you the ability to fix the problem. 2 indicates it should not be your butt that is the one to kick if there is a problem with what is on the production machine/area. 3 indicates the boss's butt is the one to kick _if/WHEN_ there is a problem with what is on the production machine/area. If the boss refuses to sign any of them... 1) email the concerns and fixes to the boss, and print a copy. 2) keep a note book recording the documents, the email when they were presented. 3) consider if it is worth going to the boss's boss with the notebook. Sometimes you just have to drop back to these kind of strong arm tactics to get what is needed, and keep your own head. if the boss picks #1 (this is what you hope for), you can implement the corrective change ... tell the complaining people the boss indicated it should be done, and (to relieve some of the stress you just applied to his/her arm) tell the boss to tell them we are implementing industry best practices...(pause to see if they complain more, if so finish with) you will work with it. If you do not feel it is best practice, document why, and site your sources. before they show up in the bosses office. Regards, Bobby SNIP [1] you could start by searching the mailing list for other people dealing with release management http://www.cmcrossroads.com/bradapp/acme/ http://www.cmcrossroads.com/bradapp/acme/#BuildRepro http://www.cmcrossroads.com/bradapp/acme/repro/SoftwareReconstruction.html http://lists.gnu.org/pipermail/info-cvs http://www.google.com/search?hl=enq=release+managmentbtnG=Google+Search http://www.google.com/search?hl=enlr=q=%22release+managment%22+CVSbtnG=Search http://www.google.com/search?hl=enlr=q=%22release+management%22btnG=Search http://www.google.com/search?hl=enlr=q=%22release+management%22+CVSbtnG=Search http://www.google.com/search?hl=enlr=q=%22release+management%22+%22best+practices%22btnG=Search http://www.google.com/search?hl=enlr=q=%22release+management%22+%22best+practices%22+cvs+-pvcsbtnG=Search http://www.w3.org/OOP/9606_Workshop/submissions/31-W3COMG.html http://www.wipro.com/prodesign/focusareas/complatforms/complatpcasestudy8.htm you get the picture right? -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: best production practice?
Jim.Hyslop wrote: bobby temper wrote: What i meant is that, we have the code running on a production machine. Now and then, that code gets changed, and sometimes, it's content gets out of sync with whats on production (ie. for example. someone edit directly on production, for a hotfix (i know this is bad, but fast for changing a simple text, link, etc...) and forget to do the changes in cvs. This practise *MUST* stop. Do whatever it takes to make it stop, otherwise one day you *will* get burned, and badly. Changing a simple text is no excuse. Problem solved. I agree with Jim that you must stop the practice, as it *will* get burned, however Jim he still needs a method to DETECT violation of the integrity of the production set, for as long as he is still working with his bosses to get the policy fixed. for detection, the following might do it. if you use tags to checkout for a release, try `cd head/of/project/; cvs diff -rTagShownInThisSet`, if you get anything, a violation has occurred, attempt to find the violator and use a LART as necessary. without tags just using `cvs diff ` might get you started, if you get anything, a violation has occurred, attempt to find the violator and use a LART as necessary. Also without tags, it is time to talk to the boss and get the procedure changed at least to indicate releases shall be made only from tags. All Production releases should be if possible made by using your build system, or a release build system, to do a checkout, tag if the checkout was not of a tag, build package, in this way you can be sure to be able to recreate releases. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the WarfighterThe opinions expressed here are not sanctioned by and do not necessarily represent those of my employer. ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: CVS install Help
Steve wrote: I installed CVS on box 192.168.1.5 I wanted this to be my server. I then installed CVS on a separate PC 192.168.1.10 How can I point to the X.X.X.5 machine? I setup the remote repository. I specified a hostname etc. I am not understanding what I need to do to the server side and client so I can check out files. btw: I used nt* as the network protocol on the .5 machine. What am I missing. Obviously a lot. Maybe a very simple test I can do for the server and then for the client to get me started. or is there a tutorial online? For Normal CVS https://www.cvshome.org/docs/ https://www.cvshome.org/docs/manual/ https://www.cvshome.org/docs/manual/cvs-1.11.19/cvs_2.html#SEC26 I am extremely brand new to this. I need to get this working so people can begin checking out code and incorporate this with Eclipse. Your starting to use Windows words I think, so you might be more interested in CVSNT. if you can run the cvs client on the command line try running cvs --version if it reports CVSNT you are definitely more interested in their variant. http://www.cvsnt.com/cvspro/ http://www.cvsnt.org/wiki/InstallationTips http://www.cvsnt.org/manual/html/ specifically http://www.cvsnt.org/manual/html/Remote-repositories.html They have a mailing list described at: http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt Please any help is extremely appreciated. Even a book which I can buy is good. I need a simple step by step guide to get the server and client working. Btw: Do I need to map drives? I really don't want to do this. I have programmers who cannot map a drive. Correct, mapping drives (filesystem over network) is a BAD* idea under either CVS. *under all but most careful circumstances, and even there it worries people. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: changing revision number
Sam Steingold wrote: I have a file foo at revision 1.1234. It was extensively modified and committed as 1.1235. I wish it were committed as 2.0 instead. What are my options? All I can think of at the moment is: 1. cvs admin -o 1.1235 foo 2. edit CVS/Entries 3. cvs ci -r 2.0 foo is there a better way? in particular, DIUC that cvs ci -r 2.0 foo will _add_ a revision 2.0 on top of 1.1235 (not replace 1.1235 with 2.0)? (I know about tags, and I do not wish to use them here. All I want is to change the revision number, that is all. I am not interested in branching c c) Thanks. 1. UM, if I read the help right that will DELETE the specified version. 2. Don't think that will work. 3. that might work. Note that there are some assumptions that CVS makes about version numbers and hand tweaking them as you are suggesting has implications later on. the usual suggestion is to remember revision numbers are something only cvs should be looking at, if you want something for a human to look at apply a tag. see the following threads for some of the problems that can be caused by forcing a version: http://lists.gnu.org/archive/cgi-bin/namazu.cgi?query=revision+2.0submit=Search%21idxname=info-cvsmax=20result=normalsort=score http://lists.gnu.org/archive/html/info-cvs/2002-06/msg00013.html http://lists.gnu.org/archive/html/info-cvs/2004-12/msg00162.html http://lists.gnu.org/archive/html/info-cvs/2003-05/msg00065.html -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: user permissions of files and directories
Matthias Friebe wrote: Hey folks, I was unsuccessfully checking several CVS documentation for user permissions in CVS. What we want to do is give explicit read permissions to users for files/directories. By default a user should have no read or write access to files/directories unless we specify that they do. I don't know if this is possible with using the ssh option because I think they assume that the user with ssh access can already access the files on the machine depending on the local file permissions. Is there another way to do this without manually changing all the local file permissions for each files/directories, because that is tedious, not flexible and it is not working properly. The reason is that when someone is committing files, he is changing the user and group permissions of the files in the repository! Any help is highly appreciated. -Matt If you want to give someone read access, but not write access, remove their ability to write to the $CVSROOT directories and give them the capability to write in the LockDir defined in CVSROOT/config . https://www.cvshome.org/docs/manual/cvs-1.11.18/cvs_2.html#SEC13 https://www.cvshome.org/docs/manual/cvs-1.11.18/cvs_2.html#SEC17 https://www.cvshome.org/docs/manual/cvs-1.11.18/cvs_18.html#SEC182 If you do not want them to even have read access, then they must not have read or write access to the _DIRECTORY_. that is, as you indicated above if they can get to it with their ssh access then they can get to it with CVS. (there are a couple of things that make it so CVS has might have less access than their ssh, but if you look at it from the ssh perspective you will only wonder why they don't have access instead of answering why DID they have access). Let me repeat, to be clear, CVS uses the permissions on the _DIRECTORY_ to control access for reading, it also uses the DIRECTORY permissions for writing but those permissions may be tailored down a little more using the cvs_acls script (look in the contrib directory). LockDir can be used to open up read permissions some. https://www.cvshome.org/docs/manual/cvs-1.11.18/cvs_2.html#SEC17 https://www.cvshome.org/docs/manual/cvs-1.11.18/cvs_18.html#SEC182 Note the cvs-1.11.19 manual is out, but I had these links handy from last week. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: user privileges for files / dirs / modules
Larry Jones wrote: [EMAIL PROTECTED] writes: I'm not trying to do anything special. Just for some reason, if I co/ci a file in my .../CVSROOT dir, other files perms get reset, e.g., logtags and taglogs. That's because whenever you check in something in $CVSROOT/CVSROOT, *all* of the administrative files get re-checked out (that's what the Rebuilding administrative file database message that you get during check in means). Why are you changing the permissions on your administrative files? I repeat -- what is it that you're trying to do? What it appeared to me he wanted, was that his taglogs script would be executable for use in something like taginfo... but that every time he checked a file into $CVSROOT/CVSROOT the permissions on $CVSROOT/CVSROOT/taglogs went back to -r--r--r--. Christopher, may I suggest that it might be informative for you to do the following on the server machine. after a commit of a file to $CVSROOT/CVSROOT do: ls -l $CVSROOT/CVSROOT/taglogs* I think the output would be something along the lines of: -r--r--r--1 chris cg 1234 date /cm/SLQ32/ICAD/Repository/CVSROOT/taglogs -r--r--r--1 chris cg 1290 date /cm/SLQ32/ICAD/Repository/CVSROOT/taglogs,v but what you want is: -r-xr-xr-x1 chris cg 1234 date /cm/SLQ32/ICAD/Repository/CVSROOT/taglogs -r-xr-xr-x1 chris cg 1290 date /cm/SLQ32/ICAD/Repository/CVSROOT/taglogs,v As I mentioned yesterday, CVS will keep the execute bits set on checkouts IFF they are set on the ,v file. Also IFF the execute bits are set on the file in the sandbox, when the following is done `cvs add executablefile; \ cvs commit -m add an executable executablefile` i.e., when the file is first added to the repo, then CVS will set the execute bits on the ,v file. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: user privileges for files / dirs / modules
[EMAIL PROTECTED] wrote: -Original Message- From: Larry Jones [mailto:[EMAIL PROTECTED] [EMAIL PROTECTED] writes: Yes I started the discussion back then too, and did not get (or I couldn't filter out) a straight answer. So once checked-in with the wrong perms, how does one correct it? By changing the permissions on the RCS file in the repository. The permissions on the working file are the same as the permissions on the RCS file except that the read permissions are copied to the write permissions and the user's umask is applied. Thanks, but I believe I've done this, that is, changing the RCS file perms to no avail. Now I remember asking where in the RCS file, and getting not in the RCS file, but of the RCS file. The RCS portion of CVS will carry the execute bit if set when the file is add+commited, to change that use 'chmod oug-x $CVSROOT/$relitivepath/file,v' (with the chmod on a linux system anyway). if you are using one of the 'cvs watch` commands and you do a checkout the file in your sandbox may be read only. https://www.cvshome.org/docs/manual/cvs-1.11.18/cvs_10.html#SEC88 for your taglogs file I think what you want is chmod oug+x $CVSROOT/CVSROOT/taglogs,v then commit something to the $CVSROOT/CVSROOT directory to make sure it is set correctly. This is different than what matthias was asking when the thread was started (if I understood correctly). matthias's question is usually answered by indicating, set the permissions of your DIRECTORIES to limit write access and in some cases read access to the repository directories. If you can not read a repository directory, you can not read the file in it IIRC. If you can not write to a repository directory, you can not change a file in it. with CVS, If you can not write to a repository directory AND LockDir is not set to somewhere that you can write to, you can not do a checkout IIRC. https://www.cvshome.org/docs/manual/cvs-1.11.18/cvs_2.html#SEC13 https://www.cvshome.org/docs/manual/cvs-1.11.18/cvs_2.html#SEC17 If you want to give someone read access, but not write access, remove their ability to write to the $CVSROOT directories and use LockDir in CVSROOT/config . https://www.cvshome.org/docs/manual/cvs-1.11.18/cvs_18.html#SEC182 Does this help the understanding? -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: Sharing Common Files
Matt Doar wrote: Perhaps this is belabouring the obvious, but soft links within repositories are not versioned, so when you want to change where the link points to in a few months from now, you won't be able to build the older versions of your product. I meant to indicate that these were in the SANDBOX but missed doing it before hitting send. Jim is correct though, if someone does a 'cvs add SANDBOX/proj_2_tree/dir1/file1; cvs commit` cvs will blithely add and commit the contents to a new place in the repository and ignore the original in SANDBOX/proj_2_tree/proj_1_tree/ IIRC. If I HAD to do what this guy was asking I would probably put a target in my Makefile to make sure it was always a softlink... we are talking procedures, knowledge and the ability of your workers to follow the procedures using the knowledge. The better route would be to make proj_1_tree a sub module of proj_2_tree and have your build system use the file relative to the build position, i.e., in SANDBOX/proj_2_tree/dir1/needsfile1.c put the following line #include ../proj_1_tree/file1.h and put the appropriate things in your link line. plus have the build program in SANDBOX/proj_2_tree/ build all the things needed in the proj_1_tree/ So regardless of whether you are linking to files or directories, server side soft links are not a good idea. A client side script to recreate them can be versioned. client side is what I had meant. but it is still not the best way. Modules are not versioned either, though I think there was a patch to do this a few months ago, but you can define new modules and still preserve the older ones. ~Matt -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jim.Hyslop Sent: Monday, January 31, 2005 8:25 AM To: 'Todd Denniston'; Dean Do Cc: info-cvs@gnu.org Subject: RE: Sharing Common Files Todd Denniston wrote: assuming unix, in proj_2_tree | |- dir1 |- file1 softlink to ../proj_1_tree/file1 |- dir2 |- file2 softlink to ../proj_1_tree/file2 |- file3 softlink to ../proj_1_tree/file3 |- proj_1_tree | |- file1 |- file2 |- file3 Is soft link the same as a symlink? If they are different, then the rest of this message _might_ not apply. If they are the same, then this is a Really Bad Idea. The problem is, CVS sees dir1/file1 and proj_1_tree/file1 as completely separate, independent files. If user A is checking into dir1, then CVS will not lock proj_1_tree. This means that user B can simultaneously check in changes into proj_1_tree - leading to... shall we say, all kinds of fun. Bottom line: symlinks, if used at all, should _only_ be used for directories, not for files. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs
Re: segmenting a CVS repository
Tate Austin wrote: I'm used to using CVS thrugh GUI's (eclipse, etc) and I'm now in an environment where we are command line bound and I have a sizeable project in a CVS repository. When I make one change to one file, it is simply too time consuming to do cvsupdate from the CLI to just get a few files. did you mean 'When I want to make a change to one file, it is simply too time consuming to do cvs checkout of the whole repository to just get that file.'? Some people would indicate that you really only need to do the full checkout once and then update before starting new work so you only incur the big wait once (Disk space is cheap today, for most coding projects). But you can if you want check a single file out of cvs, like so: cvs checkout module/subpath/filename if you only want one sudirectory and none of it's sub-directories try: cvs checkout -l module/subpath/ For more info please look at the Manual, and try 'cvs checkout --help' Is there an alternative to breaking the project up into seperate modules, like a more appropriate command for the situation? See above Or have I just named the reason for modules?:-) Possibly, if it makes sense for everyone on the project to only be wanting specific sub trees (you can also use modules to group sub trees). if it is just you, then the above methods are probably preferable. -- Todd Denniston Crane Division, Naval Surface Warfare Center (NSWC Crane) Harnessing the Power of Technology for the Warfighter ___ Info-cvs mailing list Info-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/info-cvs