Re: updating Entries files only

2005-04-19 Thread Frederic Brehm
How about renaming the *repository* directory ABC to abc? Try it (in a copy of 
the repository) and see if it breaks anything that you care about.
Fred
Spiro Trikaliotis wrote:
Hello Jim,
* On Tue, Apr 19, 2005 at 03:31:33PM -0400 Jim.Hyslop wrote:
 

If you get into that situation, then the solution is to (a) go rap
somebody's knuckles, then (b) fix the collision in the repository.

Well, renaming ABC/ to abc/ was a deliberate decision as all directories
should be lowercase on our side. We did not know that CVS has such a
problem with this.
Removing ABC/ from the repository would break history and the ability to
build old versions, thus, it is out of question. Yes, we use co -P,
thus, I would have assumed that ABC/ is already gone before abc/ is
tried to be checked out. Anyway, this is not the case.
IMHO, this is a CVS bug, isn't it?

If you want to use cvs, you HAVE to fiddle around with the Entries
file.

I would disagree completely with that statement.

I'm sorry, this statement was not meant as it seems to be. It's my
fault, I should have formulated it more precisely.
Thus, I reformulate:
  IN THIS SITUATION [given above], if you want to use cvs, you HAVE to
  fiddle around with the Entries file [because CVS will not work
  otherwise].
Regards,
   Spiro.
--
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Restricting use of 'cvs rtag' 'cvs tag' commands [2nd try]

2005-02-23 Thread Frederic Brehm
Install cvs in a different place than the version you are using.
Make a script named cvs in the current location of cvs. That script should 
check the cvs commands vs. valid users. If everything is OK, then it should 
invoke the new cvs in the new place with the arguments passed to it.
This won't protect you from truly malicious developers who invoke cvs directly 
from the new location, but you probably have already fired those people from 
your project. :-)
Fred
David Leskovac wrote:
[I sent this msg 10 days ago  noone responded. So, I'm trying again.]
Hello,
We are currently using an ancient version of CVS (1.11.1p1) on a rather old Linux server 
(Red Hat 6). I intend to upgrade to CVS 1.11.19  eventually upgrade the Linux OS. In 
the course of our CVS upgrade discussion we started discussing how to increase security 
with regards to CVS access. I am aware of the cvsacls script that provides fairly 
fine-grained permissions to do check-ins but is there also a way of restricting who is 
allowed to do certain cvs commands? In particular, we would like to restrict who can 
create/delete tags  branch tags. Is it possible to restrict 'cvs tag'  'cvs rtag' 
on a user or group level?
Thanks,
-Dave
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs

--
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: [Fwd: Q on keyword substitution]

2005-01-11 Thread Frederic Brehm

Pierre Asselin wrote:
Well, suppose you edit the file and add a line with a '$Rvision' marker,
misspelled.  You commit that, the bad marker goes in the repository.  You
check out or update, the keyword is not expanded/clobbered because of
the spelling error.  The information you need is still present in the
repository and you can still see it, e.g. with 'cvs annotate', but
someone will have to edit the file and manually correct the bad line.
If you are going to depend on the expansion of a keyword, 
then your process should specify a check that the keyword is 
expanded correctly immediately after a commit. Your local 
file will have the expansion. If it doesn't, then correct 
the misspelling and try again.

My suggestion was to use a spelling that can be checked by a utility,
and to enforce that check in a commitinfo hook.
You can do that anyway. Just make a commitinfo hook that 
tries to find the string '$Revision: ' in the file. Of 
course, that leads to extra configuration management work 
because you probably want to exclude some files from the 
check. That, of course, can lead to more errors.

You still need pay attention to process.
Fred
--
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: .cvsignore *.

2005-01-11 Thread Frederic Brehm

Thomas Bornhaupt wrote:
I want to ignore
*.
my C-Compiler creates binary files without extension. But this files are not
nessesary in the CVS
Are you running on a Unix system? If so, then *. matches 
files with a period as the last character. Files without an 
extension may not have that period. '*' matches files 
without a period, but it also matches all files.

If you are running on a Windows system and using CVSNT 
version 2.0.51d (the one I tested with), then '*' matches a 
file without an extension. Unfortunately, it also matches 
all files.

I'm not sure there's a way to specify all files without an 
extension that also doesn't match all files. Maybe this 
is a bug in CVS.

But then, one could claim that your C compiler has a bug. :-)
Just out of curiosity, what C compiler are you using?
Fred
--
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Two different platforms sharing common code base: How to do so?

2004-11-29 Thread Frederic Brehm
At 06:30 AM 11/29/2004, Spiro Trikaliotis wrote:
No. 1 has been rejected, as the Linux guys thing: GNUMakefile is a
name which is reserved for makefiles which use GNU-specific extensions.
Choose a different name.
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: new user - do people store compiled code under cvs

2004-11-29 Thread Frederic Brehm
At 04:39 PM 11/29/2004, Rachel Suddeth \(Bloodhound Software\) wrote:
would you save versions of things like executables, p-code, or DLLs
No. Not in CVS.
It's a good idea to save a copy of whatever you release to your clients so 
you can recreate your client's environment. However, CVS is not really good 
at storing binary information.

I just make tar or zip files of whatever I release, name the file 
appropriately, and put it in a well-known place. There are far, far fewer 
of these than versions of source files in CVS.

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: how to check out a project which contains modules from different branches

2004-11-11 Thread Frederic Brehm
I have done this for a project. It was very successful. It was in MS 
Windows, too.

Also, useful to our environment, each of those cvs checkout commands can 
have different CVSROOT values. Once the checkout is done, CVS keeps track 
of the repository for each directory and there is no problem with update or 
commit.

BTW, since the checkout.{sh,cmd} file is version controlled, this is one 
way to get around the static module definitions in CVSROOT/modules.

Another beneficial side effect is that your build script (put it in the 
X-wrapper module) can assume the directory structure created by the 
checkout script, and it is version controlled along with that structure.

I also added a script to check for the presence of third party modules 
required by the build script. If it didn't find something, it pointed to a 
file with instructions on how to order/download/create the required software.

What's my measure of success? Well, I'm no longer working on the project (I 
just did the SCM), but the project has grown and I see that the developers 
keep files in the wrapper module up to date, AND nobody asks me to fix 
anything.

Fred
At 08:30 PM 11/10/2004, Pierre Asselin wrote:
Would a two-step process work for you ?  Recently I've been thinking
about a wrapper project.  Something that would work thus:
$ cvs checkout X-wrapper
U X-wrapper/README
U X-wrapper/checkout.sh
and the README file would say:
Run sh checkout.sh to get the rest of the tree.  Bye.
The checkout.sh script would contain these commands,
cvs checkout C
cvs checkout -r branch_2-5 A
cvs checkout B
and by running it you would get the correct revision of
each subtree.  The script is rev-controlled, so it can track
changes in branch tags when subprojects get merged to
their trunks.
I guess this sort of thing (programmability) comes more
naturally in *nix.  Bah, even Windows lets you write
a checkout.bat, so it will work there too.
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


RE: How to format source code on commit

2004-11-09 Thread Frederic Brehm
At 11:47 AM 11/9/2004, Matt Doar wrote:
This works for me with indent on C source. It is a little disturbing to
commit a file and then have emacs tell you the file has changed, because
it was reindented.
Will this work correctly with client/server CVS? The reformatting will 
happen on the server, but the client will never be notified. I would think 
that the next commit by the same client could get into trouble.

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


RE: How to format source code on commit

2004-11-09 Thread Frederic Brehm
At 12:46 PM 11/9/2004, Matt Doar wrote:
We use client/server. I believe that the local file is formatted and
then sent to the server. Perhaps I'm mistaken?
commitinfo, loginfo, and other CVSROOT scripts run on the server. If they 
didn't then it would be impossible (or at least extremely difficult) to 
write a *info script for a heterogeneous development environment.

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: cvs bulk remove/add

2004-11-08 Thread Frederic Brehm
At 03:47 PM 11/8/2004, Alex Valentine wrote:
One of our developers has a simple task. He wants to move a boatload of
files from one directory /lib to a new directory /src/lib. How can this
be done in CVS without having to individually add and remove each file?
CVS by itself does not help you automate this task. Write a script.
Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: how to delete a branch

2004-09-30 Thread Frederic Brehm
At 11:29 AM 9/30/2004, Bill wrote:
I created some branch for exercising. Now I have trouble to delete them.
Is the presence of the branch interfering with something? Why not just let 
it be?

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


RE: CVS - brief summary

2004-09-10 Thread Frederic Brehm
At 01:51 AM 9/10/2004, Erik Andersson wrote:
Try cvs -q update
He probably meant
cvs -nq update
Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Patch for CVS 1.11.17 and CVS 1.12.9 that allows for actions using specific versions of CVSROOT/modules

