Re: disable changes of local file

2005-07-12 Thread Pierre Asselin
[EMAIL PROTECTED] wrote:
 Got large data file in project that I've imported to the repository
 along with other files. I'd like this file to be kept in repository,
 but that local changes (this file is changend often locally, because of
 testing) do not change the copy in repository and that during an update
 from repository local copy doesn't change either.

Not easy.  Anyone can commit new revisions.

What you should do (should have done) is import the file under
a different name, that makes it clear that it is a template for the
tests.  Developers would have to copy the template file to the correct
filename before running their tests.  Since the copied file is not
in CVS, they can make any change they want.

If it's early enough in the game, the path of least resistance is
to rename the ,v file in the repository --but that breaks any
checked out sandbox, so people should check out new ones and
delete the old.


 Now, I know that I
 can accomplish later trough putting this file name in .cvsignore file,
 but is there some more proper way and further how to accomplish
 first.

Actually, no.  Files listed in CVS/Entries are never ignored.


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: add new files to branch

2005-07-09 Thread Pierre Asselin
Mei-Xing Zhao [EMAIL PROTECTED] wrote:
 Thanks. cvs tag works. But after running this cvs tag command, do I do 
 a cvs add to add this file the the branch?

It's already added.  Just switch your sandbox to the branch,
cvs update -r release-1-patch
and you'll find that the file is now present.


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: merging branch to HEAD when branch contains partly trunk changes already

2005-07-08 Thread Pierre Asselin
HK [EMAIL PROTECTED] wrote:
 Suppose the following situation.

  +-1.25.2 .. -- 1.25.2.2 -- 1.25.2.5
  |   ^
  |   |merge in
 1.25 -- ... -- 1.27 -- ... -- 1.31

 At 1.25 I created a branch.
 Later I merged the changes between 1.25 and 1.27
 into the branch at 1.25.2.2 to have minor updates
 of the main trunk also in the branch.

 Now I want to merge the branch back into the trunk.

If I remember correctly, the correct merge would be -j 1.27 -j
1.25.2.5 (or the equivalent with instead of hard revision numbers).


 I tried a straighforward merge of the
 tip of the branch with the tip of the trunk
 and get only minor conflicts.

Yeah, sometimes that works.  Other times I get bogus conflicts with
the same text on both sides of the conflict.  I just clean those
up by hand.


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: add new files to branch

2005-07-08 Thread Pierre Asselin
Mei-Xing Zhao [EMAIL PROTECTED] wrote:

 [ ... ]
 cvs rtag -b -r release-2 release-1-patch A

Just use cvs tag instead of cvs rtag (and do it from a
trunk sandbox where the A file is present).

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: cvs update $Name: $ expansion

2005-06-23 Thread Pierre Asselin
[EMAIL PROTECTED] wrote:
 I can't get $Name: $ to expand on an update in my script below.

 It works when checking out. But, do I really have to do a checkout?

I think it works on update, *if* the working copy is missing
and the update has to get a new copy from scratch.  (And, of
course, if the sandbox has a sticky revision tag.)

So if you use $Name$ in a single file, you can get that file
to expand correctly without having to check out the entire
project.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: CVS Server Change

2005-06-23 Thread Pierre Asselin
Soo-Hyun Choi [EMAIL PROTECTED] wrote:
 I am a beginner in using CVS, and have a question on to change the CVS server.
 [ ... ]
 Would this work if I simply copy the CVS's ,v files with the directory
 to the machine S's cvsroot directory?

Yes.  This also makes your existing sandboxes nonfunctional, so
be sure to delete them after committing any pending changes.
Check out new sandboxes from the new server after the move.


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Cron process to schedule CVS check in as another user ???

2005-06-22 Thread Pierre Asselin
[EMAIL PROTECTED] wrote:

 We would like to version PLSQL code, but we don't want the repository
 to be updated until code has successfully been compiled and deployed to
 the DB.

Would branching do ?  Develop and test on a branch and merge
to the trunk when the tests are declared passed.

 [ snip ]
 Granted, as I write this code - I realize it's backwards, but here are
 my questions:

 1. is it possible to check in code as common user telling it to use
 another for CVS history and logs?

I don't think so, but I may be wrong.  There is always sudo(8), where
you *authorize* user X to run some class of commands as user Y.

 2. Can a common user cd to the developers working CVS directories and
 even do a check in?

I think so, if he has write permission to the working directory tree
and if he uses the -d option to override the access method stored
in the CVS/Root files.  For the permissions, use set up the groups
appropriately and set the umask to something like 002 so the cvs
operations don't clobber group flags.


 3. I'm not really a Unix expert, what's the best way to run a script as
 another Unix user ? we are an HPUX 11 shop. 

I'd say sudo, as configured in the file /etc/sudoers .


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: How to control the current version of CVSROOT/modules ?

2005-06-22 Thread Pierre Asselin
[EMAIL PROTECTED] wrote:

 Is it possible to roll back the version of the currently used
 CVSROOT/modules file?
 [ correct description of amperstand modules conundrom ]

As Jim said, you're stuck.  You can always do this,

cvs checkout CVSROOT  cd CVSROOT
cvs update -j HEAD -j oldrev modules
cvs commit modules

followed by a repair as soon as you have your old project checked
out, but it has bad drawbacks.  I wonder if there are hacks...

The Linux man page for mount(8) says:
   Since Linux 2.4.0 it is possible to remount part of the
   file  hierarchy somewhere else. The call is
  mount --bind olddir newdir
   After this call the same contents is accessible in two
   places.

So if you're on Linux, here's a hack:
* cvs init a brand new directory, say ~/cvsrepair.
* Bind-mount the real cvsroot under ~/cvsrepair.
  So your directory structure is

~/cvsrepair/
CVSROOT/
modules
...
real_cvsroot_bound/
CVSROOT/
modules
...
project_1/
...

Now check out CVSROOT from cvsrepair, copy the CVSROOT/modules from
the real cvsroot and change all the paths to prepend a
real_cvsroot_bound/.  Commit that.  It seems to me you can now
check out projects from either cvsroot.  Even locking ought to
work, since the locks are going to be visible from both cvsroots !

To get the back-revision of your project, just put the *old* revision
of the real CVSROOT/modules in cvsrepair/CVSROOT/modules and edit
the paths in the same way.  If you check out from cvsrepair, you'll
get the old set of amperstand modules.  Meanwhile, your production
cvsroot is never defaced.

Devious enough ?  (Hem, I'd back up the repository before trying
that stunt.)

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: CVS-Directories disappear when uploading per SFTP-Client

2005-06-21 Thread Pierre Asselin
Dennis von Ferenczy [EMAIL PROTECTED] wrote:

 Thanks for your advice. But what will be the advantage? If I get you right,
 then I would have to do a commit every time I want to test the changes in my
 scripts,

Yes.

 even if I have changed only a single line of code

Yes.

 - and even if the code is buggy.

Yes.  If you commit a bug, fix it and commit again.
Try not to commit buggy code, but if it happens once in a while
it's not that big a deal.

You will want to tag the project when you believe there are no
bugs, so you have a well-defined baseline to begin serious testing.
You can also create a stabilization branch where you will do the
bug fixes, or you can wait till you are ready to move the code to the
production server.  You *must* tag the state that you move to production
and you *must* fix any post-release bugs on a branch, to isolate
production from continuing work on the trunk.

Having a trunk and one active branch will complicate the
commitinfo script but it's doable.  Can you run two instances
of the testing server ?  Then your loginfo hook can maintain
two sandboxes, one on the trunk and one on the active release
branch.  You can use a floating tag name for the active branch
to avoid rewriting the loginfo script all the time.  There are
ways;  it's just normal hacking.


 Right now I work locally, have the files mirrored using SSH
 (I'm not sure if cvs can use SSH) can immediately try my changes and if
 everything works as desired I do a commit.

So you upload instead of cvs-commit, and something goes wrong right
at that step and the remote sandbox loses its CVS subdirectories.
Which is worse ?


 Like this I can always be sure,
 that code in the repository is actually code that is working correctly.

No, the code can still be buggy, just not obviously so.  You will
commit buggy code every once in a while even if you can test
before committing.  Like I said, it's not that big a deal.

The best solution would be to fix your IDE's habit of clobbering
the remote CVS directories.  Failing that, my proposal is quite
workable once you get used to it.


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Importing new vendor release from RCS

2005-06-21 Thread Pierre Asselin
Berthold H?llmann [EMAIL PROTECTED] wrote:

 I'm trying to import a new vendor release into a CVS repository. I
 would like to keep the RCS history provided with the project. Is there
 an easy way to achieve this?

Do you mean they gave you a directory tree populated with RCS ,v files ?
If so, just copy the lot to a new subtree in your repository.

(That's not absolutely guaranteed to work, but the odds are good.)


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: CVS-Directories disappear when uploading per SFTP-Client

2005-06-20 Thread Pierre Asselin
Dennis von Ferenczy [EMAIL PROTECTED] wrote:

 [ ... ]
 The problem is the following: 
 the cvs server is at the same time the web server where the application
 runs. So I have to checkout to the web server. But: My IDE runs locally on
 my machine and it needs the complete source code to enable it to use code
 completion etc. Between my local machine and the server there is only a DSL
 connection so I have the local changes mirrored to the web server (using the
 SFTP client) and then do the commit from the web server. 
 Any better ideas?

Yes.  Get a CVS client for your local machine and do your cvs commits
from there behind the IDE's back.  On the CVS server == web server,
use the loginfo hook to keep a reference sandbox up to date, from
which the web site operates.
https://www.cvshome.org/docs/manual/cvs-1.11.20/cvs_18.html#SEC158


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: CVS-Directories disappear when uploading per SFTP-Client

2005-06-19 Thread Pierre Asselin
Dennis von Ferenczy [EMAIL PROTECTED] wrote:

 When I do a checkout everything is fine and a CVS directory is present in
 every directory of the checked out module. However as soon as I upload a
 changed version of of my code using my SFTP-Client the CVS-Directory
 disappears from the directory to which I have uploaded the file. As a result
 of this CVS always thinks that the directory is not yet under CVS-control. 

Let's see if I got this straight:
1)  You start with the CVS/ directories present.
2)  You run an SFTP client.
3)  The CVS/directories are gone.

Based on these facts, I would say that the SFTP client removed
the directories.

May I ask why you are mixing CVS and sftp ?  Why can't you have a
CVS sandbox checked out on the machine from which you were
uploading changes ?  Instead of uploading, you would just
cvs commit from there.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: CVS misc questions