2004-09-02 Thread Frederic Brehm
At 02:34 PM 9/2/2004, Mark D. Baushke wrote:
Note: A CVSROOT/modules file that was not branched or tagged will also
need to do something reasonable given a '-M rev' flag.
Isn't the current behavior equivalent to forcing a head revision? That 
seems to be a reasonable default behavior.

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Why's it a sandbox?

2004-08-20 Thread Frederic Brehm
At 08:26 PM 8/18/2004, Doug Lee wrote:
Hehehe...I think sandbox is a cool term and never thought of it as
at all demeaning.  Sandpit, on the other hand, quickly made me think
maybe someone was trying to be politically correct or something.
Personally, I much prefer sandbox over an overzealous attempt to be
PC any day. :-)
If we really want to be PC, we'll have to get rid of all of those offensive 
terms: execute, kill, abort, trap, dump, ...

:-)
I like the term sandbox, too. I've never heard an EE complain that the 
term breadboard demeans them as bakers. Lighten up!

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: /#cvs.lock): No such file or directoryctory for some directory inrepository

2004-08-18 Thread Frederic Brehm
At 05:37 AM 8/18/2004, Jim Page - emailsystems.com wrote:
I think I have expressed myself badly. Our developers are working on both
windows and linux -at the same time-. Either with 2 dev boxes, or using
VMware to run the other OS, with a partition shared between the 2. What is
being suggested here is using commit to propogate changes between a given
developer's OS-specific sandboxes during development. I am talking here
about 'ok that fix builds under windows, lets see if builds under linux'. In
our case right now this class of commit would not be done, and I can't see
how this won't lead to an increased risk of nonsense in the repository.
Maybe I'm splitting hairs but even if the risk is small it just doesn't seem
a good idea. I can't believe our situation is all that rare.

You might consider using branches. Make the commits on the branches, test, 
then if everything works correctly you can merge to the trunk. That way, 
the trunk has a high probability of not being broken.

Yes, this has more steps. However, you are working in a more complicated 
environment than usual so you shouldn't be surprised by extra complexity in 
the development process.

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: group permissions on parts of a module

2004-08-05 Thread Frederic Brehm
At 12:34 AM 8/5/2004, Mark D. Baushke wrote:
Failing that, have a crontab job run thru the tree
every so often and change the group for you.
I suppose another way around it would be to run
the cvs executable on your server as a set-gid
process. I don't recommend it unless you know what
you are doing.
Could you also put a chgrp command in a commitinfo script to change the 
group of files being committed? I'm not sure that will work, though.

How about making a commitinfo script that starts a process in the 
background that sleeps a short time and then does a chgrp on all on all the 
files in the repository directory involved in the commit? That should do it 
and will probably be better than a crontab job.

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: commitinfo file question

2004-08-05 Thread Frederic Brehm
At 12:41 PM 8/5/2004, Tennis Smith wrote:
I have a question concerning commitinfo and project standards. Is it
possible to run an app (called by commitinfo) against a particular file in
a specific sandbox at commit time? I'm trying to prototype a stylechecker
and don't want anyone but myself affected initially.
Commitinfo scripts can see only the files that are being committed, unless 
you are running with a local repository. Then the script can see all of 
your files.

It's probably easiest to create a new temporary and test your commitinfo 
script in there.

You could also check $USER in the commitinfo script.
Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: commitinfo file question

2004-08-05 Thread Frederic Brehm
At 12:53 PM 8/5/2004, Frederic Brehm wrote:
It's probably easiest to create a new temporary and test your commitinfo 
script in there.
That should be a new temporary REPOSITORY
Sorry,
Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: using cvs history files e, g foo.c, v to clone a hierarchy and retain the history

2004-08-02 Thread Frederic Brehm
At 12:58 PM 8/2/2004, sfgaijin wrote:
I tried just adding the *,v files into cvs via cvs add and cvs update; but
it did not recognize that the special nature of the files;
i.e. I ended up having a bunch of  *,v,v files.
No, no. Just copy the *,v files directly into the new repository.
For example, suppose you want to make a copy of MODULE/FILE from 
/OldCVSROOT into /NewCVSROOT. Just

cp -r /OldCVSROOT/MODULE/FILE,v /NewCVSROOT/MODULE
Of course, if the old and new roots are on different systems and you cannot 
just copy, then you can use any other mechanism to transport the file from 
one system to another.

If you checkout both MODULE sandboxes and run cvs status FILE in both, 
then the output from both will be identical except for the CVSROOT 
directory path.

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Is there a way to Auto-Watch ?

2004-07-29 Thread Frederic Brehm
At 01:05 PM 7/29/2004, Dan White wrote:
The task manager has decreed that all changes to all files will be checked
in on a daily basis.  (Despite the attempted reasoning about how CVS ain't
built that way)
Give everyone a branch to work on and let them commit whenever they want. 
When they are ready to add to the baseline, have the task manager :-) 
perform the merge to the HEAD.

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Any 'contrib' scripts have access to pre-commit source?

2004-07-26 Thread Frederic Brehm
At 06:12 PM 7/26/2004, Peter Connolly wrote:
In order to do this I need
access to the source that is going to be committed.
I think that the default directory of the commitinfo script is the tmp 
directory that contains all of the files being committed. Try an experiment 
with a script that just grep's for some pattern in the list of files being 
committed. If you see the output of grep, then that's the right place. Take 
it from there

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


RE: Probleme using CVS

2004-07-23 Thread Frederic Brehm
At 10:59 AM 7/23/2004, you wrote:
 I can't add the file how have size equal or more than 500 Mo
You might be running out of temporary disk space, or swap space.
use the cvs -t switch on your command and post the result to the list.
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Setting up a new CVSNT or Linux server ??

2004-07-22 Thread Frederic Brehm
At 08:46 PM 7/21/2004, Pierre Asselin wrote:
Frederic Brehm [EMAIL PROTECTED] wrote:
 [ case-sensitive client with case-insensitive server]
 In your scenario, it appears to me that the only failure comes with the
 CVSNT server and UNIX client. In that case, the user knows that there are
 two separate files file and File in the directory and CVS should be
 able to add both but it refuses.
But allowing the add would be worse for the developers on
case-insensitive clients.  For them, the next update would yield
endless messages to move File, it is in the way.
You are presuming a particular process model which is not universally true. 
Therefore, allowing the add is not, a priori, bad.

Is anyone here old enough to remember the phrase The whole world is not a 
VAX?


___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Setting up a new CVSNT or Linux server ??

2004-07-21 Thread Frederic Brehm
At 09:01 AM 7/21/2004, Paul Nusbaum wrote:
I am looking into the options – CVSNT for a server, or possibly Linux.
Well, on this list, you'll probably get recommendations for Linux. If you 
want a recommendation for CVSNT, just ask at [EMAIL PROTECTED] :-)

But, it depends on a lot on your environment. Are you a Windows-only shop 
and expect to never use Linux (or Mac OS X, or Solaris, or many non-Unix 
type systems) for development? Then CVSNT is probably for you.

If you will use any client that runs on something other than Windows, then 
you should probably strongly consider a Linux host. There's other reasons 
to consider a Linux or other Unix-type host, but watch out for religious 
arguments when you start talking about them. [Personally, I'm of the 
Unix-type persuasion.]

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


RE: Setting up a new CVSNT or Linux server ??

2004-07-21 Thread Frederic Brehm
At 09:51 AM 7/21/2004, Jim.Hyslop wrote:
 If you will use any client that runs on something other than
 Windows, then
 you should probably strongly consider a Linux host.
Now, just to be sure this doesn't come across as a religious-type argument,
can you provide a reason for this recommendation?

Filename case sensitivity.
Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


RE: Setting up a new CVSNT or Linux server ??

2004-07-21 Thread Frederic Brehm
At 02:08 PM 7/21/2004, Jim.Hyslop wrote:
OK, let's run through a use-case scenario:
Scenario: Repository has a file named 'file'. User wants to 'cvs add File'.
CVSNT server, Windows client: 'add' command ignored
CVSNT server, UNIX client: 'add' command fails: File added independently by
second party
UNIX server, Windows client: add command ignored
UNIX server, UNIX client: add and commit will succeed.

In your scenario, it appears to me that the only failure comes with the 
CVSNT server and UNIX client. In that case, the user knows that there are 
two separate files file and File in the directory and CVS should be 
able to add both but it refuses. If I were that user, I would think CVS is 
broken. In all other cases, cvs add does the right thing, and another user 
will be able to recreate the sandbox of this user.

So, the only problem comes when CVSNT is used as a server. Therefore, use a 
UNIX server.