2005-06-02 Thread Pierre Asselin
Fabio Miranda Hamburger [EMAIL PROTECTED] wrote:

 I have a misc list of CVS questions regarding web development:

 1. Let's say you have 10 developers uploading files from dreamweaver to a
 apache server (let's assume no testin). If you implement CVS, how can you
 implement CVS in these situation when you have designer and developer
 without unix knowledgement and without shell access ?

I would use TortoiseCVS.  You will probably have to install it on their
computers.  If necessary, write a detailed memo on where to download
the files and what buttons to click to perform the install.

You should also place the first version of your site in CVS yourself.
CVS is very easy to use once everything is set up, but starting something
takes more work, which you don't want to impose on your web developers.


 2. Where can I find 'best practise' articles about control versioning? how
 to know you reach a milestone? well, in fact, how to define one?, how to
 assign number to the versions with a logic sense? like linux kernel
 versioning

That's a long story, and it may not apply to your web site since
from what you say the files get deployed to a live server without
going through a formal testing stage.  Only you can tell when you've
reached a milestone.  When you do, the simplest thing is to tag the
project so you can return to that state if need be.


 3. How to deal with binary files when checking out a sandbox against a
 repository_ For examples, images that belongs to the project, binary logs,
 etc. that are inside the sandbox as a part of ther project

Just make sure they get cvs-added as binary files.  With TortoiseCVS,
this means having a good CVSROOT/cvswrappers file on the server.


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: problem importing directory called 'tag'

2005-06-02 Thread Pierre Asselin
Peter Dobbs [EMAIL PROTECTED] wrote:
 I'm importing someone elses code and part of the tree has a directory 
 called tag.

 Everything imports except this directory.. Is there some way to get this 
 to import ?

I don't remember that name being reserved anywhere in CVS.  Check
to see if the tree you are importing has a .cvsignore file with
the word 'tag' in it.  If that's the problem, remove the .cvsignore
and repeat the import (i.e.  the exact same import command, with
the same release tag).

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: $id automatically inserted in file

2005-05-25 Thread Pierre Asselin
Klaus Hebsgaard [EMAIL PROTECTED] wrote:

 Russ Sherk [EMAIL PROTECTED] wrote in message 
 news:[EMAIL PROTECTED]

 Have a look at cvs admin command.  Specifically the -k option.  (-kto?)

 Sorry for not writing this from the beginning - I knew about this option, 
 however i access cvs through tortoise, and am not able to send commandline 
 options, is it really not possible to set this up on the server?

Sure you are.  Put the Program Files\TortoiseCVS\ folder on your
Windows path.  There is a cvs.exe in there.  If it is on your
path, you can run cvs from a command prompt window.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: How to undo a commit?

2005-05-21 Thread Pierre Asselin
Christian Hujer [EMAIL PROTECTED] wrote:

 What is the best way to make the HEAD revision of the files being the 
 previous 
 revision? I've read the faq, they say if the last version is 1.31, checkout 
 1.30 and recheckin as 1.32. But I cannot imagine how to do this.

cvs update -j 1.31 -j 1.30 the_file
or
cvs update -p -r1.30 the_file  the_file


 When I try cvs update -r 1.30 file and then cvs commit file it of course 
 does not work.

Because it has a sticky revision.  To recover from that,
cp the_file tempfile
cvs update -A the_file
mv tempfile the_file

Any one of these three methods will give you a file with the content of
revision 1.30, ready to be committed as revision 1.32 .


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: sandbox on NFS-mounted directory?

2005-04-24 Thread Pierre Asselin
Terrence Enger [EMAIL PROTECTED] wrote:

 I have seen lots of warnings against accessing a repository
 through an NFS mount.  But I do not remember seeing any
 comments about accessing a sandbox through an NFS mount.
 (Although, until today, I did not think I cared, so could
 easily have overlooked warnings.)  I would welcome your
 advice.

I do it routinely.  Just synchronize everybody with ntp
or the clock skew will wreck your build system --which
is not a CVS issue.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: trouble with cvs add

2005-04-14 Thread Pierre Asselin
Russ Sherk [EMAIL PROTECTED] wrote:
 Pierre,

 Why so complicated to merge a file from head to a branch?  I just ran
 a little test and my recommended method works.  Martin has some files
 that exist in HEAD but not in BRANCH_1_2.  Since they exist in the
 repo, cvs says 'can't add this file because it exists'.  Since it
 already exists, it only has to be merged into BRANCH_1_2:

Duh, yes I do think you're right !


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: moving directories within CVS

2005-04-14 Thread Pierre Asselin
[EMAIL PROTECTED] wrote:
 I need to physically move a directory within the repository, without 
 losing any delta history.  So far, my process looks like this:
 [ snip ]
 And that process works *fine* so far in my tests.  But I was wondering if 
 there was a way to simplify this process, to be able to move folders 
 behind the scenes so that the developers wouldn't have to do a release and 
 checkout?

The problem is that working copies have CVS/ subdirectories with metadata
that is based on the layout of the repository at the time of the checkout.
If you remodel the repository you have to hunt down all those working
copies and edit the metadata to match (not recommended).  The path of
least resistance is to wipe out the working copies and obtain fresh
ones after the reorganization, as you do.

Another thing to keep in mind is that you can no longer recreate old
releases that predate the reorg.  If you try, they will come out under
the new layout.  This is a show-stopper if you are still supporting
old releases.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: trouble with cvs add

2005-04-12 Thread Pierre Asselin
Mart?n Marqu?s martin@bugs.unl.edu.ar wrote:
 El Dom 10 Abr 2005 18:55, Pierre Asselin escribi?:
  
  One way is to add them to the branch first, and then merge that change
  to the trunk.  But it's too late for that.

 How would this be done?

By deciding ahead of time that the files should be committed to the
branch first, and only then merging that commit back to the trunk.

Starting from a trunk sandbox,

cvs update -r the_branch_tag

and the sandbox is now on the branch.
Create the files in this sandbox.  Then,

cvs add file1 file2 ...
cvs commit

Finally, return to the trunk and merge
cvs update -A
cvs update -j the_branchpoint_tag -j the_branch_tag

This cvs adds the files to the trunk sandbox

cvs commit


In your case it is too late to do that since the files
are already present on the trunk.  However, I think
you can make them appear on the branch just by tagging
them like the rest.

(on the trunk)
cvs tag -b the_branch_tag file1 file2 ...
cvs update -r the_branch_tag
(sandbox is now on the branch and the files should be there)


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: how to undo import

2005-04-12 Thread Pierre Asselin
Kevin Rodgers [EMAIL PROTECTED] wrote:

 Should I infer from the complete lack of responses over the last 5 days
 that my only option is to delete the distribution directory in the 
 repository itself, and start over with the current version?

That may be, or possibly the original question wasn't clear. :-)


 Kevin Rodgers wrote:
  I'm trying (for the first time) to track a large 3rd party distribution.
  So of course I screwed it up: I unzip'ed the distribution in the working
  directory itself and then imported it, which resulted in all the CVS
  subdirectories being imported into the repository.

Are you sure ?  The CVS subdirectories should be ignored by default.
Still, it's probably a good idea to undo the import.

First, back up your repository.

Check out a temporary working copy somewhere else.  Don't worry
about conflicts from the second import, just do a plain checkout
to get a working copy.

Use cvs status -v file by file to find the revision numbers associated
to SAXON_B_8_3 and SAXON_B_8_4.
*)  For files where the two tags are present and are the same,
just delete the SAXON_B_8_4 tag.
cvs tag -d SAXON_B_8_4 some_file
*)  For files where the two tags are present and are different,
delete the bad revision and bad tag.  This is a little
tricky because the revision you want to delete is often
the one checked out in your temporary working copy.  The
following should work:
cvs update -r SAXON_B_8_3 some_file
cvs admin -obad_revnumber some_file
cvs tag -d SAXON_B_8_4 some_file
cvs update -A some_file
where bad_revnumber is the revision number of SAXON_B_8_4.
I'm pretty sure you have to give it numerically instead of
using the tag, but you can try that too.
*)  For files with only SAXON_B_8_4, go delete the ,v file
in the repository.
*)  For files with only SAXON_B_8_3, do nothing.

Needless to say, be very careful not to mix files, revision numbers
and tags on those command lines.

Now wipe out the temporary working copy.

Check out a working copy again.  It should be identical to what
you had before the bad import.  Leave that working copy aside.
Go unzip somewhere else and re-import your freshly unzipped copy.


  Further, I had
  committed a local change to a few files (including some binary files) in
  the original distribution, so the import complained about conflicts and

That's normal.

  I followed its advice to checkout the original version of the
  distribution.

That's not quite what it says, but your checkout command

  cvs checkout -jSAXON_B_8_3 -jSAXON_B_8_4 public/3rdParty/java/saxon

is correct, provided you first go to an empty directory.

Edit the text files to resolve the conflicts.  For the binary files,
work it out.  CVS can't help you there besides providing you with
copies of the old, your changed version, and the new.

When all the conflicts are resolved, commit.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Newbie Query: Command line option for checking out to local comp from cvs server

2005-04-11 Thread Pierre Asselin
Balaji D [EMAIL PROTECTED] wrote:

 Can I checkout files from cvs server(Linux) to my local machine
 (Windoaw based) through commandline?

Sure.  Just make sure the command-line client (cvs.exe) is
on your Path.

(If you installed one of the GUI front-ends, you almost
certainly installed a command-line client with it,
probably cvsnt.)

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: trouble with cvs add

2005-04-10 Thread Pierre Asselin
Mart?n Marqu?s martin@bugs.unl.edu.ar wrote:

 I have a project with some branches. One of those branches is a
 posible 1.2 release in which we are working out some problems. The
 thing is that I add some files to the HEAD which I need in the 1.2
 release, but I just can't add it to the branch because it says that
 the files (and directories) already exist.

One way is to add them to the branch first, and then merge that change
to the trunk.  But it's too late for that.

I think you can go to a trunk sandbox and tag -b the added files
so as to put them on the same branch.  Then go to a branch sandbox
and update.  You may need to give a -d flag to the update command.


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Is there a safe way to do this kind of offline CVS management?

2005-04-04 Thread Pierre Asselin
Doug Lee [EMAIL PROTECTED] wrote:

 Now for why...

 I write scripts for a screen-reading program called JAWS For Windows
 (JAWS stands for Job Access With Speech).  JAWS scripts must all exist
 and run in a specific directory, say c:\jaws510\settings\enu.  JAWS
 scripts are named after the applications to which they apply; thus, a
 script for WordPad will be named WordPad.jss (source code; the
 compiled version is WordPad.jsb, and there are other associated
 WordPad.* files as well).  Every script for every application that
 needs special handling goes in the same directory.  This is how it
 comes to pass that I often have multiple simultaneous projects in the
 same directory with no overlapping file names.

I see.  Well, allow me to pontificate a little.  Your files are
scripts and require no compilation, so you make the common mistake
of confusing the *source tree* of your project (your scripts) with
the *installed version* of your project (your scripts in
jaws510\settings\enu with all their other script friends).  The
source tree goes into CVS, the installed copy doesn't.  You should
be doing a make install or some such to install your files...

... except that it sucks, because you can't even *test* your scripts
without installing them.  Which is why the above qualifies as
pontification.  Bottom line: JAWS is not nice, and there is nothing
you can do about it.

Or does JAWS understand shell links (aka Windows shortcuts) ? If
yes, you could plant shortcuts from the installation directory to
your CVS sandbox.  Is there a tool to plant shortcuts programmatically?

One other thing:  are you the only one involved that uses CVS? if
so I guess your approach is okay, but your initial post said
something about telling everyone else to stop committing to the
trunk while you were away.  That negates the C in CVS, which is
a shame.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: nameless branch with cvs

2005-04-02 Thread Pierre Asselin
Alexandre [EMAIL PROTECTED] wrote:

due to an error a branch containing many version of a file has been
 moved to one of its file therefore creating what look like a nameless
 branch..  Is there a way to move back the branch ( name ).

cvs admin -NBR_MYBRANCH:x.y.0.z the_broken_file

for suitable values of x, y and z.  Verify with 'cvs status -v'.

 Was 

 Main Tr
|
   1.1
|
   1.2--/ BR_MYBRANCH \
|  |
   1.3   1.2.1
   ... |
 1.2.2
   |
 1.2.3

Can you redraw the diagram carefully ?  The revision numbers on
the branch can't be what you say, since they must have four
components.  They are probably of the form 1.2.2.n instead of 1.2.n,
but I can't be sure since you may have other branches rooted at
1.2.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Is there a safe way to do this kind of offline CVS management?

2005-04-02 Thread Pierre Asselin
Doug Lee [EMAIL PROTECTED] wrote:
 I use CVS to manage a number of projects.  When possible, I use a
 central repository and link to it either locally or through a tunnel.
 But sometimes I have to work on a CVS project at a location that has
 no Internet connectivity.  For that, I've routinely carried repository
 trees around as follows:

 [ snip ]

I check out a sandbox on a laptop and tag it before I leave.  I
take the laptop with me and work without the benefit of CVS (but
see below).  When I return I create a branch off the departure tag
and update my modified sandbox to it (vacuous update, the just-created
branch is empty and there is nothing to merge into the sandbox).
I commit the modifications on the branch.  I return to the trunk
(cvs update -A) and perform a normal branch merge.

I can work without CVS per se, but I'm really addicted to the
safety net of revision control, so I use RCS behind CVS' back.

mkdir RCS
ci -l some_file_I_want_to_hack
... hack ...
ci -l some_file_I_want_to_hack
...

When I return, the RCS subdirectories are skipped silently because
they are in the default .cvsignore .  All I have to do is commit
by modified sandbox to a branch as outlined above.

All the modifications made on the trip are committed as a single
change without the intermediate history, but this is usually not
a serious drawback.

Someone, I forgot who and when, posted a gutsy move where a
sandbox coexists between two CVS repositories.

1.  Commit before you leave.
2.  Move all CVS subdirs to something like .CVS
The cheched-out tree is no longer a CVS sandbox !
3.  Import into a local repository, created with cvs init
if necessary.
4.  Check out from the local repository.  The resulting
sandbox has its CVS subdirectories but it also has .CVS
subdirectories from the import, with the metadata of the
original repository.
5.  Hack normally off the local repository.
6.  Commit before plugging back into the main network.
7.  Run a script to swap every CVS with .CVS.  What was an
up-to-date sandbox relative to the local repository is now
a modified sandbox relative to the central repository, with
extra .CVS subdirectories.  (Do not cvs-add these to the
central repository.)
8.  Do your cvs update and fix the conflicts, then commit.

Once again the entire modification set ends up committed as a unit.

You could even swap CVS--.CVS multiple times and alternate between
two repositories that way.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Help with CVS

2005-03-27 Thread Pierre Asselin
asdf qwer [EMAIL PROTECTED] wrote:
 I am a graduate student at Illinois state university, USA. I am writing a 
 research paper on SCM and web development. One part of the paper talks 
 about different tools.

 I need some information from any of you who has worked with CVS in a web 
 development project. I am looking of rinformation like how good CVS will be 
 for this kind of a project, what are pros and cons

You can look at http://philip.greenspun.com/panda/ , in particular
Chapter 4 which has this link: http://philip.greenspun.com/wtr/cvs .
This second link in turn has references at the end.

I worked on a web site for a while;  I was one of a half-dozen
developers.  We each had our own copy of the site and our own
instance of the web server but we shared the same development
database.  I don't remember how the graphics designers worked, but
I think they ended up moving to CVS as well.  So a little more
elaborate than what Greenspun describes.

Basically CVS (or any other rev control system) works great with
the html, scripts and SQL queries.  It doesn't do much good with
database schemas;  changes to those end up being managed outside
of CVS.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: how to make branch alias for HEAD branch

2005-03-25 Thread Pierre Asselin
Victor A. Prylipko [EMAIL PROTECTED] wrote:

 I.m trying to make branch alias for HEAD branch using
 cvs admin -n ALIAS:HEAD file2.txt

Try cvs admin -nALIAS:1 file2.txt.  This assumes
that your trunk revision numbers are still of the
form 1.n .

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Using SSH with WinCVS

2005-03-19 Thread Pierre Asselin
EdJ [EMAIL PROTECTED] wrote:
 I can't figure out how to use WinCVS to connect via SSH to a Linux-based CVS
 server.  I need to use the ext protocol, because pserver is not secure.
 I've been using TortoiseCVS for months, but WinCVS seems like it just wants
 to talk to CVSNT as a server.

Install PuTTY and make it work.  Use public-key authentication.
You can find more details in the TortoiseCVS FAQ,
http://www.tortoisecvs.org/faq.shtml with links to the PuTTY
web site.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Setting up first repository

2005-03-09 Thread Pierre Asselin
Roddie [EMAIL PROTECTED] wrote:

 [a test repository] is a good idea and I've been trying it.
 I can log in OK, but when I try
 to import a trial project using cvs -d
 :pserver:[EMAIL PROTECTED]:/usr/local/CVS import myProj no-vendor release-0
 I get cvs [import aborted]: reading CVS/Tag: Not a directory.

pserver ?  Why not just :local:/usr/local/CVS ?  No xinetd, no login,
no passwords to set up...

When you put a cvs server on your colocation box I recommend :ext:
with CVS_RSH=ssh and public key authentication.  I assume
you already have the ssh part set up ?  Othwerwise how do you
reach your colocated machine ?


 I may also have Unix permission problems - I had to make CVSROOT chmod 757
 (though there may be lesser options - Unix permissions are not instinctive
 yet!)

The usual directory permissions are 770 + setgid to a group to which
all the developers belong.  The setgid bit (on Linux) is to make sure
any subdirectories inherit the group of their parents.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: CVSIGNORE file help?

2005-03-07 Thread Pierre Asselin
OTESAO [EMAIL PROTECTED] wrote:
 I have a whole bunch of files in my local client directory that I wanted
 to ignore whenever doing and update or commit to the server.
 [ ... ]

Not sure what you want to do but:  once a file is under CVS control,
you can't ignore it.  The .cvsignore and related options are for files
*not* known to CVS.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Again: multiple vendors

2005-03-06 Thread Pierre Asselin
Baurzhan Ismagulov [EMAIL PROTECTED] wrote:
 On Fri, Mar 04, 2005 at 02:42:56AM +, Pierre Asselin wrote:

  The multiple vendor branch was not funny, so I agree with Greg.
  I had to manually reset many admin -b values, move files in and
  out of the Attic (I think), etc.  When I got to the point where
  a plain trunk checkout gave me a current main-vendor release,
  I could start working.

 Do I understand you correctly: it did work for you with import -b,
 right? Do you mean it would be easier to do with normal branches,
 applying upstream patches by hand and committing?

That's one way, if you are careful about added and deleted files.

 In particular, I don't
 see why you had to reset admin -b values and move files in / out of the
 Attic; do you remember concrete scenarios?

Because you get an inconsistent trunk.  Example with two vendor
branches:

first
bothimported to 1.1.1

both
second  imported to 1.1.3

If you check out a trunk sandbox, you get all three files, which
doesn't correspond to anybody's release.  The both that you
get is the 1.1.1.1 revision, not the 1.1.3.1, because its admin
-b branch is 1.1.1 from the initial import and was not reset by
the second import.

Hm, maybe it's not as bad as I think.  I just tried this example
and cvs warned me of a conflict.  I don't remember that from before.
Maybe the conflict detectors have improved ? This is cvs 1.11.17 .

First import
--
date  first
date  both
cvs import -m'main vendor' test VENDOR main-1_0
N test/first
N test/both

No conflicts created by this import
--


Second import
--
rm first
date  both
date  second
cvs import -m'variant' -b 1.1.3 test VARIANT var-1_0
N test/second
C test/both

1 conflicts created by this import.
Use the following command to help the merge:

cvs checkout -jprev_rel_tag -jvar-1_0 test
--

I guess the broken trunk is just the normal result of an unmerged
import.  To standardize on the main vendor branch,

cvs checkout -d test_main -j var-1_0 -j main-1_0 test

and I get a test_main/ sandbox consistent with the first import.
If I commit that, file second gets a dead trunk revision 1.2 and
its admin -b branch is reset to empty.  So maybe I could have
saved myself all that surgery by doing proper post-import merges.
Note that I gave my checkout -j options in the opposite order
from the cvs suggestion because I want the trunk to look like the
main vendor branch, not the 1.1.3 variant.