If you plan on sharing the same files between Windows and unix-like 
systems, then you have to make sure your filenames are OK on both systems. 
It doesn't matter if you use CVS to do the sharing, or if you send zipped 
directories back and forth. That's a problem that is independent of CVS.

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: History move?

2004-07-18 Thread Frederic Brehm
At 07:29 PM 7/16/2004, Mark Jaffe wrote:
As an example, suppose foo/bar.c is at version 1.23, and the author has 
refactored so that she now wishes the file to become foo/barBase.c. How 
can the history of foo/bar.c be made part of the new file?
http://www.google.com/search?q=rename+file+in+cvs+and+keep+history

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Identifying the user who tagged some files.

2004-07-15 Thread Frederic Brehm
At 01:10 PM 7/15/2004, Jorge Godoy wrote:
Is it possible to identify the user who added some tag? I might add
something at taginfo for that, but I haven't seem an indication that
the username was sent as a parameter on tagging operations...
Have taginfo execute a script and use $USER
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Changes made to project

2004-07-14 Thread Frederic Brehm
At 03:07 PM 7/14/2004, Murrgon wrote:
Bascially what I want to do is set up a build machine that can check
for changes made to the project
Can you use loginfo to send a message or set a flag of some kind on a 
change? Then the build machine can check for the message/flag and build.

You might also want to look at
https://www.cvshome.org/docs/manual/cvs-1.12.9/cvs_18.html#SEC179
Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: How to tell CVS that it should use the proper date/time

2004-07-08 Thread Frederic Brehm
At 12:56 PM 7/8/2004, marko wrote:
I wonder how CVS can be convinced to set the original date/time of a file
at checkin time when I do a checkout!
Use the Source!
But, really. Do you want to do that? Do you expect to use make?
Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: coaxing scientists to use cvs

2004-07-08 Thread Frederic Brehm
At 02:01 PM 7/8/2004, Hensley, Jeffrey L ERDC-ITL-MS Contractor wrote:
So, my real question is coming (thanks for bearing with me thus far). Is 
there any way that the working copy directory that is created would be 
/project or /project2 depending on whether they are checking out the 
latest version, or using a tag and checking out the older version???
Can you teach them to do something like this:
cvs co -d project1 -r v1 project
cvs co -d project2 project
You could also wrap these in scripts and let them use the scripts.
Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Do most people checkout read-only and use cvs edit?

2004-07-07 Thread Frederic Brehm
At 02:01 PM 7/7/2004, Karr, David wrote:
Other SCMs use the strategy that I'm used to as the primary strategy
(checkout read-only, and do a specific operation to put the file into
edit mode).
Not CVS. That C stands for Concurrent. You can find out what that means 
at http://www.loria.fr/~molli/cvs/doc/cvs-paper.pdf

The cvs edit functionality was put in place to help people deal with files 
that cannot be edited concurrently. Note that there are some people on this 
list who think very little of that capability.

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


RE: binary files bad idea? why?

2004-07-01 Thread Frederic Brehm
At 04:09 PM 6/30/2004, Eric Gorr wrote:
So, I'm sorry...what can go wrong here?
Merging.
Start with your test repository.
Checkout two different sandboxes.
In one, make a change to one part of the NIB, binhex, and commit.
In another, make a change to another part of the NIB, binhex, and update.
What happens?
Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Undoing renaming a directory

2004-06-23 Thread Frederic Brehm
At 03:16 AM 6/23/2004, Jean-Christian Imbeault wrote:
renamed a directory from src to source
What cvs command did the developer use to do this? I didn't think this was 
possible.

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Deleting or disabling a user

2004-06-23 Thread Frederic Brehm
At 09:07 AM 6/23/2004, Ramanuj Singh wrote:
The information transmitted is intended only for the person or entity to 
whom it is addressed and may contain confidential and / or privileged 
Material. Any review, re-transmission, dissemination or other use of or 
taking of any action in reliance upon, this information by persons or 
entities other than the intended recipient is prohibited. If you received 
this in error, please contact the sender and delete the material from your 
computer. Thank you for your understanding  co-operation.
You won't get much help when you put this at the end of your email.
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: $CVSROOT/CVSROOT scripts

2004-06-21 Thread Frederic Brehm
At 02:07 PM 6/21/2004, Larry Jones wrote:
If you don't care
about revision control on the scripts

Horrors! Heretic!
:-)
Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Can one user develop concurent versions ?

2004-06-17 Thread Frederic Brehm
At 08:16 AM 6/17/2004, Adrian Constantin wrote:
I wish cvs not to rely to much on the
assumption each user works on exactly one version, one
copy.
CVS keeps the local state information in the CVS directories in your 
sandbox. If you have different sandboxes in different states, then that's 
OK with CVS. CVS makes no assumptions about users and versions.

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: strange cvs diff problem with pcl-cvs and viewcvs

2004-06-15 Thread Frederic Brehm
At 02:40 AM 6/15/2004, Fabian Braennstroem wrote:
 The revision 1.10 is currently the last revision for 'main.f'. My 
problem is,
 that ViewCVS and PCL-cvs don't show any differences between revision 
1.10 and
 1.9; they say that there are no differences!?
I'm not sure how ViewCVS and PCL-cvs run the diff command, but here's a clue.
Suppose you update your sandbox and main.f 1.9 is the version you get. If 
you run cvs diff main.f you will see that there are no differences. 
That's to be expected.

Someone checks in a revision to main.f, producing version 1.10. Now, if you 
run that same cvs diff command again, you will still get no differences! 
That's surprising until you remember that the diff command compares the 
local file with the version in the repository (1.9) that it's based on. To 
see the differences between the local file and the head version you need to 
use the command cvs diff -r HEAD main.f.

So, if your tools are using the cvs diff main.f command, then the output 
you see is correct.

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: ci/co on HEAD for specific files in a branch?

2004-06-14 Thread Frederic Brehm
At 11:43 AM 6/14/2004, Doug Lee wrote:
the HTML document describing the project should not branch but should
be a part of all branches along with the code.
How about not tagging the html file with the branch tag and always check 
out or update with the -f (force head version) flag? Would that work?

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: cvs tag checkout

2004-06-14 Thread Frederic Brehm
At 02:08 PM 6/14/2004, Khyati Nayak wrote:
Is there some way I can specify wild card characters in the rtag command 
to tag some type of files?
On a unix-like system, the wildcards are expanded by the shell using local 
files. Since rtag is supposed to work without a checked-out sandbox, this 
could be a problem.

Also, rtag requires module names as arguments, not filenames.
Wildcards will work with cvs tag for files in the current directory, though.
Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


scm module in CVS (was Reports generation in CVS)

2004-06-03 Thread Frederic Brehm
At 10:04 AM 6/2/2004, Jim.Hyslop wrote:
Fred, this sounds very useful. Would you be able to provide a more detailed
description of this scm module, and perhaps the scripts as well?
I use the scm module (it goes by different names in different projects) 
to encode the project specific software configuration for the project. The 
scripts are not general enough to share, and I couldn't share them without 
going through too many layers of approval. But, I can tell you what they do.

First, some background. Sarnoff is a contract research organization 
involved in lots of technologies besides software. We used to be RCA 
Laboratories back in the day. We have a wide variety of clients with a lot 
of different requirements on the use of information. We have to guard 
customer information so it does not get transmitted to others. We also have 
to guard our own IP -- software, materials, designs, hardware, algorithms, 
etc. -- so its ownership is clearly ours. We use repositories on different 
servers (some belonging to us, some belonging to the client) to isolate 
ownership of software.

A project for a client usually involves combining our IP in ways that fit 
their requirements. BTW, the reason they hire us is for our unique IP, not 
our high price. Also, there is no single library or other product (I wish 
there were) we can produce from our software IP that would fit all of the 
client needs. That usually means developers need modules from different 
repositories in their sandbox.

So, one script is the makesandbox script that creates a sandbox using 
modules from multiple repositories. All of the other scripts depend on the 
structure of this tree. The makesandbox script often also checks for the 
presence of various third-party modules required by the project.

Another script, build builds the software product (or products in some 
cases) in the current sandbox. It could be just a call to make, but it's 
usually more complicated than that (damn Windows).

The script tag tags all the files in the current sandbox. The script may 
impose a particular syntax on the tag. A comment is usually a required 
argument to this script. Various information about the operation is saved 
in a file and committed to the repository. The scm module is also tagged.

Finally, release takes a tag as an argument (and usually a required comment),
1. saves information similar to the tag script,
2. cd's to a directory devoted to creating releases,
3. checks out the scm module into a directory with the name of 
the tag,
4. runs makesandbox with the tag,
5. sets up the proper environment, and then
6. runs build.
All output from the script is redirected to a log file at the top level of 
the sandbox. This guarantees that a final build is produced from a clean 
development tree, and that we can easily archive the build environment. The 
result of this build goes through QA (we don't call it that, but that's 
what it is) and may be combined with other products before being shipped to 
the client.