Okay, so select a favorite vendor (you can't treat them symmetrically)
and import all his tarballs normally.  Do all your post-import
merges religiously in order to take care of deleted files.

THEN, start importing alternate vendor tarballs to secondary
branches.  Always do the post-import merges to trunk, but
merge from -jjust-imported to -jfinal-main-import.

After that, a trunk checkout should give you the equivalent of a
fresh tarball from your privileged vendor.  All the other tarballs
are in CVS with unique import tags (keep good notes as you import)
so you can start merging tarball deltas.

BTW, you can do this in a private cvs repository on your own
computer, accessed in local mode.  If you stumble, wipe out the
whole thing and start over.  If you succeed, scp your repository
tree to the real cvs server.


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Setting up first repository

2005-03-05 Thread Pierre Asselin
Roddie [EMAIL PROTECTED] wrote:
 I'm new to CVS, and I've been reading up about it for some weeks.
 [ ... ]
 I'm a one-man website developer. As things have turned out, I do relatively
 complex on-going work on a small number of sites. Development is on my OS X
 Mac laptop, and deployment is on my own RH Linux co-lo.

 The repository could be on either computer, but I plan to put it on the
 co-lo.

You may want to dry-run this on your laptop.  Run cvs init to start a
repository, use it locally for a while, wipe it out when you have
enough experience to init a new repository on your co-lo.

The dry run is just to play with cvs commands for a while.  You have
a pretty strong incentive to switch to your final repository so you can
distribute files to the live site through cvs.


 [ ... ]
 The shared directory holds libraries and other files needed by all the other
 sites. Each site uses symlinks so that the shared files appear to be in the
 correct place for that site.

Sometimes it helps to think of your sandbox as the *source tree* of your
web site rather than the web site itself.  Planting the symbolic links
is now a trivial compilation step that you perform after checkout or
update.  This should be scripted, and the script should be part of your
sandbox, under revision control like the rest.


 I plan to have the sites directory as the project. There would be three
 sandboxes to start with: a development sandbox on the Mac laptop; a test
 sandbox on the co-lo (to iron out any MacLinux issues); and the live sites
 in a sandbox on the co-lo.

Sounds good.

 Normally, development will take place on the Mac, be committed, the test
 sandbox updated, tested and committed, and then the live site sandbox (and
 the Mac if necessary) updated.

Or you could have a scripted installation step to copy the test sandbox
to the live site, which may or may not be a CVS sandbox.


 Occasionally I make changes direct to the live site. These are usually
 trivial updates of content, but remembering to make them also in the
 development files is a nuisance. In this instance I would make changes to
 the live site, commit them, and then update the development sandbox.

Then your live site should be a sandbox, and it should be on a branch.
Otherwise, you won't be allowed to commit your trivial tweaks without
first running an update, and that would force you to deploy changes
sooner than you would like.

Having a release branch is pretty standard.  You fix bugs on the branch
and merge them back to the trunk so you don't have to fix them twice.
When your trunk is good, you cut a new release branch and update the
live sandbox to the new branch.  Post again if the process is not
clear to you.


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Again: multiple vendors

2005-03-03 Thread Pierre Asselin
Greg A. Woods [EMAIL PROTECTED] wrote:

 Multiple vendor branches CANNOT work for what you want.  Period.

Maybe with the new import -X in cvs 1.12.x ?  This was touched
upon briefly in another thread.
https://www.cvshome.org/docs/manual/cvs-1.12.11/cvs_16.html#SEC154

I once did a two-vendor series of imports after gathering historical
tarballs from the net.  The main vendor went on 1.1.1 and the
secondary went to 1.1.3 .  The purpose was to merge some of
the patches in the secondary line into a late main-vendor release.

The multiple vendor branch was not funny, so I agree with Greg.
I had to manually reset many admin -b values, move files in and
out of the Attic (I think), etc.  When I got to the point where
a plain trunk checkout gave me a current main-vendor release,
I could start working.

The net result of all the imports plus surgery is that I had my
tarballs in CVS, each with a unique tag.  I could diff any two of
them, examine the patches, decide what to apply, etc.  That part
went very well !  The fact that the tarballs were on vendor branches
was pretty irrelevant.

The new -X import seems to create independent, non-interfering
vendor branches (and an empty trunk!).  The OP could try that,
merge one of them to the trunk and start merging deltas.  It
might work without surgery.  Then again, I havent' actually done it,
this is just an impression from reading the docs.


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Again: multiple vendors

2005-03-03 Thread Pierre Asselin
Baurzhan Ismagulov [EMAIL PROTECTED] wrote:

 Could a Branching Expert please help me drawing the same for my needs?
 I've got 4 upstream vendors and want to keep them in different branches.
 I have two goals: importing new upstream versions and merging the deltas
 into the main trunk, and tracking which change introduced a particular
 bug.

 [ complicated, reticulated branching diagram omitted ]

Maybe something simple:



/1.1.1
   /
MAIN  1.1
  \
  |\
LINUS | \1.1.2
  |
  \
  |\
RMK   | \1.1.4
  |
  \
  |\ 
PXA   | \1.1.6
  |
  \
   \
HWVENDOR\1.1.8


That is:  ALL of them branched from 1.1 .  The MAIN series is
imported on a vendor branch for convenience, but all others are
regular branches off of the first trunk revision.  (Maybe the MAIN
series should be a regular branch too.)

Or maybe the common branch point can be the tip of the trunk after
the main import, so you'll have weird branch numbers like 1.1.1.12.8.x
different for each file.  Doesn't matter, don't look at the numbers.

I don't think the actual branch structure matters.  What you do want
is all the various releases *somewhere* in the hierarchy, and *tagged*.
Keep good notes about your tags.  Your notes *should* have the filiation
of the various releases if known, but only for reference.  With tagged
sets in your repository you can look at diffs and merge abritrary
deltas to your trunk.  That should be enough (but you have a hell of
a lot of vendors !).


To start a new vendor series you would probably do something like this.

cvs checkout -rCOMMON_BRANCHPOINT the_mess
cd the_mess
:
: start new branch
cvs tag -b LINUX
cvs update -r LINUX
:
: remove all files, keep CVS metadata
: (not tested)
find . -type d ! -name CVS | while read d; do
(cd $d  rm *)
done
:
: Overlay first tarball
cp -r path/to/fresh/tarball/* .
:
: See what files are new or removed
cvs -nq update -I! -ICVS
:
: U or P files need to be cvs-deleted
: ? files need to be cvs-added
: ? directories need to be recursively added
 M files can stay
:
cvs commit
cvs tag LINUX-1
:
: remove all files again,
: overlay second tarball, repeat


As Greg Woods said, if your vendors do a lot of file renaming and
directory remodeling CVS will lose.  You won't be able to do
effective automated merges and you'll need a more powerful tool.
Looking at your branch names, this may be a job for bitkeeper...
I know nothing about bitkeeper, other than it was designed for
insanely decentralized development.


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: vendor/local files in CVS

2005-02-24 Thread Pierre Asselin
Mark D. Baushke [EMAIL PROTECTED] wrote:

 New imports are always on the vendor branch with -X and 1.2 is always
 dead. So, the trunk is no longer ever potentially broken.

Hmmm, I see.  I had read the 1.12 documentation at
https://www.cvshome.org/docs/manual/cvs-1.12.11/cvs_16.html#SEC115
and it didn't occur to me that all the files are new during the
initial import.

So if you check out a trunk sandbox after the initial import -X,
you get an empty ?  I can see a new FAQ being born.  How do you do
the initial merge, with just one -jVENDOR ?

Hey, multiple vendor branches should work now.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: vendor/local files in CVS

2005-02-23 Thread Pierre Asselin
Mark D. Baushke [EMAIL PROTECTED] wrote:

 Pierre Asselin [EMAIL PROTECTED] writes:

  ... It's important to understand that each
  import after the first *breaks the trunk* until
  the merge has been successfully committed.

 Note that if you are using cvs 1.12.x, you may
 find the -X option to be of interest as it does
 NOT put an import branch into the mainline
 directly. Instead, a dead version 1.2 is created
 on the first import.

So files added by the vendor don't show up on the trunk, but in
the meantime the trunk is still potentially broken.  Suppose the
vendor made changes to several closely related files, some but not
all of which had been modified locally.

Immediately after the second import, the two classes of files are
no longer in sync on the trunk.  The locally modified files are
still at revision 1.2 and have only your changes.  To pick up the
new vendor changes in these files, it is essential to merge the
import and commit a new revision 1.3 .

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: vendor/local files in CVS

2005-02-21 Thread Pierre Asselin
Bob Fyfe [EMAIL PROTECTED] wrote:

 We receive source code from a vendor which consists of many files 
 (call it version 1).

Ok so far.

 That source code requires running a 'make' to 
 set up the environment from the tar file they distribute.

Fine, but the 'make' has nothing to do with CVS.

 Subsequently, several files have been changed. Additionally, several 
 files have been created.  So at this point you have vendor source 
 files and several localized files (i.e. vendor files modified and 
 new locally created files).

Still ok, this is a fairly routine use of CVS.

 This would be an easy scenario to put 
 things into CVS - you could just put all of it, vendor and locally 
 modified files there.

Not like that.  There are several steps.
1)  Import ONLY the vendor files into CVS.
2)  Check out a sandbox.
3)  Work in the sandbox.  Change files, add new files,
run make.
3b) Do *not* run cvs add on the products of the make.
Those are generated files and it is best to manage
only source files.
4)  Commit the changes in the sandbox.


 The problem I am trying to conceptualize 
 before it happens is when the vendor provides a new release with new 
 vendor source files and new versions of the locally modified set of 
 files.

You tag your trunk, import the newly received files, and merge
the import to the trunk.
https://www.cvshome.org/docs/manual/cvs-1.11.19/cvs_13.html#SEC103

This takes a bit of getting used to.  It's important to understand
that each import after the first *breaks the trunk* until the merge
has been successfully committed.  Sometimes the vendor changes don't
merge cleanly, so it is a good idea to tag the trunk before importing.
Having a tag allows you to recover your last good copy while someone
figures out how to finish the merge.  In extreme cases you can
branch from the last good trunk point and continue working
as if the import hadn't been done.


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Latest Versions in Separate Folder than Repository

2005-02-19 Thread Pierre Asselin
[EMAIL PROTECTED] wrote:

 I've had a CVS set up, but an idea crossed my mind.  Is there a way to
 make it so that cvs will keep the latest versions of the files in the
 repository (in their working form, not diff form) on the server in a
 folder separate from the repository?

With the loginfo file.  The on-line manual has a worked example
that updates a reference sandbox on every commit.

https://www.cvshome.org/docs/manual/cvs-1.11.19/cvs_18.html#SEC158

The reference sandbox can even be on another machine, if the server
has the ability to run remote commands on it.

 For instance, with a repository folder 'C:\CVSRepo' with module 'code',
 whenever someone commits a change to the module would it be possible to
 have the module 'code' be checked out on the cvs server in a folder
 separate from 'CVSRepo'?  Ie 'C:\latestCode'.

On Windows ?  Oops.  Well, the loginfo file should work as everywhere
else, but you'll have to translate the bash example in the docs to
some other scripting hack supported on Windows.  I wonder if the
wincvs folks have a similar example in their docs?  I found the
exact same example on their site, but not translation to Windoish.

Basically, your loginfo hook has to *schedule* an update of the
reference sandbox after a small delay and exit before the update
begins.  That allows the triggering commit to release its repository
lock before the update fires up.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Which combination of CVS-Tools can be recommended in a (Windows-Linux) Client-Server environment?

2005-02-07 Thread Pierre Asselin
Christian [EMAIL PROTECTED] wrote:

 I'm currently installing a linux-server with red-hat 9. There are
 a few clients that run on Windows XP or Windows 2000.  Now I have
 to make thoughts which CVS- tool to take, because it is planned to
 use CVS for source control.  Has someone made experience in such
 a client-server environment?

Yes.  Server:  stock CVS on Redhat 7.2, access through ssh with
public key authentication.  I create user accounts as needed and
copy public keys to the ~/.ssh/authorized_keys files.  Oh, and I
installed viewcvs under apache because some users find it useful.

Linux clients:  stock CVS and ssh.  Windows clients: TortoiseCVS,
with PuTTY for the ssh access.

 Can someone recommend a combination that runs stable.  Currently
 I would tend to install cvs-1.11.18-cvshome.org.9x.1.i386.rpm but
 I would appreciate very much if someone could give me a hint which
 versions/tools to take.

Like I said, I just used the stock binaries that came with my
boxes.  This is not a big team and software development is not our
primary function by a long shot, so we're not exactly stress-testing
the setup.  The RH 7.2 dates from my starting day.  I know it looks
old now, but it still works fine.

This is on an intranet, so I don't have to be too paranoid
about security.  The apache is probably the biggest hole !

At my previous job we had a Linux server and various clients with
a small but very active team (as in: update three times a day or
you'll be left behind).  As far as I know the server was whatever
Redhat release was current at the time and the CVS was the stock
install.  Worked fine.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: user permissions of files and directories

2005-02-07 Thread Pierre Asselin
Matthias Friebe [EMAIL PROTECTED] wrote:

 I was unsuccessfully checking several CVS documentation for user 
 permissions in CVS.

Larry already pointed you to the docs on cvshome.org, so start there.
Note the bit about LockDir in CVSROOT/config, which is necessary
if you plan to give read-only access to some people.


 What we want to do is give explicit read permissions to users for 
 files/directories. By default a user should have no read or write access 
 to files/directories unless we specify that they do.

Set up a LockDir and give write access to everyone.  I think
the LockDir should be 0775 + setgid and everyone should be
in the LockDir's group.

The project directories should be 0775 + setgid, with one group
per project.  The project developers need to be in the group in
question so they have write access.  Everyone else has read
access, which is more than you want.

To block read access selectively, place each project tree under a
gatekeeper directory, permission 0750, with yet one new group
per project.  People with read-only or read-write access access
need to be in this gatekeeper group.  Others aren't, and this is
where they lose their read access.

/var/
cvslock/rwxrsxr-x   lockgrp

$CVSROOT/
proj-1-gate/rwxr-x---   proj1grpR
proj-1/ rwxrsxr-x   proj1grp
proj-2-gate/rwxr-x---   proj2grpR
proj-2/ rwxrsxr-x   proj2grp

A user not in group lockgrp has no access.

A user in lockgrp only still has no access.

A user in lockgrp and proj1grpR has read access to project 1.

A user in lockgrp, proj1grpR and proj1grp has read-write access to
project 1.

Any other combination of lockgrp, proj1grpR and projgrp would be
an error.

Since each project is buried one directory deeper than normal
you would set up appropriate definitions in CVSROOT/modules to 
skip the intermediary gatekeeper directory.

If this is to be retrofitted to an existing repository, moving each
project down is going to be a one-time nuisance.  Either tell
everyone to commit their work before the move and check out new
sandboxes afterward, or let the braver ones edit their sandbox
CVS/Root directories.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: RV: Newbie question. How to manage replaced files

2005-01-30 Thread Pierre Asselin
N?stor Bosc?n [EMAIL PROTECTED] wrote:
  
 I have been using CVS for some time and have encounter problems when
 somebody gives me a file that I have to replaced in my CVS sandbox. This
 always happens because sometimes I have people outside the organization and
 they send new versions of files that I have to replace in the sandbox and
 try to update and commit to the CVS Repository. What is the best way to
 manage this case?

I would figure out what revision of the file the external user started with.
Then I would create a branch at that revision, commit the modification to
that branch and see if I can merge the branch back to the trunk.

By extension, if people send you patch of the entire source tree, *based
on a released version*, you can branch the entire tree off the corresponding
release tag, apply the patch, commit, and decide whether you want to
merge the branch.

If you can't determine the revision or tag from which to branch,
you probably need to tighten your controls a little...

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: cancel the last commit

2005-01-21 Thread Pierre Asselin

Jehan PROCACCIA [EMAIL PROTECTED] wrote:
 [ ... ]
 $ cvs -d :pserver:[EMAIL PROTECTED]:/var/cvs update -A
 [ ... ]
 RCS file: /var/cvs/trombintDev/easyExtract.php,v
 retrieving revision 1.3
 retrieving revision 1.4
 Merging differences between 1.3 and 1.4 into easyExtract.php
 easyExtract.php already contains the differences between 1.3 and 1.4
 RCS file: /var/cvs/trombintDev/identification.php,v
 retrieving revision 1.9
 retrieving revision 1.11
 Merging differences between 1.9 and 1.11 into identification.php
 rcsmerge: warning: conflicts during merge
 cvs update: conflicts found in identification.php
 C identification.php

It's hard to reconstruct what happened from where I sit, but
you must have been on a branched sandbox *with uncommitted changes*
before you did the update -A.

An update is always a three-way merge between
1)  the files in your sandbox
2)  the files you started from
3)  the files in the repository at the tip of the
trunk or branch you are updating to.

If you commit before the update, (1) and (2) are identical, so the
update amounts to replacing (1=2) by (3).  I assumed that you
committed all pending changes to the branch before returning to
the trunk so I'm not sure what happened.

(Of course nontrivial updates are the bread and butter of normal
work on the trunk, where cvs forces you to update *before* committing
your changes.  Conflicts happen in those cases, too, that's normal.
But you were on a branch by yourself, I thought you could commit
everything.  Bah.)

Okay, you can see what kind of damage there is and try to repair
the conflicted files, or ...

 I was wondering if I could do something simpler:

 1) I save the manipulations above:
 [EMAIL PROTECTED] /var/www/html/ldap]
 $ mv trombintDev trombintDev.update-A

 2) Get the trunk code
 [EMAIL PROTECTED] /var/www/html/ldap]
 $ cvs -d :pserver:[EMAIL PROTECTED]:/var/cvs checkout -r trombint-2-0-0 
 trombintDev

Yes, much easier, but see below.

 3) Then copie/replace from my backup of the new/beta feature set  every 
 newmodified files to that fresh checkout
 $ cp /tmp/trombintDev/identification.php ./trombintDev/
 $ cp /tmp/trombintDev/cas-header.php ./trombintDev/

Be careful, the trunk seems to have advanced while all this was
going on.  Make sure that identification.php and cas-header.php
haven't been modified by others, or you will be clobbering their
changes.  I say, was that how the conflicts happened ?  If so you
may be better off cleaning up the conflicts in trombintDev.update-A.

In any case, what you want is a sandbox that
1)  is on the trunk, and
2)  has all the new/beta/semibroken changes in it.

 4) After I have put back all the newmodified files into the sanbox 
 (./trombintDev), I will just have to commit ! no need to put -r 
 trombint-2-0-0 it will go there (trunk) anyway ?

Right.  Just plain commit, to the trunk.


 I don't really understand this -A option but I tried it ... (see above)

Think of it as a strange way to say update -rnothing.
(Actually it's more like
update -rnothing -Dnodate -kdefaultkeywords
)

If view of the confusion, I would double-check that the trunk didn't
lose any work.  Run cvs log on the affected files and note which
revisions were committed by you and which ones by others.  Run
cvs diff between consecutive revisions and make sure that your
changes don't include rollbacks of other people's changes.

Similarly, on the stable/bufix branch make sure that all the
new/beta stuff is completely gone.  You more or less have to
do that anyway, since having beta stuff would be a bug
and on that branch you're fixing bugs.

Good luck.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: FW: can I checkout up to three branches into one workspace?

2005-01-21 Thread Pierre Asselin
Mark Hanna [EMAIL PROTECTED] wrote:
  Pierre,

 We don't ship src, but are currently in the situation where we have
 numerous branches all with customer specific areas which are pulled into
 the build.  The maintenance of these branches with fixes having to be
 merged between several branches has become time consuming for our small
 development team, so I've been tasked along with the chief architect to
 come up with a sensible solution which can quickly improve things before
 a new batch of customers comes on line.

I'll tell you how I would do it, but *it does not scale well*.  I'd say
it's O(N) in the number of customers and I don't think that's good.
Now if you already use a branching scheme that's O(N^2) I suppose that's
an improvement, but still...

 One alternative I'm looking at is a method of checking out the build
 combination (stable point + patches +customer files) into different
 directories and using ant to script the compilation. Do think this is
 reasonably easy to achieve or would you suggest something better ?

See, thats what I don't understand.  ant is like make for Java,
right ?  Why can't the ant script be parametrized by customer and
take appropriate actions using the appropriate parts of the source
tree ?  *That* scales well.  Anyway.

Avoid long-running branches.  Get a trunk with generic features
only.  At some point, tag the trunk and create a branch for each
customer.

cvs tag base_1
cvs tag -b customerA-1
cvs tag -b customerB-1
...

Go on each branch and put the custom feature for the customer.

cvs checkout -r customerA-1 the_project  cd the_project
make custom changes for customer A
cvs commit
cd ..  cvs release -d the_project
# repeat for the other customers

Your revision tree now looks like a linear trunk with N little
stubs at the basepoint.

*-- generic only
   /|\ 
  / | \ 
 /  |  \ 
A   B   C 

Now the release process looks like this:
1)  Tag the trunk.
2)  Start a release/bugfix branch.
3)  Stabilize the release branch.
4)  Tag the release branch when ready to release.
So far this is standard CVS fare but it handles only
the generic code with zero customizations.

(on a trunk sandbox)
cvs tag product_release1_bp
cvs tag -b product_release1
cvs update -r product_release1
(stabilization begins)
cvs commit
cvs tag product_release1_0

Now the O(N) customization process begins.  For each
customer,

4i) Create a branch off the release point.
5i) Merge the little stub to the new branch.e

cvs checkout -r product_release1 the_project  cd the_project
cvs tag -b product_release1_0_customerA
cvs update -r product_release1_0_customerA
cvs update -j base_1 -j customerA

Conflicts ?  Deal with them.  You have to expect conflicts
and you have to fix them by hand, therefore this process
*can not be automated*.

When the conflicts are fixed, you are not done.  You just made
nontrivial changes to a sandbox and you need to test the custom
functionality.  You also need to test the generic functionality in
case it got wrecked by the customizations.

WHEN all testing is complete, you can cut a custom release off the
branched release branch.  After a while your revision tree looks
like this:


---*---Xtrunk
  /|\   \
 / | \   \
/  |  \   \
   A   B   C   *-*--release
  /|\   /|\
 / | \ / | \
/  |  \   /  |  \
   A   B   C A   B   C


So you keep SHORT branchlets with customizations and ONLY
customizations.  You re-graft those branchlets up the release
branches by the techniques shown above and you test.

Eventually the original branchlets become too rusty to keep up with
the trunk and you get too many conflicts at release time.  When
that happens just stop using the originals and declare that the
branchlets of the last successful release are now the references
for customer-specific changes.

That's my process and I think it sucks.  It's ok with three customers,
but what if your company grows to 20 ? 100 ? 1000 ?  I would MUCH
rather have a unified project tree with customer-specific features
segregated to subdirectories, say.  I would create the customized
releases *at build time* with parametrized scripts.  I would also
maintain a unified test rig to keep all the variants under control
between releases.  I understand that Java tools like to impose
a directory layout that may interfere with what I say, but there
must be a way.

The ONLY good thing I have to say about my branchlet scheme is that
it is harder to leak intellectual property between customers that
way because the trunk and release branches are completely 

Re: cancel the last commit

2005-01-19 Thread Pierre Asselin
jehan.procaccia [EMAIL PROTECTED] wrote:

 Great I've managed to rollback to a stable revision with the above doc.
 Now I want to keep that stable revision in production, and create a 
 branch for new/beta features

or a branch for the *stable* codeline, leaving the new/beta stuff
on the trunk.  But it's up to you.  Personally, I only branch new
stuff when it is really speculative and there is an even chance
that it will be abandoned.  Otherwise, it goes on the wild trunk.


 so I tagged that revision :
 [EMAIL PROTECTED] /var/www/html/ldap/trombintDev]
 $ cvs  tag -c trombint-2-0-0 .

Excellent.


 I want to keep patching if needed that production revision an keep 
 developping new features, so I created a branch:
 $ cvs  rtag -b -r trombint-2-0-0 trombint-2-0-0-patches trombintDev

Excellent.  Your branch is for the stable codeline and the new
stuff goes on the trunk.  It really is easier that way.  If your
new/beta is too speculative for the trunk, post again and we'll
see how to branch that.

  From the CVS doc I can see how to update from any different branch :
 https://www.cvshome.org/docs/manual/cvs-1.11.18/cvs_5.html#SEC57

 But how do I commit to one branch or an other ?

After you update -r trombint-2-0-0-patches as the above URL directs
you to do, try a cvs status somefile.  You'll see that the file
(every file, in fact) has a sticky tag of trombint-2-0-0-patches.
This stuff causes endless confusion.  The tag is stuck to your sandbox;
what it means is that when you run a cvs command from that sandbox,
there is an implied -r trombint-2-0-0-patches as if you had typed it
on the command line.  In particular, any changes you commit from that
sandbox go to the branch and not the trunk because of the implied -r.
Similarly if you update, you get changes that others committed to the
branch and nothing from the trunk.

 When working on the 
 production files, I want to commit to branch trombint-2-0-0-patches 

so just commit from the branched sandbox

 and when I work on the new features working set I want to commit to 
 trombint-2-0-0 branch

correction, commit to the trunk.  trombint-2-0-0 is not a branch, it's
a (set of) revisions and you can't commit to that.  Do a

cvs update -A

and try a cvs status again.  You'll see that the sticky tag is gone.
You will also notice that any changes you committed to the branch
have been undone.  You're back on the trunk.

An alternative to flipflopping your sandbox like that is to go to another
directory and checkout a brand new sandbox.  One sandbox is for the
stable line, the other is for the new stuff.


 ! The problem is that the new features working 
 set was checked out before I tagged and branched the repository.

but you rolled it back !  Or so you said at the beginning of the
post.  You must have, otherwise the tag -c would have complained
that you had uncommitted changes.  The branch really starts at a
stable point.  Your most difficult task will be to un-rollback the
beta stuff on your trunk sandbox (and it probably won't be that
difficult).

Your revision tree is perfectly fine, it just has a little wart:

 wart
  |
  |
  v
  stuff---stuff---betastuff---rollback---betastuff--- ...
 |
 |
 +bugfix---bugfix--- ...


 I read  from online doc 
 https://www.cvshome.org/docs/manual/cvs-1.11.18/cvs_16.html#SEC126   
 section :

 A.9.2.2 Creating the branch after editing

 [[ hacked sources are present ]]
 $ cvs tag -b EXPR1
 $ cvs commit -r EXPR1

You don't have that problem.  Your hacked sources were already
committed, so it was too late to follow these directions.  It
doesn't matter because you rolled them back.  Your branchpoint was
a clean, stable baseline.  I recommend that you update -r
trombint-2-0-0-patches if and only if you want to work on the
*stable* code.  Otherwise, update -A.

Now about un-rollingback the unstable code you rolled back.  You know
what the files were, don't you ?  the same ones you rolled back.
Do them one by one.

cvs update -A   # just to be safe
cvs status -v file_number_one

The -v will give you the low-level revision numbers corresponding
to all your tags.  Let's say trombint-2-0-0 is revision 1.48 for this
file.  1.48 should be identical to 1.46 and 1.47 is the one you rolled
back.  So,

cvs update -j 1.48 -j 1.47 file_number_one

and you have the unstable file_number_one again, ready to be
committed as 1.49.  Repeat for the other files,

cvs status -v file_number_two
cvs update -j 1.11 -j 1.10 file_number_to  # or whatever
cvs status -v file_number_three

and so forth.  When this is over you will have returned right back
to your starting point: broken code in the sandbox.   Clean it up if
you can and commit.  If you can't clean it up yourself go ahead
and commit the broken code, tell the other 

Re: can I checkout up to three branches into one workspace?

2005-01-18 Thread Pierre Asselin
Mark Hanna [EMAIL PROTECTED] wrote:

 We want to reconstruct our code base within one module that already
 exists. Currently we branch a copy of the entire src of the module onto
 a branch and develop it specifically for each customer but due to the
 increasing number of customers we want to change the way we work. 

Before we go any further, do you ship sources ?  If not, why can't
you have an integrated source tree supporting all variants and
select the customer variant at build time with conditional compilation
and similar tricks ?


 [ ... ]
 The idea is to keep a generic branch and at a validated point, branch
 off individual files onto customer specific branches (i.e. customer_A,
 customer_B, etc). This point will also be used to create a branch for
 fixes.  [ ... ]

Yeah, it can be done, but it's a lot of trouble.  I would look at
alternatives first.

-- 
pa at panix dot 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-10 Thread Pierre Asselin
jsWalter [EMAIL PROTECTED] wrote:

  It's -kv, not '-ko'.  '-kv' removes the keyword (and the bracketing
  $$) and leaves only the value.

 OK, but doesn't this strip ALL the keywords?

Yes.  It's all or nothing.


  and you have to be *very* careful with the spelling of '$Revision:
  $' when you add a new line in the file you're editing.  [ ... ]

 OK, you lost me here.

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.

My suggestion was to use a spelling that can be checked by a utility,
and to enforce that check in a commitinfo hook.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Advice regarding Branches

2005-01-08 Thread Pierre Asselin
jeetu mahtani [EMAIL PROTECTED] wrote:

 [ ... ]
 Since we may need to do patch releases in the interim I have both of
 them working in their own branches to isolate Main.

The usual approach is to start a support branch at every release
point.  Your patch release would be done off the support branch
and (probably) merged to the trunk.  Your support branch would
contain zero new features.  Features belong to the trunk, in
preparation for later releases.

Doing it that way, both of your enhancements could probably have
been done on the trunk.  Doing development on a branch is a bit of
trouble, as you are finding out, so it is normally done only if
the work is speculative and you want to isolate the trunk from it.


 [ ... ].  The first developer with the long term enhancement
 needs to see the enhancement done by the second developer (for some
 reason) so how I bring his branch up to do?

The way I said before:  transfer his work to a new branch and kill
the old one.

: (initially on the oldbranch...)
cvs commit  : to oldbranch
cvs update -A   : return to the trunk
cvs tag newbranch_bp: mark where you are
cvs tag -b newbranch: start a new branch
cvs update -r newbranch : get on newbranch

: bring in the work from the old branch
cvs update -j oldbranch_bp -j oldbranch
: fix conflicts
cvs commit  : to newbranch


 I guess by tagging the
 Main at the appropriate point in times, I can update his Branch but it
 just seems such a cumbersome and time consuming process (of
 continuouslly tagging and keeping track of tags).

Updating the branch is not the problem.  The problem is when you
try to merge that branch back when the work is finally done.
Unless you planted tags at just the right places and use them
in your merge, you'll get spurious conflicts.  It's best to
merge unidirectionally, always from branch to trunk.

-- 
pa at panix dot 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-07 Thread Pierre Asselin
jsWalter [EMAIL PROTECTED] wrote:
  Try 'cvs admin -kv'.  Try it on a test repository first.

 Well, doesn't this tell CVS not to proces *any* keywords on this
 particular file?

It's -kv, not '-ko'.  '-kv' removes the keyword (and the bracketing
$$) and leaves only the value.

Your files will end up looking like this:

* Since $Revision: $: still working
* Since 1.24: ladidda badabba
* Since 1.23: tamtidelam

and you have to be *very* careful with the spelling of '$Revision: $'
when you add a new line in the file you're editing.  I recommend
ending it with a colon and space before the dollar, as above, so
you can verify the presence of the keyword with the RCS command 'ident'
before you commit into cvs.  Maybe even in a commitinfo script ! 

-- 
pa at panix dot 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-06 Thread Pierre Asselin
jsWalter [EMAIL PROTECTED] wrote:

 I'm using phpDocumentor and would like to have the '@since' tag auto
 insert the CVS file version, but not change it the next time the file is
 submitted.

 this...
* @since $Version: $

 to become...
* @since 1.24

 not...
* @since $Version: 1.24$

Try 'cvs admin -kv'.  Try it on a test repository first.


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Can't download CVS!

2005-01-05 Thread Pierre Asselin
Larry Jones [EMAIL PROTECTED] wrote:

 TortoiseCVS (http://www.tortoisecvs.org/) is another GUI that runs on
 top of some CVS implementation, but I don't know whether they bundle a
 CVS implementation with it or not.

When I installed mine, it came with a CVSNT binary.  You then have
to hook this binary up in the TortoiseCVS Preferences menu.


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Advice regarding Branches

2005-01-05 Thread Pierre Asselin
jeetu mahtani [EMAIL PROTECTED] wrote:

 We have several developers working on various branches. One of the
 developers is done with his fixes so I merged his branch into the Main
 trunk. Now the other developers who are working on their respective
 Branches need to also get these fixes.

Why ?  Why can't they finish their branch and merge them too ?
Why are they working on branches if they don't need to isolate themselves
from the trunk ?


 How do I make this Merge so the
 various developers are up to date with Main trunk updates?
 Thanks.

Start new branches up the trunk and merge the old branches into them.

cvs commit  # to oldbranch
cvs update -A
cvs tag newbranch_bp
cvs tag -b newbranch
cvs update -r newbranch
cvs update -j oldbranch_bp -j oldbranch
cvs commit

but I repeat:  something's fishy with your approach.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Newbie Questions

2005-01-04 Thread Pierre Asselin
Larry Jones [EMAIL PROTECTED] wrote:

 If you want to use CVS outside of Eclipse, you may also be interested in
 WinCVS which provides a nice GUI and includes CVSNT:

 http://www.wincvs.org/

I would recommend that the OP try http://www.tortoisecvs.org instead
of WinCVS.  In my opinion WinCVS is more complicated than the
command-line interface!  TortoiseCVS has reduced functionality but
also has a much shallower learning curve.

I would also recommend
1)  learning CVS independently of Eclipse;
2)  finding a better forum than this place for
the inevitable Eclipse questions.  We
just don't have the expertise here.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Trying to recommit lost commits due to hard disk failure

2005-01-04 Thread Pierre Asselin
Edd Barrett [EMAIL PROTECTED] wrote:

 I have an issue with my cvs repository. I had a disk failure and I lost
 it. After recovering a backup from about a month ago, I thought Id be
 able to simply re-commit the changes. If itry it gets furious that there
 is a huge gap in revision numbers.

 What is the best plan of action in this case? Development has come to a
 complete halt due to this... hum...

I vote for checking out brand new sandboxes off to the side,
copying the latest files you have from your old sandboxes, and
committing the lot.  You lose the history between the crash and
today, but that's what crashes do to you.

If all developers do that independently, the first one to finish
gets in and the others have to deal with amusing conflicts.
So deal with them.

I really think this is the path of least resistance.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Merge and CVS Headers ... best practice?

2005-01-03 Thread Pierre Asselin
MumboJumbo [EMAIL PROTECTED] wrote:

 I keep getting merge conflicts in CVS headers ... its not a big deal ... 
 but it is very annoying ... is it common practice to use CVS headers 
 branching together ?

I use update -kk -jstart -jfinish when I do my merges, where
the -kk option prevents any keyword expansion conflicts.  After
I commit the merged sandbox, I get rid of the sticky -kk with
an update -A.


 ps my cvs header is a nice simple:
 [ ... ]
 // $Log$

Except that one.  Don't use $Log$, it's a conflict generator.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: ## Need help to configure CVS ##

2004-12-29 Thread Pierre Asselin
[EMAIL PROTECTED] wrote:
 i'm the newbe to CVS. I'm working in a project that needs to use CVS. I
 have linux server and windows workstation. We r doing projects in
 Eclipse IDE under windows.

The only thing I can tell you is that you will need to run cvs init
on the Linux server.  After that, your problem becomes an Eclipse
question and you're not going to find much expertise on Eclipse here.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: cvs ignore feature

2004-12-25 Thread Pierre Asselin
Jeff Decker [EMAIL PROTECTED] wrote:

 [ ... ] My question is I am getting the project from 
 a repository that already has files in it but once I get the file I want 
 cvs to ignore any future changes I make to the file. 

As others have told you, cvsignore won't do that.

 The reason I need to do this is because we have build scripts that I 
 will modify to work on my system but if I commit the changes then it 
 won't work on the official build machine.

What you should do is try very hard to modify the scripts
so they work on all systems.  Writing portable code is such a joy.
If you break a script, I'm sure your colleagues will let you know.

Having said this, you could deliberately plant a sticky release
tag on the files that get changed, to make sure you never commit
the changes.  I think this will work,
cvs update -rBASE file1 file2 ...

but you may have to do it manually by revision number,
cvs status file1
cvs update -r1.whatever file1
...

If you now try to commit one of these changed files, you will
be tossed out.  To commit your tree wholesale, minus the bad files,
you'll have to get the unmodified versions,
rm file1 file2 ...
cvs update file1 file2 ...
U file1
U file2
...
cvs commit

If the files have changed in the repository, the only way for you
to get the new versions is to remove the sticky tag and plant
a new one.
rm file1 file2 ...
cvs update -A file1 file2 ...
cvs update -rBASE file1 file2 ... # I hope

Omit the rm command if you want to merge your changes into
a local copy of the latest, instead of starting from scratch.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: problem adding files to a branch

2004-12-22 Thread Pierre Asselin
Jean-Pierre Sevigny [EMAIL PROTECTED] wrote:

 $ cvs add test.txt
 cvs add: cannot add file on non-branch tag uwap_3_1-RELEASE

Do you have a CVS/Tag file ?  If so, what does it contain ?

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Tagging files

2004-12-08 Thread Pierre Asselin
Kristian Bisgaard Lassen [EMAIL PROTECTED] wrote:

 $ cvs tag test
 cvs server: [17:52:46] waiting for krell's lock in 
 /users/cpntools/repository/cpn2000/sml/statespacefiles

 What can I do to get the files tagged?

Did you look specifically, on the server, in
$CVSROOT/users/cpntools/repository/cpn2000/sml/statespacefiles ?
That's where you're likely to find the stray lock files.

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


Re: [QUAR]Re: CVS, RCS, System Files

2004-12-07 Thread Pierre Asselin
Larry Jones [EMAIL PROTECTED] wrote:
 Pierre Asselin writes:
  
  Yes, it is routine.  You can even use RCS and CVS at the same time
  on the same project, they will mostly ignore one another.

 That's not quite true.  It's perfectly safe to use both to *read* files,
 but you can lose changes if you use both to update the same file at the
 same time because they don't use the same locking mechanism.

Good grief, not like that !  I mean using RCS in a sandbox, behind
CVS' back.
sandbox mkdir RCS
sandbox ci -l sandboxfile
sandbox cvs update sandboxfile
sandbox ci -l sandboxfile
sandbox cvs commit sandboxfile
stuff like that.  It never occurred to me to run RCS commands on
$CVSROOT/path/sandboxfile,v because my $CVSROOT is usually remote.

Using RCS that way is a little like creating a private branch in CVS,
but more lightweight --and less organized.  I do that when I am making
intricate changes, I want the option to backtrack, and I don't want
to commit broken code to CVS.

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


Re: pserver access with IP

2004-12-06 Thread Pierre Asselin
Clevo [EMAIL PROTECTED] wrote:

 The reason why I need [ to refer to the server by IP number ]:
 We have a CVS server with fix IP. And users with various PC, notebooks 
 where we can not (or must not) change system and network settings. As the 
 CVS server has it's own domain name only in the copany office private 
 network I can't access the CVS server from a Windows notebook(can not 
 resolve the name)

You say that, but the error below is not a domain name resolution problem.

 We connect with pserver:
 :pserver:[EMAIL PROTECTED]:/home/cvsroot

That should work.

 The error message:
 cvs commit: failed to create lock directory for xx 
 Permission denied

which says that you *did* connect to the server, and it returned an
error because its directory permissions aren't set up right.  All cvs
users should be in some group created for the purpose, and all
directories under $CVSROOT should be writable by that group.

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


Re: CVS, RCS, System Files

2004-12-06 Thread Pierre Asselin
Call, Wayne [EMAIL PROTECTED] wrote:

 Is it feasible to have both CVS and RCS on the same computer?

Yes, it is routine.  You can even use RCS and CVS at the same time
on the same project, they will mostly ignore one another.


 I would like to control the source code files for various projects
 using CVS, and control the system files, such as files in the /etc
 directory, using RCS.

I maintain my system files through RCS all the time.  What I do is
create a directory, populate it with symbolic links to the system
files, and RCS-manage the symbolic links.

# mkdir configuration
# cd configuration
# ln -s /etc/hosts .# for example
# mkdir RCS
# ci -t-/etc/hosts hosts
# rcs -ko hosts # in case there are RCS keywords in it
# co -l hosts   # ./hosts is now a copy
# ln -fs /etc/hosts .   # ./hosts is now a symbolic link again
#
# vi hosts  # make changes ...
# ci -l hosts   # ... and preserve the history

RCS knows how to follow symbolic links.  Note that CVS doesn't (by
design) so you couldn't use it that way.  The little chore of setting
the '-ko' flag and creating the link a second time is to make sure
that 'ci -l' doesn't try to rewrite the file in order to expand
keywords like $Id$.  If it did, it would also break the link.


 The CVS is used to archive the source code files, and the RCS [if
 it works with CVS] is used to archive the system files on a file
 per file basis.  Will the CVS work together with the RCS?

As I said, they work together just fine.  Your case is even simpler,
because you want to use them separately.

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


Re: not all files get imported

2004-11-30 Thread Pierre Asselin
Spiro Trikaliotis [EMAIL PROTECTED] wrote:

 * On Tue, Nov 30, 2004 at 06:56:04AM - manisha r sankpal wrote:

  [EMAIL PROTECTED] test_prj  import -m log msg test_prj username start
  but this command fails to check in one directory into the cvs. this
  dir contains only one *.o  file.

 [ ... ]
 If you want to circumvent this, use -I ! on your cvs import.

Spiro is correct.  To this I add:  if you want to repair your
import just *repeat* it, this time with the -I! option.  Be sure
and use the same release tag as in the initial, partial, import.

Oh, and this assumes that you do want the .o file in your repository.
If you just want the directory but not the file, that can't be done.
CVS won't import empty directories.  Workarounds would be
1)  modify your build system to create the directory
after checkout, if it is missing;
2)  add an empty .dummy file before the import, so the
directory is no longer empty.

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


Re: cvs vs. clearcase?

2004-11-29 Thread Pierre Asselin
Mike [EMAIL PROTECTED] wrote:
 I have a director asking why I don't want to user the company's
 clear case server. One item I mentioned is the lack of integration
 into unix tools and the lack of a unix client. Are these good/valid
 reasons? What are other reasons?

No Unix client ?  I thought there was one, you'd better research
that a little more.

I need more context here.  Is the rest of the company already using
ClearCase, supported by the IT staff and with a pais up license ?
Would you be working on joint projects ?  If so, get the staff to
install the client on all your machines, get yourself trained, join
the team and add the bullet point to your resume.

If however *you* would be in charge of administering CC
locally, the picture changes.  You can draft an estimate of
conversion costs, including: licenses, training, staffing.
CC doesn't run itself.

You didn't list the alternatives.  What rev control system
would be using if CC wasn't in the picture ?

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


Re: Where am I at this moment?

2004-11-29 Thread Pierre Asselin
Galen Boyer [EMAIL PROTECTED] wrote:

 I ran an import and then
 tried to checkout and it failed cannot find module (yes, I
 didn't commit).

That's a little confusing.  Can you cut and paste the exact
commands you are using and the exact error messages ?

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


Re: Importing then checking out?

2004-11-29 Thread Pierre Asselin
Galen Boyer [EMAIL PROTECTED] wrote:

   $ cd ecb-1.93
   $ cvs import -m Import of FSF ECB v. 1.93 grersrepository/ecb FSF_DIST 
 ECB_1_93

 I get the following:

No conflicts created by this import

That's better.  So far, so good.


 Okay, now I try to commit this (I assume I need to commit?)

No.  Don't commit, you can't.

cvs commit
cvs1 commit: in directory .:
cvs1 [commit aborted]: there is no version here; run 'cvs1 checkout' first

See ?  There is nothing to commit.


 Okay, so I try to check this out:

$ cd ../ecb
$ cvs checkout ecb

Try:
1)
cvs checkout grersrepository/ecb

or
2)
cvs checkout -d ecb grersrepository/ecb

or finally,
3)
cd /some/where/else
cvs checkout CVSROOT
cd CVSROOT
: edit the modules file and add a line,
:ecb   grersrepository/ecb
: and save that.
cvs commit

cd /some/clean/directory
cvs checkout ecb


 Our repository name is grersrepository.  What is the / for?  Is
 ecb a module, or do I consider it a new repository?

Ok.  Your repository is whatever your $CVSROOT environment variable
was when you ran cvs init on the server.  The subdirectories
under that are modules.  Actually, any subtree starting as deep
as you like can be a module, provided you set things up that way.

After the cvs init, there is a single module, CVSROOT.
Not $CVSROOT, just CVSROOT;  yes, it's confusing.  That predefined
module contains the cvs administrative files.

After your import, there is a new module grersrepository/ecb,
which you can check out by that name.  That's my suggestion (1)
above.  However, checking out in this way will give you a
sandbox buried one directory deeper than necessary.  To avoid
that, you can say check out grersrepository/ecb, but put it
in a newly created local directory ecb.  That's my suggestion
(2) above.

Finally, if you put a definition in the modules administrative
file, you can have a module called just ecb, that you can
check out as such, but that really begins at grersrepository/ecb
in your repository.  That's my suggestion (3).  So how do you
get to the modules administrative file ?  by checking out
a copy of it from the built-in CVSROOT module, adding your
definition of ecb, and commiting the changes.

(The real fun begins when you download ecb-1.94 and you want
to do a second import.  Post again before you do that.
Really.)

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


Re: line of command in windows

2004-11-15 Thread Pierre Asselin
Gleidson S? Barreto [EMAIL PROTECTED] wrote:
 How do you do execute command cvs in line of command
 in windows.

You make sure the directory holding cvs.exe is in your PATH.

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


Re: Problem with importing third-party sources and adding/committing changes

2004-11-11 Thread Pierre Asselin
Allen Sturtevant [EMAIL PROTECTED] wrote:

 % cvs import -ko -m foobar v1.11.17 pub/foobar-1 foobar-1 foobar-1_11_17

So far, so good.


  Later I import a newer version of this software:

 % cvs import -ko -m foobar v1.12.9 pub/foobar-1 foobar-1 foobar-1_12_9

Side note: if you never made changes on your trunk, you're ok.  If
you ever committed changes to 1.11.17 on your trunk, you need to
perform a merge, as in
https://www.cvshome.org/docs/manual/cvs-1.11.18/cvs_13.html#SEC103

 [ ... ]
  I later need to fix a bug in foobar-1_11_17, so I
 check it out to modify it specifically:

 cvs checkout -r foobar-1_11_17 pub/foobar-1

  This results in the following Sticky Tag on all
 files in my working copy, again as reported by
 cvs status -v:

Sticky Tag:  foobar-1_11_17 (revision: 1.1.1.1)

Yes.  You won't be able to commit changes, until...

  Now I add a new file called new.c and modify a file
 called build.c, but when I try to add or commit my
 changes back to CVS, I get the following errors:

 % cvs add new.c
 cvs add: cannot add file on non-branch tag `foobar-1_11_17'
 % 
 % cvs commit -m fixed a bug build.c
 cvs commit: sticky tag `foobar-1_11_17' for file `build.c' is not a branch
 cvs [commit aborted]: correct above errors first!

... until you create a branch to hold your bug fix.  Without
doing a 'cvs update -A', do this:

cvs tag -b foobar-1_11_17_bufgix
cvs update -r foobar-1_11_17_bugfix

Check the sticky tags again, you'll notice a change.

cvs commit

and this time the commit will go through.

If you want to propagate the change to the trunk, tag it
then return to the trunk then merge.

cvs tag TEMP
cvs update -A
cvs update -j foobar-1_11_17 -j TEMP
(resolve any conflicts and test)
cvs commit
cvs tag -F -r TEMP foobar-1_11_17_MERGED

The last command is to plant a moving revision tag
at the tip of the branch that you just merged.  You'll need it
if you discover more bugs on 1.11.17 and want to merge
them again to the trunk.  But I digress...  your problem
was the sticky revision tag and the solution is to branch.

-- 
pa at panix dot 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-10 Thread Pierre Asselin
Li Chou [EMAIL PROTECTED] wrote:

 Hi, I tried to figure out a single step of check out a project that
 contains modules from different branches of different project.

 For example, Project X has 3 modules, A and B which are from other
 projects.   I need to check out module A's of Project Y branch_2.5,
 and module B of Project Z's main trunk.  If they both were in the
 main trunk, I know I could add X C A B in modules file.  Now
 how do I check out them both at the same time?  is it possible?
 Thanks

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.

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


Re: history of version changes

2004-11-07 Thread Pierre Asselin
Saad Sheikh [EMAIL PROTECTED] wrote:

 I am a new to CVS. I wanted to know if there is a command that will
 list all the versions of a project.

There is a perl script, cvs2cl.pl, that consolidates the log
messages of a sandbox in chronological order.  Try Google.


 I wanted a history of versions of the project AND the files that have
 changes from one version to the next, like the history command in VSS.

From the VSS comment I infer that you're on Windows.  If cvs2cl is
the right solution you'll have to install perl first, either by
Cygwin or from www.activestate.com .  It can get messy.  I always
find it painful to integrate new tools into Windows integrated
environment ...  Different culture, partly.

For what it's worth, I run cvs2cl.pl from Cygwin all the time.

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


Re: DOS Command to get current branch?

2004-11-04 Thread Pierre Asselin
Talos [EMAIL PROTECTED] wrote:

 My question is:  Is there a DOS command that let's you know what
 branch name the sandbox you're currently is?

Run cvs status some-file-or-other and look for any sticky tag
listed in the output.  If your sandbox is on the branch, you'll see
your branch name there.  If you're on the trunk, it will be empty.

Of course that only checks the one file, not the entire sandbox,
but if you only tag and branch entire projects it's a good
sanity check.

(This assumes that you have cvs or cvsnt installed somewhere
on your path as cvs.exe'.)

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


Re: Merging question - from and to

2004-11-04 Thread Pierre Asselin
Jeeva Sarma [EMAIL PROTECTED] wrote:

 I have a file soa.pc, branched out at 1.2, now at
 revision 1.2.4.1 on branch, and 1.2 on trunk. I
 check-out from trunk, then do

 [ ... ]
 cvs update -j 1.2 -j 1.2.4.1 soa.pc

Yes, like that.  The command means, merge all changes
that occurred between 1.2 and 1.2.4.1 into the working copy,
which is what you want.

What is confusing you is that there are *three* revisions involved:
the base of the changes to merge, here 1.2, the endpoint of the
changes to merge, here 1.2.4.1, and the working copy, which doesn't
need to be called out by revision because it is the file sitting
in your sandbox at the moment.  In your case, the working copy is
identical to the base, but this isn't always true.


 RCS file:
 /cvsrep/cvsroot/ACE/ace/audit/care/soa/soa.pc,v
 retrieving revision 1.2
 retrieving revision 1.2.4.1
 Merging differences between 1.2 and 1.2.4.1 into
 soa.pc

After which the soa.pc in your sandbox should be identical
to 1.2.4.1, but once again this was a special case because
your starting point was identical to 1.2 .


 cvs update -j HEAD soa.pc
 RCS file:
 /cvsrep/cvsroot/ACE/ace/audit/care/soa/soa.pc,v
 retrieving revision 1.2
 retrieving revision 1.3
 Merging differences between 1.2 and 1.3 into soa.pc

If you omit the first -j, it defaults to the most recent
common ancestor of the given -j and of the working copy.
Here HEAD means 1.3, because you or someone else committed
changes after you checked out the sandbox with 1.2 .
The common ancestor of 1.3 and 1.2 is 1.2 so once again
you end up with a special case where the base and the
working revision are identical.  You are grabbing the
changes from 1.2 to 1.3 and injecting them in 1.2,
the result being identical to 1.3 .

BTW, if you lose track you can always do
rm soa.pc
cvs update soa.pc

to get a clean copy of the HEAD of the moment.

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


Re: setting up branch with code changes already in it

2004-10-20 Thread Pierre Asselin
Royce [EMAIL PROTECTED] wrote:

 (from top directory within tree)
 cvs tag v2_0_unstable_root
 cvs tag -b -r v2_0_unstable_root v2_0_unstable

followed by
cvs update -r v2_0_unstable

 I have not checked in the files because I wanted to be sure they will
 check into the branch. How can I verify the code will check into the
 branch?

I'd do a 'cvs status | less' and make sure every file has the
sticky tag.  Maybe also 'cvs -nt commit' (-n to block the actual
commit, -t for a trace of what would happen), but I'm not sure
that will show you what revision numbers would be used by a
real commit.


 cvs log doesn't seem to show that info. I read somewhere that
 the branch gets created on commit - is that true?

Yes, if you really commit to the new branch.

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


Re: Preventing Dirty Checkins

2004-10-01 Thread Pierre Asselin
Robin Rosenberg [EMAIL PROTECTED]@dewire.kom wrote:
 Pierre Asselin wrote:
  Hm, my language was ambiguous.  What the loginfo would trigger is
  one script, running on the test machine, that updates the test sandbox,
  builds, runs the tests, and finally moves the tag if the tests pass.

 Trigging rebuilds for every commit is insane. 

Well, the OP wanted to trigger a test build in the pre-commit check.
I was proposing a less heavy-handed solution.  Not that it's entirely
free of gatchas.

 [ sane process elided ]


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


Re: Using moving tags

2004-10-01 Thread Pierre Asselin
Doug Lee [EMAIL PROTECTED] wrote:

 Er...now maybe I'm the one missing something.  I don't see the
 problem:

 Say the LastGood tag was applied on Monday.  Tuesday someone removes
 a file and commits that, but LastGood is not moved yet.

But the tag *is* moved, if the testing robot succeeds with its
post-commit build.

If it weren't for deleted files, the robot could be just this:

#! /bin/sh
cd /the/reference/sandbox
cvs update
make test  cvs update -F LastGood

If files are removed, that's not enough.

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


Re: Preventing Dirty Checkins

2004-09-30 Thread Pierre Asselin
Maarten de Boer [EMAIL PROTECTED] wrote:
  What you *could* do is trigger the build from loginfo (post-commit)
  and update a moving tag if the build is successful.
  [ ... ]

 But why would you to that from the loginfo? Wouldn't it be easier to
 have that tag moved by a virtual user, the dedicated test build machine,
 which is building and testing in a loop, everytime the compilation is
 correct?

Hm, my language was ambiguous.  What the loginfo would trigger is
one script, running on the test machine, that updates the test sandbox,
builds, runs the tests, and finally moves the tag if the tests pass.

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


Re: Using moving tags

2004-09-30 Thread Pierre Asselin
Yamuna Ramasubramaniyan [EMAIL PROTECTED] wrote:
 I have a question about using moving tags.  You tag
 the repository with LAST_GOOD today.  Someone removes
 a file.  This file still contains the LAST_GOOD tag. 
 The next person checking out the module with the
 LAST_GOOD tag will get this deleted file.  Do you use
 a commitinfo trigger to remove the moving tag from the
 deleted file?  Are there any other ways to handle this
 case?

D'oh.  I hadn't thought of that.  Maybe the tag mover could look
for files that are 1) dead on the trunk, 2) not added on a branch,
3) still have the tag;  and then remove the tag from those files.
Not so easy to do from a sandbox from which the file has been
removed.

Well, it wasn't my requirement so I'm still ok ;-)

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


Re: Preventing Dirty Checkins

2004-09-28 Thread Pierre Asselin
Ones Self [EMAIL PROTECTED] wrote:

 I'm running a CVS server which compiles and tests the current
 files in CVS every hour.  I would like to make new checkins
 available _only_ if they compile and pass the tests.

 So, if a user checks in something which does not compile, for
 example, other users who check out at that time will not get
 the new version until the problem is fixed.  Everytime you
 do an update, you know you're getting a clean version of the
 source; one that compiles, and in which the tests pass.

I don't think you can do that.  Well, you could trigger a full
recompile from commitinfo and allow the commit only if the build
succeeds, but your commits would be a bit sluggish that way.

What you *could* do is trigger the build from loginfo (post-commit)
and update a moving tag if the build is successful.  That way
your trunk can contain garbage, but the last successfully built
commit will have an unambiguous marker on it.  Your users can
choose the unstable tip,
cvs checkout foo

or the last known good version,
cvs checkout -rLAST_GOOD foo

but in the latter case they won't be able to commit changes.
(Well, they could start a branch, but that's taking us off-topic.)

The loginfo trigger would be asynchronous, as in
https://www.cvshome.org/docs/manual/cvs-1.11.17/cvs_18.html#SEC175
and there would be negligible delay to a commit.

Simple question:  why can't the developers do a top-level make test
before committing, and sidestep the question ?  Or do the unit tests
take that long to run ?  If the latter, you'll have to guard your
build-test-retag script against multiple instances of itself.

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


Re: Question

2004-09-26 Thread Pierre Asselin
Gleidson S? Barreto [EMAIL PROTECTED] wrote:

 1-To take place the transfer of the files stored in
 the repository q they were modified for your work
 area, through a sicroniza??o operation. Like this,
 would to be in fact that sicroniza??o operation? 

I'm not sure what you mean, but...  Synchronization in both direction
has to be requested explicitly, by running a command.  cvs update to
receive changes made by others, and cvs commit to send changes made
by you.


 2-CVS counts with a mechanism capable to control the
 simultaneous accesses and the parallel modifications,
 guaranteeing like this the integrity of the
 modifications and atomicity of the operations. Would 
 be in fact that atomicity of operations? 

If I remember correctly, commits are atomic within any one directory
but are not atomic across entire hierarchies.  Commits are certainly
atomic on a file by file basis, so you do not get corrupted files.

The lack of atomicity occurs when a developers performs an update
(receive) while another developer performs a commit (send).  The
receiving developer may get an inconsistent snapshot with some files
just before their commit and some other files just after the commit.
The workaround is to repeat the update.  It would be a little
difficult to notice in practice, because when working on an active
project one has to update many times every day.  Also, the trunk
tends to be somewhat unstable since it is being actively modified.


 3-CVS possesses mechanism capable to identify and to
 solve conflicts. However those identified conflicts
 are merely textual, not existing any analysis of the
 logical consistence. Here I didn't understand the
 expression textual conflicts very well. 

A textual conflict occurs when two people modified lines at overlapping
locations in a file, or at nearly overlapping locations (~3 lines
apart or so).  These conflicts have to be resolved manually.

Modifications in distant parts of the file are accepted uncritically.
You are correct that this could introduce logical errors in the merged
file;  the amazing thing is that it almost never does, because of the
way people write software.

In any case, cvs always gives you backup copies of the two conflicting
versions of the file.

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


Re: Checkout./export a copy to /var/www

2004-09-21 Thread Pierre Asselin
Anand Graves [EMAIL PROTECTED] wrote:
 I use WinCVS to checkout a copy on my PC. When I do a commit, the file
 checks in a linux server. I would like a committed file to be checked
 out/copied/exported to /var/www/myproject.

 When I search for this, I keep finding this (for the loginfo file):
 ^cyclic-pages   (date; cat; (sleep 2; cd /u/www/local-docs;
  cvs -q update -d) )  $CVSROOT/CVSROOT/updatelog 21

 But this will update the checked out tree in `/u/www/local-docs' and my
 checked out tree is on a windows PC.

The checked-out tree is on Windows and the cvs repository is on a
Linux box, but where is /var/www ?  That sounds like Linux too.  If
your web server is also your cvs server, just change the
/u/www/local-docs in the example to /var/www/myproject and you're
done.  The commit on Windows triggers the loginfo on the Linux server,
which triggers the update on the Linux server.

If the web server is another box, you need to make loginfo trigger an
update *from the web server*.  If the web server is Linux (/var/www ?)
the standard solution is ssh, which when properly setup allows someone
on the cvs server to run commands on the web server.  If the web
server is on Windows...  well, I'd install Cygwin
(http://www.cygwin.com) and still use ssh but that's just me.

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


Re: Aliasing the trunk with a branch tag

2004-08-31 Thread Pierre Asselin
Keith Refson [EMAIL PROTECTED] wrote:
 One problem I regularly face is: how to build two different versions of
 a project which differ in only a very small subset of files.  One of
 these versions is obviously the trunk version.  It would be extremely
 convenient if this could be achieved by simply

cvs co (or update) -A myproject
cvs co (or update) -r Version_B myproject

 to switch between them.
 [ ... ]
 I recenty came across a suggestion of how to do this, and it does work
 when I tried it out.  The idea is simple - just add the branch  at the
 numeric version 1:

 cvs admin -nVersion_B:1

 [ ... ]
 I'm asking for any opinions on whether this is a safe thing to do, and any
 potential difficulties, mild or severe, which might arise.

It should be ok, but I'm always weary of long-lived branches.
After a while you might want to re-graft your branch higher up on
the trunk (for the files that do change).  If you don't see what
I mean, do an advanced search on groups.google.com for Message-Id
[EMAIL PROTECTED] .

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


Re: CVS Permissions

2004-08-18 Thread Pierre Asselin
Gaurav Vaish [EMAIL PROTECTED] wrote:

   I am using pserver to connect and more often than not, I get the
 error - Unable to create #cvs.lock, Permission denied.

   The reason is that a module or a subdirectory thereof will be
 created by the permission set of the permission who created it. Though
 the directory permissions are 775 and all the users are in the group
 cvs, but still the problem persists.

I'm lost.  775 is the correct permission.  Are you saying all the
directories have that permission and you still have problems ?

If subdirectories are being created with more restrictive permissions,
it means that you forgot to turn on the setgid bit in their
parent's permissions.

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


Re: any CVS clients, with a good user interface

2004-08-11 Thread Pierre Asselin
shivraman giri [EMAIL PROTECTED] wrote:

 I have my repositories in UNIX.
 I m working on a machine with windows XP installed.
 Is there a good CVS client, preferably a freeware, trial version
 or a GNU product that gives a graphical user interface for running
 CVS commands.

http://www.tortoisecvs.org/

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


Re: Get the list of all modules of a given repository

2004-08-07 Thread Pierre Asselin
Miguel Lopez [EMAIL PROTECTED] wrote:
 is there a cvs command that allows to retrieve all the modules of a 
 given repository?

If you mean the list of modules defined in the CVSROOT/modules file,
then
cvs checkout -c

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


Re: Import question

2004-07-22 Thread Pierre Asselin
Lemke, Michael  IZ/HZA-IOP [EMAIL PROTECTED] wrote:
 When I do a cvs import of a new vendor version the new files become the
 head revision.  I'd like to do the import such that it doesn't affect HEAD.
 Only after I've tested the new stuff I want it to become HEAD.  Of course,
 it should work with local changes merged in just like the standard way of
 doing it on the trunk.  How can I do this?  

There is no way to avoid that.  Your trunk is broken between the time
you do the import and when you merge the import back to the trunk.

To mitigate the problem, you should tag your trunk before you do the
import.  If the post-import merge gives you trouble, you can at least
start a branch off your pre-import tag so you can continue your work
in another sandbox while you sort things out.  When you finally merge
the import, you go on to merge the temporary branch.

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


Re: ***glaring*** flaw in cvs import?

2004-07-22 Thread Pierre Asselin
Robert P. J. Day [EMAIL PROTECTED] wrote:

following the instructions in tracking third-party sources, i 
 downloaded a kernel source tree that i both want to update regularly 
 from the source, and make local changes to.

i pulled down the tree, cleared out all CVS directories to turn it 
 into a regular directory tree, then used cvs import to check it into 
 my local repo.

Ok, so you checked out a tree from a public CVS server and you want
to import that locally.  You don't have to remove the CVS/
subdirectories.  See below.

in the process of doing that import, the cvs command apparently 
 decided it didn't much care for the kernel source directory 
 net/bridge/core, and threw it away!  why?  because it's called core?

Because 'core' is in the default ignore list.  I usually reset the
ignore list to just 'CVS', like this,

cvs import -I! -ICVS path VENDOR release-tag

and then check out a fresh sandbox somewhere else.

You can keep the original external sandbox untouched;  that way, you
can update it from the public CVS server and reimport any deltas to
your internal server.


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


Re: Multi-tier development CVS plan

2004-07-21 Thread Pierre Asselin
adp [EMAIL PROTECTED] wrote:
 Did you get a response on this? We are looking to move from a single CVS
 branch (MAIN) to either a two- or three-tiered system. Would be happy with
 hints.

 We are thinking of this:

 unstable - stable - release

The usual way to handle this on CVS is an unstable trunk with
stable+release branches.

++unstable
 \\
  \stable1-|-| \
  rel-1.1  rel-1.2  \
 \---stable2---|-
 rel-2.1

Every time your unstable trunk reaches a milestone, you cut a
stabilization branch.  On this branch you perform only cleanups and add
no new features.  Eventually you tag your stabilization branch and cut
a release, after which the branch becomes a bugfix branch.  Promoting
a new batch of changes from unstable to stable is done by starting
a new stable branch.

Not shown on the diagram is how the bugfixes from maintained release
branches would be merged to later releases and to the trunk, but
that's standard CVS fare.

You *might* make the original promotion model work in CVS with floating tags:
cvs tag -F -r1.6 STABLE toto.c  --oops no, cvs tag -F -r1.5 STABLE toto.c
etc.  You could then check out with the -rSTABLE flag to get an
official stable tree without the unstable riff-raff.  That said, I
don't understand the promotion model well enough to give you sound
advice.

To recap:

 unstable:
 This is where our current development goes.

The trunk, also the default.


 stable:
 This is where we merge our soon-to-be-released code so that QA can begin
 work.

You don't really merge in the CVS sense, instead you fork a branch
to isolate changes on it from the unstable trunk.

 release:
 This is where we merge from stable, tag an official code release, and then
 push the release.

You could branch the stable branch, but ususually it's easier to just
tag milestones on it.

___
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 Pierre Asselin
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.

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


Re: up-to-date check failed from a lower revision to higher revision

2004-07-10 Thread Pierre Asselin
Antony Paul [EMAIL PROTECTED] wrote:
 I am new to CVS. I am using the cvs command line client in Linux. I have
 one file whose status is as follows
 cvs status: Examining .
 ===
 File: one.txt   Status: Locally Modified

Working revision:1.4.1.3 Sat Jul 10 08:53:39 2004
Repository revision: 1.4.1.3 /home/cvsuser/cvsroot/work/base/one.txt,v
Sticky Tag:  1.4.1
Sticky Date: (none)
Sticky Options:  (none)

It is unconventional to have a numeric sticky tag ...

Existing Tags:
 No Tags Exist

... and no symbolic tags.  Anyway,


 I started with version 1.1. I created a new version using the command
 cvs commit -r 1.4.1 one.txt

Are you sure that's what you did ?  When I try something similar, I get
$ cvs commit -r1.4.1 toto.c
cvs commit: Up-to-date check failed for `toto.c'
cvs [commit aborted]: correct above errors first!

It seems that you started with revision 1.4, not 1.1 as you said.
Either that, or the revision 1.4.1.3 in your status output is wrong.
It looks like you cut'n pasted the output of cvs status, so I'll assume
that 1.4.1.3 is correct and that your initial 1.1 was really 1.4 .


 Then I modified the file and committed several time using
  cvs commit one.txt

That part works.

 Now it is in revision 1.4.1.3. The error occurred when I committed with
 the following command
  cvs commit -r 1.5 -m '1.5' one.txt
 What is wrong with it. I am the only person who works with this file and
 repository. I tried cvs update -C one.txt. Still it is giving error.

To finish off and make revision 1.5, commit one last time to the branch,
return to the trunk and merge your branch.

cvs commit  # creates rev 1.4.1.4
cvs update -A one.txt   # returns to rev 1.4 and removes the changes
cvs update -j 1.4.1 one.txt # pulls in the changes
cvs status -v one.txt

The status should look something like this:

File: one.txt   Status: Locally Modified

   Working revision:1.4 Result of merge
   Repository revision: 1.4 /home/cvsuser/cvsroot/work/base/one.txt,v
   Sticky Tag:  (none)
   Sticky Date: (none)
   Sticky Options:  (none)

   Existing Tags:
No Tags Exist

The file contents will be that of revision 1.4.1.4, as if you had
checked out a fresh copy of 1.4 and manually edited 1.4.1.4 into it.
Hence the status of Locally Modified.  Just commit the result.

cvs commit  # creates rev 1.5 .

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


Re: Shared Source

2004-07-09 Thread Pierre Asselin
Chris Puccio [EMAIL PROTECTED] wrote:

 I need to be able to have one main Core Product code base, then be able to 
 suck down only certain pieces of that Core Product code base, which will be 
 the framework for another clients product.

Possible, with restrictions.  Bundle up the shared code in subtrees,
so any client product can get shared subtrees grafted under it, rather
than pick and select files at random.  It forces you to organize your
shared code, but that is probably a good thing.  Two recommendations:

1)  The Core Product should probably be a client like
all the others.  Its only distinguishing feature would be that
it has all the shared subtrees under it.
2)  Each shared subtree should be a self-contained entity that
you can check out individually.  It should have its own test
suite, for example.  That way you can work on it in isolation
and later propagate the changes to the client products.
This doesn't preclude you from making the changes you want
from a Core Product sandbox, it just broadens your options.

 I then need to be able to have any 
 changes made to the Core Product be sync'd with any Child products that 
 received code from the Core Product code base.

The sync would occur every time you run a cvs update in a Child
sandbox.  Hmmm, notice how I've been using client instead of Child ?

 If anybody can give me some proper keywords on the CVS term to do this, it 
 would make googling much easier right now ;)

Amperstand modules.

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


Re: line number to revision

2004-06-29 Thread Pierre Asselin
WannaLeanOO [EMAIL PROTECTED] wrote:

 Is there a command line tool or command that would quickly translate 
 filename + line number to revision number.

cvs annotate

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


Re: listing new files in a local directory

2004-06-29 Thread Pierre Asselin
John Hanny [EMAIL PROTECTED] wrote:

 I'd like a cvs command that tells me what files in the current
 directory are new. One hack that I've been using is cvs update. The
 files that are prefixed by '?' are new. Unfortunately, this has the
 side-effect of updating my local directory files if they have been
 changed in the repository.

Use the -n flag to turn off the side-effect.

cvs -nq update -I! -ICVS | grep \^\\\?

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


Re: Project in a cvs, library in another

2004-06-29 Thread Pierre Asselin
Ababccc [EMAIL PROTECTED] wrote:

 I'm wondering what people usually do, in case there is a project on CVS 
 which uses a C++ library which is in a completely separated CVS.

 If the library gets changed (for its own purposes) the project might get 
 screwed...

In cases like that, I equip the client project with a big fat README
file that explains how to check out a *specific release* of the
library in a subtree.  The subtree ends up with a sticky tag and a
normal cvs update doesn't affect it.

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


Re: listing new files in a local directory

2004-06-29 Thread Pierre Asselin
Jim.Hyslop [EMAIL PROTECTED] wrote:
 [EMAIL PROTECTED] wrote:
 Use the -n flag to turn off the side-effect.
 
 cvs -nq update -I! -ICVS | grep \^\\\?
 Why are you suppressing the ignored files? This could give a bunch of
 spurious new files that you want to ignore.

Because that's how I interpreted the OP's question.  I figured it would be
easier to get a full list and filter the chaff later, rather than to chase
files that were missed because they fell in cvs' default ignore list.

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


Re: CVS and end of line characters

2004-05-27 Thread Pierre Asselin
Jo Vermeulen [EMAIL PROTECTED] wrote:
 Op Wed, 26 May 2004 11:59:46 -0400, schreef Jim.Hyslop:

 - Always modify files on the same platform you used to check them out. 

 Problem is, the people on my team use Windows, and I use Linux, so were
 kind of mixed :-)

Don't share the working copies.  You check out your copy on Linux,
edit it on Linux and commit it from Linux;  they check out their copies
on Windows, edit them on Windows and commit them from Windows.

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


Re: binary files bad idea? why?

2004-05-20 Thread Pierre Asselin
Jim.Hyslop [EMAIL PROTECTED] wrote:
 Spiro Trikaliotis wrote:
 This is no problem from my experience if the initial check-in was done
 from a Unix (LF-) based system, but it is a problem if it was 
 done from
 a DOS (CR/LF-) based system.
 There is also a remote possibility that the binary file might _happen_ to
 contain what CVS thinks is a keyword, such as $Id$. Chances are pretty slim,
 but it _could_ happen.

But the $Id$ expansion occurs on checkout.  The repository copy itself
would still be intact, and problems with the file would be fixed by a
cvs admin -kb.  Working copies could be restored with cvs update.

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


Re: RES: Checking out only files NEWER than given date/revision

2004-05-06 Thread Pierre Asselin
Alek Lapuc [EMAIL PROTECTED] wrote:

 The reason is simple. At the begining of the project we had some
 sources and include files supplied out-of-the-box with a commercial
 product. Than we done some customizations -- some files were added,
 some were changed, some were untouched.

 The main idea is to filter out the untouched files, so they are
 separated from out-of-the-box ones.

 The reason for this is that files out-of-the-box can be automatically
 patched while patching the whole product with official patch. The
 patch is prepared outside to our project. Our changes are not known to
 the product vendor, and most propably would be corrupted during such a
 patch. But having original and customized files separated, we can
 apply the patch and merge it manually to our sources if needed.

Tracking third party sources in the presence of local changes is what
the 'cvs import' command does.  The external sources are usually
delivered as tarballs or zip archives, but applying patches will work
too.

So check out your last import tag, patch it, reimport the result
and merge your trunk.

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


Re: Module weirdness.

2004-05-06 Thread Pierre Asselin
Carter Thompson [EMAIL PROTECTED] wrote:

 I have some really strange problems with my repository.

 I have the module adm with a subdirectory ui.  I also
 have a module named ui.  Both are part of a module alias,
 adm-suite.  That is,

 == Modules ==
 adm-suite adm ui
 adm   adm
 uiui

Your $CVSROOT/adm/ui/ collides with the ui/ that the ui is trying to
create.  You can't do that.  It will *not* give you the union of
$CVSROOT/adm/ui/ and $CVSROOT/ui/ .  It just breaks.

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


Re: Personal CVS repository?

2004-05-06 Thread Pierre Asselin
J Krugman [EMAIL PROTECTED] 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.

Then you have to play by those rules.  There may be intellectual
property issues.


 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.

 It occurs to me, though, that maybe I could set up a personal
 CVS repository off my home directory

Yes, indeed.  Create a directory under you $HOME and run 'cvs init'.
You'll have to get familiar with 'cvs import' too.  Read the docs at
http://www.cvshome.org/docs/manual/cvs-1.11.15/cvs_13.html#SEC104 ,
slowly.  The first import is easy, the imports following that are more
complicated.

In your case, you'll want to keep yourself in sync with commits from
external developers.  Here's what I would do.

1)  Keep a checked-out sandbox from the public repository, preferably
from a read-only account so you don't commit by mistake and
bypass your weekly review.

2)  Import the said sandbox in your own private repository, to
the vendor branch.
outside-sandbox cvs -d $CVSROOT import -I! -ICVS \
 path VENDOR import--mm-dd

3)  Checkout another sandbox from your private repo.  This is the
copy you work on.  Hack and commit normally.

4)  At review time, go to your inside sandbox, and
inside-sandbox cvs commit
inside-sandbox cvs tag review--mm-dd
inside-sandbox cvs diff -N -u -rVENDOR  ../to_review.patch

Go over the to_review.patch with your supervisor.
If approved, apply the patch to your outside sandbox.
Commit from there, using a -d option to switch to the
developer account they gave you, with read-write permission.

outside-sandbox cvs -d :ext:blahblah commit

Now there is the problem of keeping your outside sandbox up to date
(easy) and of propagating those changes to your inside sandbox
(takes some gymnastics).  At least every morning,

outside-sandbox cvs update
outside-sandbox cvs import -I! -ICVS path VENDOR import--mm-dd-1

That was the import.  Now the merge,

inside-sandbox cvs commit
inside-sandbox cvs tag premerge
inside-sandbox cvs update -j previous import tag -j last import tag
fix conflicts
inside-sandbox cvs commit
inside-sandbox cvs tag -d premerge

The 'premerge' tag is in case something goes wrong with the merge.  It
represents your last good point before attempting the merge.  If the
merge is full of conflicts, you can start a branch off of premerge to
continue your work while your figure out how to finish the merge.


 (although I'll readily admit
 that I've never set up a CVS repository of *any* kind before); I
 would use it for my fine-grain version control, while submitting
 new, boss-approved stuff to the real off-site repository only
 once a week...

 My knowledge of CVS is very limited; I know a few commands, and I
 never deviate from the most basic functionality.

The potentially hard part is all those imports and merges.  The bit
about setting up your own repository is really trivial.  One annoying
bit is that when you reimport your fresh commits to the external site,
your merge will show spurious conflicts with the same text on both side
of the conflict.  You'll just have to clean them up.


 This personal
 repository idea is far more adventurous than anything I've done
 with CVS before.

Yes, but it's the perfect thing here.  You commit to your private
repository at your chosen pace and you generate diffs at review time.

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


Re: need to force username of cvs 'action' when using shared

2004-05-03 Thread Pierre Asselin
Tim Grotenhuis [EMAIL PROTECTED] wrote:
 I am not allowed to run pserver.

Not even on a nonstandard port, tunneled through ssh ?

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


  1   2   >