If the software is shipped wrapped in some kind of installer, then the 
creation of the installer is usually in a separate script. This is because 
commercial installer packages are often licensed to a single person and we 
don't need to have every developer use the package.

Different projects have different wrinkles on these scripts. For example, a 
project may require both some firmware (compiled on Solaris) and a GUI 
(compiled on Windows). In that case, there is more than one build and 
release script.

Some steps may not be easily automated. The scm module always has .txt 
files describing the process required to perform standard actions.

I've considered using SCM packages like ClearCase, but the orientation of 
those packages is to set up a single management policy that is used over a 
long period of time or over a wide variety of products. The requirements in 
our environment change so much between clients that CVS+scripts seems a 
less costly approach.

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Reports generation in CVS

2004-06-02 Thread Frederic Brehm
At 09:02 AM 6/2/2004, Ramanuj Singh wrote:
name of branch or tag, date on which it was created, the author name and 
the name of the module
CVS stores that information in the history file (cvs history -aT). A script 
that parses the output has to be aware that individual files can be tagged, 
not just modules.

If you need more information than that, then your best bet is to collect 
the information yourself in a format that is easy for report generation. 
Write a script that developers will use for tagging. Collect the 
information you need along with the tag they use. Save the information in a 
convenient place. Generate your report from that data.

One method that I use is to have a special module named scm that contains 
scripts for tag, release, and other configuration management 
operations. I teach the developers to use the scripts instead of the raw 
CVS commands. It's easy to get them to use the scripts if you make the 
scripts easy to use. The data gets appended to a file within the module and 
then the file is committed to the repository.

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Newbie: update vs. checkout

2004-05-26 Thread Frederic Brehm
At 01:31 PM 5/26/2004, Irving Kimura wrote:
the difference between update and checkout
Checkout creates a brand new sandbox (working directory) from some version 
of files in the repository. Usually this is the HEAD version, but you can 
specify others.

Update makes the files in an existing sandbox correspond to some version of 
files in the repository merged with local changes if necessary. Usually 
this is the HEAD version of some branch, but you can specify others.

I think that checkout can act like update (in WinCVS only?) if it is run 
from an existing sandbox. Ignore that behavior. It's too confusing.

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


RE: binary files bad idea? why?

2004-05-25 Thread Frederic Brehm
At 10:28 PM 5/21/2004, Greg A. Woods wrote:
If this isn't blatantly obvious to everyone who knows that CVS uses
It's not blatantly obvious that everyone knows how CVS works.
There's a lot of people here who are very smart people and very talented 
developers but view CVS as a black box. There's nothing wrong with that. 
But, because they are so smart, they ask questions. If I say Don't do that 
with CVS, then they ask Why?. If I can't explain it sufficiently, then 
they won't internalize my prescription and they will eventually do that 
anyway. We don't have a formal CM group here but I am the de facto expert. 
At least they are smart enough to ask me before doing something different 
with CVS.

So, I always explain the reasons why one should treat the CVS repository or 
CVS commands in a certain way.

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: Check in and out a file.

2004-05-19 Thread Frederic Brehm
At 08:03 PM 5/18/2004, Hon Seng Phuah wrote:
For example, if five developers check in five different copied of
abc.c at very short delay. I expect to check out abc.c file and rename
them as abc.c.1, abc.c.2, abc.c.3, abc.c.4 and abc.c.5 respectively in
a particular directory.
Cvs doesn't have this feature built in. You can do it manually this way:
cvs co -p -r 1.1 abc.c  abc.c.1
cvs co -p -r 1.2 abc.c  abc.c.2
cvs co -p -r 1.3 abc.c  abc.c.3
cvs co -p -r 1.4 abc.c  abc.c.4
cvs co -p -r 1.5 abc.c  abc.c.5
But then, cvs has no recollection of those abc.c.* files so you won't be 
able to do any cvs operations on them.

Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: Non-build files under CVS control

2004-05-19 Thread Frederic Brehm
At 09:43 AM 5/19/2004, bill wrote:
What is the best way to arrange things such that, at build time,
I can check out only those files that are part of the distribution?

Repeat after me: CVS is not a Configuration Management System.
Good.
Now, here's a couple of ways you can use CVS as part of a CM system.
1. Arrange files in separate cvs modules to separate distributed files from
   support files. This isn't always possible, though.
2. Use a build process (e.g., make release) that creates a distribution
   tree from a cvs sandbox. This is the better solution.
Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: Q: commit to new repo?

2004-05-14 Thread Frederic Brehm
At 09:18 AM 5/14/2004, kj wrote:
Wow!  Let me make sure I have this straight:  do you mean that
instead of doing
...
...(and losing all history info in the process, I suppose) I could
simply do this
  % cp -pr original_repo/myproj new_repo
Yup! You're a quick study. You get an A. :-)



  % rm -rf cvs_repository/project_to_remove

?  Would this mess up the rest of cvs_repository in any way?
I assume that's $CVSROOT/project_to_remove.

It depends. You might have a problem if project_to_remove is part of a 
module definition in $CVSROOT/CVSROOT/modules. The modules file is, I 
believe, the only place where CVS creates dependencies on top-level 
directories in $CVSROOT. Mentioning a non-existent module in the *info 
files in $CVSROOT/CVSROOT is benign.

Of course, deleting a module from the repository means that it's no longer 
there (Duh!). Don't expect CVS operations in a checked out 
project_to_remove sandbox to work. But, you knew that, didn't you?

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: [Fwd: Re: WinCvs Python macros]

2004-05-14 Thread Frederic Brehm
Jim.Hyslop wrote:
Well, let's see. I don't use WinCVS, but my first guess ...
At 02:07 PM 5/14/2004, Paul Levin wrote:
Are you referring to a different FAQ?
You've probably exhausted the knowledge of people on this mailing list. You 
can find the right mailing list for your question at wincvs.org.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: Q: commit to new repo?

2004-05-13 Thread Frederic Brehm
At 03:58 PM 5/13/2004, kj wrote:
I have a whole bunch of source code that I have been committing to
one repository, and now I'm supposed to switch my commits to another
(pre-existing) repository (long story).  I know that I can just
use cvs -d second_repo import, but I'm concerned about losing
a lot of valuable revision history when I do this.  Is there a way
to avoid this information loss?
The history of the file joe.java that you have been working on is in a 
file in the original repository. Do a cvs status joe.java and look on the 
line Repository revision:. It has the name of the repository file. It 
ends in the string /joe.java,v.

Simply copy the joe.java,v file from the original repository into the 
correct place in the new repository.

Fred



___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


RE: ignored 'core' directory (was: A newbie question.)

2004-05-10 Thread Frederic Brehm
At 09:43 AM 5/10/2004, Jim.Hyslop wrote:
I wonder if this could be solved by modifying the behaviour of .cvsignore -
if we could tell CVS to ignore *files* named 'core' but not *directories*
named 'core', then the problem would go away altogether.
We still need a way to ignore directories, though. For example, I don't 
want to save those Debug and Release directories generated by MS Visual 
Studio.

Perhaps the problem is that there is a built-in cvsignore list. Judging 
by messages to this mailing list, people seem to be surprised by cvs 
behavior due to this built-in list more often than behavior due to a 
CVSROOT/cvsignore list that they added themselves.

At 12:23 PM 5/10/2004, Schrum, Allan (Allan) wrote:
Such as

core

for files
and
core/

for directories?
This is a reasonable approach. It doesn't address the surprise issue, but 
it does allow directories to be ignored.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: Personal CVS repository?

2004-05-06 Thread Frederic Brehm
At 10:06 AM 5/6/2004, J Krugman wrote:
For reasons that I'm not too clear on, my supervisor has instructed
me that he must review my code before each submission to the off-site
CVS repository, and he wants to do this once a week.  My only
problem with this is that, even when I am the only programmer in
a project, I prefer to keep a finer-grained version control than
is possible with weekly submissions to the repository.
You didn't say what platform you are using: Windows or Unix(-like).
On unix, you can use RCS or SCCS. Either would work in this case. All 
unix-like systems that I know of come with either RCS or SCCS or both.

Good luck with that boss of yours.
Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: looking for command line interface to CVS

2004-05-04 Thread Frederic Brehm
At 06:19 PM 5/3/2004, Paul Levin wrote:
I can write the asp or perl web page, but how to I get the WinCVS 
update  functionality from a command line?
Download version 1.2 of WinCVS

http://prdownloads.sourceforge.net/cvsgui/WinCvs120.zip?download

It contains a cvs.exe file.

Put it in your PATH and then

cd sandboxdirectory
cvs update
Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


RE: how to checkin binary files

2004-04-23 Thread Frederic Brehm
At 08:59 AM 4/23/2004, Gurpreet Singh (SCM) wrote:
I have observed that code get from a branch is taking lot of time if
compared to that involved in from the Main tree.


CVS uses the rcs file format to store files in the repository. The 
doc/RCSFILES document in the CVS source tree describes how rcs stores 
versions. Basically, the head of the trunk is stored whole. Previous 
versions are stored as backward deltas from the head. Branch versions are 
stored as forward deltas from the branch point.

The RCSFILES document contains the following:

One common concern about the RCS file format is the fact that to get
the head of a branch, one must apply deltas from the head of the trunk
to the branchpoint, and then from the branchpoint to the head of the
branch.
Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: strange it is in the way message

2004-04-22 Thread Frederic Brehm
At 10:24 AM 4/22/2004, Doug Lee wrote:
I've seen this kind of thing when the CVS server is a Unix variant,
the client is in Windows, and the client's CVS\entries file contains
file names in a different case than the actual names on the Unix host.
Could another cause be a server clock that is two seconds ahead of the 
client? I'm seeing cvs update: move away ; it is in the way messages 
and the only problem I can find is the lack of time synchronization.

This is with WinCVS 1.2 client and CVS 1.11.2 on a Linux box (the 
administrator hasn't yet taken the time to update to a newer version) using 
rsh.

Thanks,
Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


RE: RES: CVS import

2004-04-16 Thread Frederic Brehm

How is this the grep command?  It doesn't support regular expressions which
is kind of the whole point of grep isn't it?
If you're lucky (!) enough to have a Windows 2K box handy, type help 
findstr in a DOS window. You'll see that it does support regular 
expressions. However, the way the strings argument is documented, I think 
that they're better described as irregular expressions. :-)

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: CTRL-M and CTRL-J characters in files

2004-03-24 Thread Frederic Brehm
At 02:31 PM 3/24/2004, Steve deRosier wrote:
To cleanup your current problem, I'd sugest have your Linux guys check out 
the files, run them through dos2unix until the files are cleaned up, check 
them in, and then you need to do an update or checkout without that box 
checked.
You might also want to make sure that the files are not defined as binary. 
cvs status  will show something like Sticky Options: -kb for binary files.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


loginfo and RSS feeds

2004-03-07 Thread Frederic Brehm
Has anyone setup loginfo to produce an RSS feed?

http://blogs.law.harvard.edu/tech/rss

It seems that this might be a good alternative to using mail for notifying 
developers of changes in the repository.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: [OFT] scripting removal of $Id:

2004-02-20 Thread Frederic Brehm
At 10:57 AM 2/20/2004, Euan Guttridge wrote:
Has anybody come across a shell script to parse a large number of text
files, removing the CVS keyword replacement lines (all containing $Id:)?
For example

input:
 package com.shop.backoffice;
 import javax.servlet.http.HttpServletRequest;
 /**
  * Test class for blah
  * $Id: blah.java,v 1.2.2.3 2004/01/21 10:03:04 jwilson Exp $
  */
If you have access to the repository, then you can use cvs export. It will 
turn that Id line into

  * Id: blah.java,v 1.2.2.3 2004/01/21 10:03:04 jwilson Exp
(the $ characters are removed)

There's also a -k switch (check the manual) you can use with cvs update(?) 
or checkout that would leave it

  * $Id$


Of course, if this is third party source, then you need a script.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: How to keep track of revisions of files based on another file?

2004-02-20 Thread Frederic Brehm
At 09:54 AM 2/19/2004, Phil Labonte wrote:
if I want to check out a previous version of one of the files how could I 
check out the corresponding versions of the other files
Look at cvs tag

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: how to support symlinks?

2004-02-18 Thread Frederic Brehm
At 05:27 PM 2/18/2004, Frederic Brehm wrote:
Perhaps it is really, really simple:
cat .symlinks | xargs ln -s
I should never do this just before leaving for home. :-(
That won't work. This has a better chance
#! /bin/bash
for file in $(cat .symlinks); do
ln -s $file .
done
The rest is left as an exercise for the reader.

Good night,
Fred
___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: how to support symlinks?

2004-02-18 Thread Frederic Brehm
At 04:58 PM 2/18/2004, Eric Siegerman wrote:
a simple mechanism has been implemented


Perhaps it is really, really simple:

cat .symlinks | xargs ln -s

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: Build Automation Issues

2004-02-16 Thread Frederic Brehm
At 02:47 PM 2/16/2004, Dhruva B. Reddy wrote:

I was hoping to conditionally tag each module, by checking the exit
status of cvs diff -r tag_from_last_build, but it seems to return 1
even when there are no differences (I tried cvs diff, and it returned
zero--which makes sense because I hadn't edited any files).
Tags are cheap. Just tag everything. If you don't then you'll have problems 
checking out or exporting all the files you will need to build.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: Help and info on line endings

2004-01-28 Thread Frederic Brehm
At 10:58 AM 1/28/2004, Les Spam wrote:
We have been having trouble with line endings because we check out files 
on a Linux server and zip them up for download by users who do not have 
CVS clients. Win9x users end up with line oriented text files that do not 
parse because the scanner sees one long line.
Why don't you check them out on a Windows client?

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: what's to stop a developer from nuking the repository?

2004-01-20 Thread Frederic Brehm
At 04:15 AM 1/20/2004, Andy Jones wrote:
am I right in thinking that Greg's opinion does not reflect the majority 
view?
No.

And besides, Greg is one of the resident experts on CVS. Listen to him.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: automatic checkout

2003-09-16 Thread Frederic Brehm

I would like changes to propagate to the script directory immediately. 
Everytime someone commits, an update would be executed in the script 
directory.  Is that possible?


http://www.cvshome.org/docs/manual/cvs-1.11.6/cvs_18.html#SEC173

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: Deploying?

2003-07-10 Thread Frederic Brehm

I wanted to know what exactly is meant by deploying
software. I work in a project being developed in C
(for Windows and Linux platforms) and we use CVS for
version control. Can we use CVS for deploying?


By deploying I assume you mean creating a product and shipping it to 
customers or users.

As far as CVS is concerned, you would tag the files that will be used to 
create the product and then export (or checkout if you prefer) those files. 
After that, CVS is done and it's up to your other tools and processes.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: ^M Characters - files in dos format

2003-07-03 Thread Frederic Brehm
Lots and lots of people keep asking:

Is there any way to detect
files in dos format during check-in.
and I'm tired of it. So, here's the solution

The script pasted below should do the trick. I cut it down from a larger 
one that has more options, so try it first. The comments should tell you 
what's going on.

I would be very happy if someone could put this into the CVS FAQ, the CVS 
contrib directory, and anywhere else that people who are looking for this 
solution can find it.

Fred

- Cut here -
#! /bin/sh
# SUMMARY
#
# cvs-no-cr
#
# A cvs commitinfo script to prevent files containing
# carriage return characters from getting into the
# repository. This script may not work for files
# with spaces in their names without modification.
# AUTHOR
#
# Frederic W. Brehm, [EMAIL PROTECTED]
# COPYRIGHT
#
# None claimed. This script is free to use as you see fit.
# INSTALLATION
#
# 1. Replace the ^M in the grep command below with a real carriage return.
# 2. Change the error message to meet your local conventions.
# 3. Put this script into $CVSROOT/CVSROOT.
# USAGE
#
# Suppose you want to prevent all *.c and *.h files in module A
# from being checked if they contain a carrage return. Put the following
# line in commitinfo (without the leading #, of course).
#
#   A   $CVSROOT/CVSROOT/cvs-no-cr \.h$,\.c$
###

# the first argument should be the comma-separated pattern for the files
# to check. The patterns are used in a grep command.
PATTERN=`echo $1 | sed -e 's/,/ /g'`
shift
# the second argument, supplied by cvs, is the path to the repository.
REPOSITORY=$1
shift
# subsequent arguments supplied by cvs are file names. Ignore missing ones.
OK=true
for FILE in $*; do
if test -f $FILE; then
for P in $PATTERN; do
if echo $FILE | grep -s $P; then
# N.B. be sure to fix the next line before installing. See above.
if grep -is '^M$' $FILE; then
echo
echo ERROR: $FILE contains a carriage return 
character.
echo
OK=false
fi
fi
fi
done
fi
done

if $OK; then
exit 0
fi
exit 1
- Cut here -


___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: additional fields

2003-06-18 Thread Frederic Brehm
At 06:30 AM 6/18/2003, Patrick  Kennedy wrote:
Is it possible to add custom fields to the repository?
No. But CVS is open source so you can extend it yourself if you are inclined.



I want to attach some meta data (eg: description, synopsis etc) to files in
the repository,
If you want to keep metadata about files you can add a file (metadata.txt 
or something) that and keep the information in there. It's not ideal but 
periodic review can catch problems.



Secondly, can the revision field by a string or does it need to be an
auto-incrementing number?
Don't mess with the revision number (1.n). That's the property of CVS.

Use tags (cvs tag). They can be strings, subject to certain restrictions.



Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: Using dos2unix on commit???

2003-06-13 Thread Frederic Brehm
At 11:47 AM 6/13/2003, Andy Kriger wrote:
I am trying to setup our Unix-based CVS repository to run dos2unix when
files are committed, but I'm not having much luck and don't see any solution
laid out clearly in the mailing lists.
Don't attempt to use a commitinfo script to change a file being checked in. 
It won't work.


So I thought that dos2unix would get the path combined with filename as an
argument.
man dos2unix


Does anyone have an example of this that does work?


Sorry, no. Here's some suggestions, though.

1. Write a script that greps for CRLF in a file. Print an informative error 
message telling the user to run dos2unix on the offending files, and then 
have the script return false (not zero). Use this script in commitinfo. You 
will have to read the documentation about commitinfo again CAREFULLY 
because the arguments passed to the script are not what you think. Use 
DEFAULT echo to experiment, and be sure to cvs add a new directory when 
you experiment.

2. If you are checking in from Windows, then use the correct cvs client. If 
you are using Cygwin with the default text type of Unix, then you will 
have to use a different cvs client.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


RE: Using dos2unix on commit???

2003-06-13 Thread Frederic Brehm
At 03:25 PM 6/13/2003, Andy Kriger wrote:
As background, what is prompting this need is multiple developers with
different IDEs making connections to CVS. Since there's no way to be sure
what line format is being used, I'm looking for consistency.
Good luck.

The way to decrease the chances of line ending problems is to use a CVS 
client that always uses the local system native text format.

All editors that I am familiar with that are multilingual with respect to 
line ending formats will preserve the original format of the file by 
default. A reasonable IDE will create text files in the local system native 
format. If an IDE gives you a choice for line endings, always choose the 
local system native format.

Watch out for users who checkout on one system and edit the files on 
another system using a cross-mounted file system.

Also watch out for editors or IDE's that insist on doing text the one true 
way that's different from the local system native format. I can't think of 
any of those, but maybe you know of some.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: .cvsignore file being ignored

2003-06-06 Thread Frederic Brehm
At 10:08 AM 6/5/2003, Larry Jones wrote:
There's nothing I hate more than software that thinks it
knows more than I do and refuses to let me do what I want to do.
The principal of least surprises should be Commandment #1 of the Software 
Engineers Ten Commandments (requirements for the other nine are still being 
collected :-)

I agree that cvs add does just what it should do, but I can understand 
the desire for a cvs add-with-ignore command.

It wouldn't be too hard to write a shell script cvs-my-add that trimmed 
the list of files on the command line based on the contents of ./.cvsignore 
and called cvs add.

In order to get the build-in list and the $(CVSROOT)/CVSROOT/cvsignore 
list, you would have to do ugly things in a shell script, or build a new 
command into cvs. The current list of CVS maintainers does not seem to have 
the inclination to do this.

Hey, it's Open Source. If you want it bad enough, you can add it. If you 
make it a separate command (or possibly enabled with a special option to 
add), then there's a chance it might be accepted by the current maintainers 
for the next release. I think that there's some file named Hacking or 
something like that which has requirements for getting something into cvs.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: Removing sticky tag 'HEAD' in cvs

2003-06-05 Thread Frederic Brehm
At 01:14 PM 6/4/2003, Eric Siegerman wrote:
Occasionally one might want a sticky tag on HEAD -- probably not
for an entire sandbox, but for a file or two.  This came up a
couple of months ago:
http://mail.gnu.org/archive/html/info-cvs/2003-04/msg00023.html
(The only reason I didn't suggest typing exactly -r HEAD is
that I didn't think of it at the time...)


Hmmm. Let me see if I understand this.

Typing the command

cvs update -r HEAD file.c

will cause the following behavior (until the sticky tag is changed):

1. Updating file.c from the repository will always work.
2. Committing a changed file.c to the repository will never work.
So, how would I use it? For example, suppose I need to add some temporary 
code to a file for debugging or to make some kind of measurement. If I 
update -r HEAD then I can prevent the temporary code from accidently 
polluting the repository. When I'm done, remove the file and update -A 
(assuming there were no changes of value in the file).

Sweet!

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: cvs commit behavior

2003-03-07 Thread Frederic Brehm
At 10:25 AM 3/7/2003, you wrote:
I was thinking the file itself would get updated, not just the ,v file.
If the file is in $CVSROOT/CVSROOT, then you need to put the name of the 
file in $CVSROOT/CVSROOT/checkoutlist. See
http://www.cvshome.org/docs/manual/cvs_18.html#SEC176

If the file is in some other module of the repository, then the ,v file in 
the repository is what gets updated. The file in your sandbox doesn't 
change unless you have one of the RCS keywords in it.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: security question

2002-12-12 Thread Frederic Brehm
At 10:51 AM 12/12/2002, Phil R Lawrence wrote:

Now, about security.  We would be a multi-client shop, so I need SSH to 
encrypt sign-on info.  Also, to make auditors very happy, we need to grant 
and deny write security to various projects in the repository.

We are a multi-client shop, too. We use a combination of group membership 
explained in http://www.cvshome.org/docs/manual/cvs_2.html#SEC13 and 
completely separate repository roots. A loginfo script runs to insure that 
permissions are correct after every commit.

Every commercial client gets their very own separate repository. Government 
unclassified clients may or may not share modules within a repository 
depending on the nature of the projects. Our own proprietary software has 
its own set of repositories.

We use multiple repositories to make it easier to audit where things came 
from. It's also easier to archive all of the software that goes with a 
single client when all of the software is under a CVSROOT unique to that 
client.

Fred


___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: Adding maillog.pl script to checkoutlist causes it to loose permissions

2002-11-07 Thread Frederic Brehm
At 11:06 AM 11/7/2002, Brian Kowald wrote:

I have added a perl script to checkoutlist in CVSROOT. When its extracted,
it does not have the execute permission. Is there a way to get ot to extract
with the execute permission, or would I have to have a script triggered off
of somewhere to modify the permissions after its extracted?



chmod +x $CVSROOT/CVSROOT/maillog.pl,v

Then delete the file in your sandbox and cvs update. It should now be 
executable.

Fred


___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: erasing history

2002-10-25 Thread Frederic Brehm
At 03:08 PM 10/25/2002, [EMAIL PROTECTED] wrote:

Suppose I was experimenting with a few
cvs features and later wanted to delete
any record of my checkins and updates etc.

...

Is this everything? Is there a better way?




Make a private repository with just the module you are interested in and 
blow the whole thing away when you are done. That way there's no chance you 
will accidently mess up your production repository.



For example, if you want to experiment with features on the foo module...

mkdir temproot
cp -r $CVSROOT/CVSROOT deleteme
cp -r $CVSROOT/foo deleteme
setenv CVSROOT `pwd`/deleteme
cvs co foo CVSROOT

... hack away ...

rm -rf deleteme


Note that if someone was updating foo or CVSROOT while you were copying, 
then you might get some weirdness, but you can recover by starting over.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: Problems with Attic permissions

2002-10-14 Thread Frederic Brehm

At 01:49 PM 10/14/2002, Anne McCaffrey wrote:
To implement additional security, I have made all
Attic directories in the repository read only

...

but today when a developer tried to
add a new file,cvs add was aborted with the
error,Cannot read Attic directory.Permission denied.
Only when I gave permissions to Attic in that
directory,cvs add succeeded.

Was the developer was adding a file to a branch? CVS puts those files in 
the Attic.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: cvswrappers questions

2002-10-04 Thread Frederic Brehm

At 08:13 PM 10/2/2002, Ken Williams wrote:
Use your build system (make?) to fix the type/creator codes.

I'm not using a build system.  I'm just sharing project data.

This file is a database that the people working on this project need to 
access.  We each update it often, potentially, so we use 'cvs watch on' 
and 'cvs edit' to manage concurrency.  In this way CVS is a good tool for 
sharing it, *except* for the fact that the file breaks every time we do 
updates.

How about making a simple two line script that performs the update and then 
fixes the type/creator codes? It shouldn't be hard to get other people on 
the project to use the script since it will make their life easier.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: cvswrappers questions

2002-10-03 Thread Frederic Brehm

At 06:04 AM 10/2/2002, Ken Williams wrote:
Original problem: I have a binary file that I'd like to store in 
CVS.  It's a file used on Mac OS X, and needs to have type/creator codes 
set properly in the filesystem.  These codes don't survive a pass through 
the CVS repository (they are empty when the file is checked out).

Use your build system (make?) to fix the type/creator codes.



Second problem: now my CVSROOT/cvswrappers file is unusable because of the 
above error, and I can't commit changes in order to fix it - because of 
the same error.  How can I fix it if I can't commit changes?

When something like this happens to me, I resort to brute force (a.k.a. CVS 
voodoo). Replace the file $CVSROOT/CVSROOT/cvswrappers with the fixed 
version. Then commit your changes. You'll need direct access to the 
repository files to do this.


Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: cvs import of (symbolically) linked files

2002-10-01 Thread Frederic Brehm

At 10:32 AM 10/1/2002, Jayashree wrote:
Can I cvs import symbolically linked directories or linked files in a
directory?

No. At least it shouldn't. I haven't tried to do that. Maybe you'll get the 
linked file or directory in the repository, but you won't get a link.

CVS does not manage symbolic links. If you really need symbolic links then 
you will have to use your build system to create them.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: CVS and permissions (Unix)

2002-09-27 Thread Frederic Brehm

At 12:57 PM 9/27/2002, Mullican, Catherine wrote:
Some files were checked in with the permissions set to 644.  They need to be
755.  I tried changing the permissions, making some whitespace changes, and
checking the files back in, but they're still 644 on checkout.  Other files
in the project have the correct permissions on checkout; this only affects
two directories.  How can I fix them?

You need to set the execute bit on the ,v files in the repository. Don't 
worry about the fact that the ,v files do not have the write bit set.


Fred


___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: checkout multiple tags

2002-09-26 Thread Frederic Brehm


I suppose that I could change the process so that we tag everything,

Yes, you should. CVS tags do not identify change sets. CVS tags identify 
versions.


for every patch but then how can I easily know what was actually
changed in this particular tag.

Use two tags: one tag on everything to identify the version, and another on 
just the files that were changed.


Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Including file version during checkout

2002-09-26 Thread Frederic Brehm


You can use the keyword $Revision$ as explained in cederqvist (§12).
Though I've read unhappy comments about this feature in this list.

I don't remember many unhappy comments about $Rev$ or its cousins $Id$ and 
$Name$. There are many reasons to avoid $Log$, though.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Newbie question : common/shared objects

2002-09-26 Thread Frederic Brehm

At 10:15 AM 9/26/2002, Jay Yarbrough wrote:
To build release 2.1 of Product Y, I will use release 3.4 of product A, 
release 5.3 of product B, and release 2.0 of product D.


How is this typically handled within CVS?

Make each product a separate module. Then you can tag each release of each 
product and export them independently.


Here's a way to build your product Y:

Keep each released version of every product in some well-known place. This 
goes for third party products as well as your internal products. For 
example, build release 3.4 of product A and put it in 
/company/product/V3_4/A.zip or something like that.

To create a release of product Y, your build procedure can use the released 
versions of the products it depends on. There doesn't have to be a 
distinction here between your internal products and third party products 
because they are all referenced in a similar manner.

Fred


___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



RE: Sharing files across directories

2002-09-25 Thread Frederic Brehm

At 02:33 PM 9/25/2002, Matt Lyon wrote:
Is there a way to share a single source file across multiple directories 
in CVS, so that if it gets committed/merged in one directory the update 
registers in both locations?  I know that VSS has this concept, and was 
wondering if CVS offers any sort of similar functionality. I was thinking 
that perhaps this could be achieved with some symlink trickery on the 
server-side?

At 03:05 PM 9/25/2002, Douglas Finkle wrote:
Yeah, this is possible using Ampersand modules. See


Actually, Ampersand modules share whole directories, not single files.

CVS has no built-in way to share a single file across multiple directories.

I suppose that you could share a single file by putting it in its own 
directory and using ampersand modules. It might be easier to collect all of 
your shared files into a single directory and make it into some kind of 
library (object modules, include files, whatever) module. You would have to 
adjust your build system appropriately.

Don't use symlinks in your repository. They may sometimes when the phase of 
the moon is right work for directories, but you don't want to deal with the 
sometimes part. Symlinking files is a way to suffer much pain and agony.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Issues with network file systems and CVS

2002-09-18 Thread Frederic Brehm

At 08:01 PM 9/17/2002, Adam Bregenzer wrote:
AFIAK the issue is not with where the working copy is stored, as long as
you are the only one accessing the working copy.  The issue is where the
repository is stored/accessed from.

That's correct. I misunderstood the original question and thought it had to 
do with how the repository was accessed. Letting CVS touch a repository 
mounted on a network filesystem is a bad idea. Using client-server CVS 
where the server accesses the repository through a local interface is the 
recommended method. The diagram by Alan Dayley shows the recommended method.

Where you put your sandbox is a different matter.

For performance reasons (I/O throughput during compiles and network 
traffic) you might want to put it on a local disk. Policy makers don't 
always understand performance issues, though.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Issues with network file systems and CVS

2002-09-17 Thread Frederic Brehm

At 02:57 PM 9/17/2002, Matthew Navarre wrote:
Could someone explain to me the issues with mounting the repo via a network
filesystem?


Here's what happened to us: a file was corrupted and we could not recover 
older versions. (Our backup administrator failed to verify that the backup 
system was in fact backing up the disk.) It delayed our development for 
nearly a day while we tried to recover.

Do you want something like this to happen when a deadline is looming? Even 
if your backup system is good? I thought not!

Use client-server CVS.


The technical reason for the failure has to do with locking in the 
repository. Locking is a tricky thing to do in a distributed system. 
Implementations often have subtle bugs.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Issues with network file systems and CVS

2002-09-17 Thread Frederic Brehm

At 04:10 PM 9/17/2002, Matthew Navarre wrote:
That's why I'm basically collecting ammo. They want us to use wincvs with a
SMB mounted repo. Since I use FreeBSD this presents something of a problem.

Bad, bad, very bad idea. I hope you have enough ammo, now.

Have a CVS server running on the same _physical_ system that has the disk 
drives with the repository. Use CVS clients (e.g., WinCvs on Windows, cvs 
on FreeBSD) to operate on the repository.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Issues with network file systems and CVS

2002-09-17 Thread Frederic Brehm

At 04:54 PM 9/17/2002, Larry Jones wrote:
Frederic Brehm writes:
 
  The technical reason for the failure has to do with locking in the
  repository. Locking is a tricky thing to do in a distributed system.
  Implementations often have subtle bugs.

A number of people have now said that and, while it may be true, it
doesn't apply to CVS.  CVS's locking scheme ensures that only one
process is writing to a repository directory at a time, even across
network filesystems.  The only known potential failure mode, which has
never been reported as actually occurring, results in *eveyone* being
locked out of a directory, not allowing two servers to write at the same
time.

But, isn't a network filesystem a distributed system? I wasn't referring to 
CVS by itself as a distributed system with the bug. It's the distributed 
filesystem that CVS uses where the bugs are.


No, the problem is just that network filesystems, particularly those
that run over unreliable connections like NFS traditionally does, are
extremely tricky to get right.  They're even trickier when you don't
control both ends of the connection, as when the client software is
supplied by a different vendor than the server software.  All the
problems I've seen seem to be either handshaking bugs -- where the
client and the server don't communicate reliably -- or simple
housekeeping bugs in the server -- where data intended for the disk
never actually gets there.  Why CVS should be so good at triggering
these problems, I don't know.  I do know that the commercial CAD/CAM/CAE
system my employer produces is also good at triggering them, though.

Yup. We agree. It's the filesystem.

I suppose that we could get into a semantic argument where we quibble over 
whether CVS+NFS is an example of a distributed system. But, let's not go there.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: checkout without modifying the Entries file

2002-09-13 Thread Frederic Brehm

At 01:58 AM 9/13/2002, Matthew Herrmann wrote:
cvs co proj
cd proj
release PROJ_V_1_1_1

which does:
cvs co -rPROJ_V_1_1_1 -d%TEMP%\proj_temp
cd %TEMP%\proj_temp
build

the problem is that since the checkout happened inside the project folder,
the temp directory gets added to the entries folder and cvs tries to update
the temp folder whenever the project folder gets updated.

Maybe, cd to the temp folder (outside the project folder) before the cvs 
command? You'll have to set CVSROOT for the command, though. In Unix, you 
would do something like this:

 CVSROOT=`cat CVS/Root`
 export CVSROOT
 cd $TEMP
 cvs co -r$TAG -d proj_temp

In Windows...well, maybe you can use cygwin.

i'd rather not use cvs export because i like the idea of the release
script updating version numbers based on the sticky tag.

I'm not sure what you mean by this. You can do something similar (I think) 
by using $Name$ with cvs export.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



RE: branch access control

2002-09-03 Thread Frederic Brehm

At 01:06 PM 9/3/2002, Douglas Finkle wrote:
Yes, you're right... you can use either of the two methods
mentioned, 'cvs status', or the Entries file.  Still, both
of these methods are client side and their success depends
upon software (e.g. Perl) that may or may not be present on
client machines.

The script named in commitinfo executes on the server side.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



RE: branch access control

2002-09-03 Thread Frederic Brehm

At 01:33 PM 9/3/2002, Douglas Finkle wrote:
  At 01:06 PM 9/3/2002, Douglas Finkle wrote:
  Yes, you're right... you can use either of the two methods
  mentioned, 'cvs status', or the Entries file.  Still, both
  of these methods are client side and their success depends
  upon software (e.g. Perl) that may or may not be present on
  client machines.
 
  The script named in commitinfo executes on the server side.

Sure, but what about the data that the script looks at?  On the
server side of things there is no CVS/Entries file, and 'cvs status'
will fail if there's no checked out sources.

Somebody said:
  The commitinfo script is running in a directory where the
  files given on
  the command line reside as local files. There is also a copy
  of the CVS
  directory present and the CVS/Entries file contains the
  branch information
  if you want to parse it. There are two ways you could get
  that information.

I believe that is a true statement for both client/server and local modes.


___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: make cvs text agnostic?

2002-08-29 Thread Frederic Brehm

At 09:58 PM 8/28/2002, Matthew Herrmann wrote:
re this conversation of file types -- why autodetect them, isn't that the
whole point
of a file type, given in every file's extension? heuristic detection of
binariness -- yuck!

Exactly!



a mechanism already exists to tell with this problem -- why don't people
just make a whopper of a cvswrappers file and then be done with it?

I assume that you are talking about filename extensions on a Microsoft 
operating system. That mechanism isn't very reliable. Quick, what kind of 
file is a .dat?

You may have local shop procedures that define the type of all files you 
deal with and give them unique filename extensions that are enforced in 
some way by your culture. That's fine. You can now make a whopping 
cvswrappers file and be done with it.

Try taking your cvswrappers file to a different shop, especially one that 
uses a variant of Unix, and see what happens.

I'll avoid the rant about overloading filenames with semantic information 
about the contents of the file. That discussion doesn't belong here.

CVS is nice because it doesn't try to enforce that particular way of using 
filenames on shops that do  not or cannot use it. It does, however, provide 
a mechanism (cvswrappers) to allow you to do it in your shop, though.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Error while opening a zip file in Wincvs

2002-08-28 Thread Frederic Brehm

At 10:35 AM 8/28/2002, Jayashree wrote:
I am using Wincvs1.1 version.
I tried to checkout a  x.zip file into my local directory.
But I get an error when I try to open the zip file.
Please note that in Linux I am able to co and open the zip file without any
problem.
Why is it giving error in Wincvs?Could somebody help me !

This could be because the zip file has not been marked as binary.

Try cvs status x.zip. You should see Sticky Options: -kb. If you don't 
then you have to go to your linux box and tell CVS that the file is binary. 
Do it on the linux box, not on the windows box where the file is corrupted!

I'm not sure of the exact command, but it is something like
 cvs admin -kb x.zip
Someone will probably correct me if I am wrong.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: a question about defining modules

2002-08-27 Thread Frederic Brehm

At 04:04 AM 8/27/2002, Isaac Claymore wrote:
 My situation is: 3 projects, A, B and C, share a common library
   X. They all need to make changes to libX, so I forked 3 branches
   from libX main trunk: branch-A, branch-B and branch-C.

 Any hint or suggestion is greatly appreciated ;)

Clay,

CVS doesn't work very well as a configuration management tool. Use CVS to 
save your source code. Use something else (configure, perhaps) to configure 
the source to match the needs of the product during a build.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: make cvs text agnostic?

2002-08-27 Thread Frederic Brehm

At 06:59 AM 8/27/2002, Matthew Hannigan wrote:

I've been lurking on the list for a while,
and have noticed that many of the questions
seem to hinge on text files and storing and
extracting them the right way for your platform.

The CVS clients already do this. The problem comes when people use a file 
system cross mounted on several different kinds of OS, checkout on one OS, 
and then edit and commit on another OS.

Autodetection of binary

There are enough times when autodetection gets the wrong answer that many 
people on this list will vigorously oppose having CVS doing this 
automagically. You can always write a script for yourself that will 
autodetect and do a cvs add -b or cvs add as appropriate. I personally 
would suggest a manual confirmation step for each file, unless you are 
really 100% sure that your script always gets the right answer.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: make cvs text agnostic?

2002-08-27 Thread Frederic Brehm

At 09:20 AM 8/27/2002, Matthew Hannigan wrote:
JH:
  This is exactly how CVS works now, except that the format
  used in the repo is fixed to be the unixish text file format.

Disclaimer about the CVS NT server: this may or may not be true...I don't know.


Even when the client and server are Windows?
If so then CVS does do some automagic detection?

No, it just defaults to text mode. If you want CVS to keep the bytes in a 
file exactly the same on all systems then you have to tell CVS that the 
file is binary.

Fred

___
Frederic W. Brehm, Sarnoff Corporation, http://www.sarnoff.com/




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



RE: Make cvs ignore some changes in files

2002-08-22 Thread Frederic Brehm


  From: Christian Andersson [mailto:[EMAIL PROTECTED]]
  the problem I have is that these files often gets generated
  when there is nothing changed to them (it is part of some compilation
  sections) what happens is that I get new generated files that
  has only
  one difference, a remark in the file telling when it was generated..

From: Riechers, Matthew W
Again, why does something generated by a build need to be revision
controlled?


The generated files don't need to be revision controlled, but they need to 
be available to people or tools who cannot run the tool that generates the 
files. The most convenient way to make the files available is to put them 
into the repository alongside the other files that are also needed. The 
side effect of this is that the files become revision controlled.

I have a similar need where a tool from a real-time OS vendor generates a 
makefile that has embedded path information. Compiling and linking don't 
require the tool if the makefile is available, but the path information has 
to be adjusted if the base directory is different. The vendor tool (a 
project builder GUI) does not work well in an automated build script. 
Therefore, the automated build scripts that I use for creating a release 
requires the generated makefile, but appropriately modified.

My solution was to write a simple program (sed did the job well) that 
changed the generated makefile into a canonical form. I store the canonical 
form in the repository under a different name: Makefile.cache.

The build procedure manages the local makefile.

  - If the local makefile does not exist, then the build procedure
creates it from Makefile.cache and updates the date of the local
copy of Makefile.cache (with touch).

- If the local makefile has changed (test that it is newer than
   Makefile.cache), then the procedure creates the canonical form
   and compares it to Makefile.cache (with cmp).

--- If the two files are the same then the date of the local copy
 of Makefile.cache is updated (with touch).

--- If these are different, then Makefile.cache is replaced with
 the new version. The next cvs commit will commit the new
 Makefile.cache along with any new or changed source files.

Fred

_
Fred Brehm, Sarnoff Corporation, [EMAIL PROTECTED]
http://www.sarnoff.com/digital_video_informatics/vision_technology/index.asp




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



RE: Make cvs ignore some changes in files

2002-08-22 Thread Frederic Brehm


From: Riechers, Matthew W
Again, why does something generated by a build need to be revision
controlled?


I wrote:

The generated files don't need to be revision controlled, but they need to 
be available to people or tools who cannot run the tool that generates the 
files. The most convenient way to make the files available is to put them 
into the repository alongside the other files that are also needed. The 
side effect of this is that the files become revision controlled.

but then I wrote:

  --- If these are different, then Makefile.cache is replaced with
 the new version. The next cvs commit will commit the new
 Makefile.cache along with any new or changed source files.


I just realized that this explains why, in this case, the files *must* be 
revision controlled. The new version of Makefile.cache corresponds to the 
new versions of the other files in the directory.

Fred

_
Fred Brehm, Sarnoff Corporation, [EMAIL PROTECTED]
http://www.sarnoff.com/digital_video_informatics/vision_technology/index.asp




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



RE: Make cvs ignore some changes in files

2002-08-22 Thread Frederic Brehm

At 07:06 AM 8/22/2002 -0700, Noel Yap wrote:
Have you tried:
1. Version control the generated file.

Yes, I version control a canonical form of the generated file.


2. Build the generated file if the necessary tools are
available.

The tool does this without asking when it is run. It's a GUI, though, so it 
doesn't run in an automated (no manual intervention) build.


3. Copy the generated file to a place where the rest
of the build will use them.

A simple copy won't work. The file has to be version controlled with the 
other files in the directory. See my previous message.

Fred

_
Fred Brehm, Sarnoff Corporation, [EMAIL PROTECTED]
http://www.sarnoff.com/digital_video_informatics/vision_technology/index.asp




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



  1   2   >