Re: CVS-GUI tool

2002-03-15 Thread Colm Murphy

tkdiff can be used to highlight and resolve conflicts.
tkdiff -conflict FILE

see http://www.accurev.com/free/tkdiff

Colm A

Bharat wrote:

> Hi,
> Is there any GUI-tool to use CVS in which conflicts can be solved easily.
> <>
> I'm facing a problem of commiting files having conflicts with their
> older versions, as some another user has made changes.
> Please reply me at [EMAIL PROTECTED]
> 

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



Tag Comments

2002-03-12 Thread Colm Murphy

Hi folks,

It would be very useful for our development to be able to add a comment 
when placing a tag. This would contain more information than is possible 
to place in the tag name itself.

Has anyone ever put a system in place to do this ?

Cheers

Colm A

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



Re: List of files' revision which tag by

2002-03-06 Thread Colm Murphy

Hi Nir,

Here is a perl script that I use for that very purpose.

Colm A

Nir Harel wrote:

> Is there any command to get back the list of files with there revision by
> input the tag name only ?
> 
> 
> 



#!/usr/local/bin/perl -w
###
#
# Description: Prints either a list of tags for a module or a list of files for a 
tag.
#  taginfo operates on files in the repository.!!
#
#

#--
# Parameters
#--
$usageinfo = "Usage: rtaginfo [-d ] -t | | -f \n";
$usageinfo = $usageinfo." -d   Use the cvsroot 
repository\n";
$usageinfo = $usageinfo." -t |   Print a list of tags used 
in module or dir\n";
$usageinfo = $usageinfo." -f   Print a list of all files 
containing tag\n";
$usageinfo = $usageinfo."\nUse taginfo to view tags in your sandbox.\n";

$argno = "1";
foreach $arg (@ARGV)
{
   if ($arg eq "-d")
   {
  $root = $ARGV[$argno];
   }
   elsif ($arg eq "-t")
   {
  $mode = "show_tags";
  if ($ARGV[$argno])
  {
 # The splice command removes all entries from a list from an offset and 
returns them.
 $modulelist = join " ", splice @ARGV, $argno;
  }
  else
  {
 print $usageinfo;
 exit;
  }
   }
   elsif ($arg eq "-f")
   {
  $mode = "show_files";
  if (!$ARGV[$argno])
  {
 print $usageinfo;
 exit;
  }
  else
  {
 $chosentag = $ARGV[$argno];
 $modulelist = ".";
  }
   }
   $argno++;
}

if (!$mode)
{   
   print $usageinfo;
   exit;
}

#--

#--
# Parse the logfile
#--
parselog();

if ($mode eq "show_tags")
{
   print "\n";
   print "$modulelist contain the following tags\n";
   print "\n";
   map{ print "$_\n"; } (sort keys %tagdetails);
   print "\n";
}
elsif ($mode eq "show_files")
{
   if ($tagdetails{$chosentag}) 
   {
  print "\n";
  print "The following files contain the tag $chosentag \n";
  print "\n";
  @filelist = split (/,/,$tagdetails{$chosentag});
  foreach $file (@filelist)
  {
 print "$file\n";
  }
  print "\n";
   }
   else
   {
  print "Found no files containing the tag $chosentag \n";
   }
}
#--

#--
# Subroutine: parselog
#
#--
sub parselog
{

   my $Flag = 0;
   print "Running cvs rlog. This may take some time ... \n";

   if ($root)
   {
  $cvsopt = "-d $root -q rlog -h $modulelist";
   }
   else
   {
  $cvsopt = "-q rlog -h $modulelist";
   }

   open(CVS_LOG," cvs $cvsopt|")
   || die "Problems running cvs $cvsopt !\n";

   # $x is a control variable for the rotating bar indicating  that program is still 
alive.
   $x =0;
   # Flushing the output making bar really rotating.
   $| = 1;

   while ( defined ($line =  ) )
   {
  if($line =~ /^RCS file:\s(\S+),v/)
  {
 $rcsfile = $1;
  }

  if($line =~ /symbolic names:/)
  {
 $Flag = 1;
 next;
  }

  if( $Flag )
  {
 if($line !~ /^\s+(\S+):\s(\S+)$/ ) 
 {
$Flag = 0;
next;
 }

$tagdetails{$1} = "$tagdetails{$1},$rcsfile:$2";
  }
  # This breathtaking rotating star ...
  # Octal \010 is backspace character code.   
  if ( ($x % 40) == 1)
  { 
 print "\010\/";
  }
  elsif ( ($x % 40) == 11)
  { 
 print "\010|";
  }
  elsif ( ($x % 40) == 21)
  { 
 print "\010\\";
  }
  elsif ( ($x % 40) == 31)
  { 
 print "\010-";
  }
 elsif ($x == 41)
  {
 $x=0;
  }
  $x++;
   }  
   # Closing the pipe from 'cvs log'.
   close (CVS_LOG);   
   return;
}
#--



Re: CVS Update Behaviour

2002-02-25 Thread Colm Murphy

Hi Larry,

It turns out that CVS already does what I wanted all along!

If you don't checkout a complete directory CVS creates a Entries.Static 
file in the CVS directory. When you do an update it will then only 
update the existing files.

Colm A

Larry Jones wrote:

> Colm Murphy writes:
> 
>>What I would propose is the following update behaviour:
>>
>>(1) Update only the existing files in existing directories.
>>
> 
> You can achieve that by doing "cvs update *".
> 
> -Larry Jones
> 
> In a minute, you and I are going to settle this out of doors. -- Calvin
> 
> 



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



CVS tag

2002-02-21 Thread Colm Murphy

Hi folks,

Has there been any thought given to extending cvs tag to work with alias 
modules ?

If I have an alias module defined as follows:

MyModule -a dir1/file1 dir1/file2 dir2/file3

Then from the top of my sandbox it would be very useful to be able to run

cvs tag TAG MyModule

(which gives the response
cvs tag: cannot open CVS/Entries for reading: No such file or directory
cvs [tag aborted]: no repository)

running
cvs tag dir1/file1 dir1/file2 dir2/file3
does work as you would expect.

I know I can use rtag by there is always the issue of someone else 
commiting a change between me deciding to place the tag and actually 
placing the tag.

Regards

Colm A

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



CVS Update Behaviour

2002-02-21 Thread Colm Murphy

Hi folks,

In our development flow we frequently have the situation where a 
developer is only using a small number of the files in a given 
directory. This is setup by defining a module to contain only certain files.

All is fine until the developer does an cvs update.
The current behaviour is that all existing files are updated (which is 
fine) but all other files in the directory are checked out.
This is more of an annyoance than anything else, but it can easily lead 
to tagging files which aren't part of the module you are working on.
(if you use cvs tag).

What I would propose is the following update behaviour:

(1) Update only the existing files in existing directories.

(2) Update all existing files and checkout non-existing files (current 
behaviour)

(3) Update all existing files, checkout non-existing files and 
directories (current update -d behaviour)

Any opinions ?

Colm A

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



CVS editors

2002-02-14 Thread Colm Murphy

Hi folks,

I have written a simple perl subroutine which you can use to see who is 
editing which files without having to do a checkout.

Feel free to use it if you think it is useful for you.

Regards

Colm A

#---
# Builds a list of who is editing what files.
# Paramaters:
# $_[0]: path to CVSROOT
# $_[1]: set if you want full paths to files.
#---
sub build_editors {

my $cvsroot = $_[0];
my %editors;
my @filelist = `find $cvsroot -name "fileattr"`;
chomp @filelist;

foreach my $filename (@filelist)
{
   # $dirpath is the path to the directory in the repository.
   $dirpath = $filename;
   $dirpath =~ s/$cvsroot\///;
   $dirpath =~ s/CVS\/fileattr//;

   open (FILE, $filename) or die "Cannot open $filename: $!";
   while (defined(my $line = ))
   {
  (my $file, my $rest) = split (/\t/,$line);

  # Remove the leading F in the filename.
  # This indicates to CVS that the watched object is a file.
  $file =~ s/^F//;

  # We now add back in the path to the file in the repository.
  $file = $dirpath.$file if ($_[1]);

  my @attrlist = split (/;/,$rest);
  foreach my $attr (@attrlist)
  {
 if ($attr =~ /^_watched/)
 {
#print "$file is watched\n";
 }
 elsif ($attr =~ /^_watchers/)
 {
my $watcherstring = $attr;
$watcherstring =~ s/_watchers=//;
my @watcherlist = split (/,/,$watcherstring);
foreach my $watcher (@watcherlist)
{
   (my $watchername, my $editordetails) = split 
(/>/,$watcher);
#   print "Watcher:$watchername\n";
#   print "Details:$editordetails\n";
}
 }
 elsif ($attr =~ /^_editors/)
 {
my $editorstring = $attr;
$editorstring =~ s/_editors=//;
$editors{$file} = $editorstring;

#   @editorlist = split (/,/,$editorstring);
#   foreach $editor (@editorlist)
#   {
#  ($editorname, $editordetails) = split (/>/,$editor);
#  print "Editor:$editorname\n";
#  print "Details:$editordetails\n";
#   }
 }
  }
   }
   close (FILE) or die "Cannot close $filename: $!";
}
#   foreach $file (sort keys %editors)
#   {
#  print "FILE:$file\n";
#  print "ATTR:$editors{$file}\n";
#   }

return %editors;
}
#---

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



Re: getting all tags for a module

2002-02-11 Thread Colm Murphy

Here is a script we use to list all tags in a module.
It can also be used to return a list of files for a given tag.

Colm A


#!/usr/local/bin/perl -w
## 
Description: Prints either a list of tags for a module or a list of 
files for a tag.
#  taginfo operates on files in the repository.!!
#  Use rtaginfo to view tags for files in your sandbox.
#
#

#--
# Parameters
#--
$usageinfo = "Usage: rtaginfo -t |\n";
$usageinfo = $usageinfo."or:rtaginfo -f \n";
$usageinfo = $usageinfo."-t | Print a list of tags 
used in module or dir\n";
$usageinfo = $usageinfo."-f   Print a list of all 
files containing tag\n";
$usageinfo = $usageinfo."  This option requires 
the Everything module to be defined.\n";
$usageinfo = $usageinfo."\nUse taginfo to view tags in your sandbox.\n";

$modulelist = "";
if (@ARGV >= 2)
{
if ($ARGV[0] eq "-t")
{
   $mode = "show_tags";
   for $i (1..$#ARGV)
   {
  $modulelist = $modulelist."$ARGV[$i] ";
   }
}
elsif ($ARGV[0] eq "-f")
{
   $mode = "show_files";
   $chosentag = $ARGV[1];
   $modulelist = "Everything";
   if (@ARGV > 2)
   {
  print $usageinfo;
  exit;
   }
}
else
{
  print $usageinfo;
   exit;
}
}
else
{
  print $usageinfo;
exit;
}
#--

#--
# Parse the logfile
#--
parselog();

if ($mode eq "show_tags")
{
print "\n";
print "$modulelist contain the following tags\n";
print "\n";
map{ print "$_\n"; } (sort keys %tagdetails);
print "\n";
}
elsif ($mode eq "show_files")
{
if ($tagdetails{$chosentag})
{
   print "\n";
   print "The following files contain the tag $chosentag \n";
   print "\n";
   @filelist = split (/,/,$tagdetails{$chosentag});
   foreach $file (@filelist)
   {
  print "$file\n";
   }
   print "\n";
}
else
{
   print "Found no files containing the tag $chosentag \n";
}
}
#--

#--
# Subroutine: parselog
#
#--
sub parselog
{

my $Flag = 0;
print "Running cvs rlog. This may take some time ... \n";

open(CVS_LOG," cvs -q rlog $modulelist|")
|| die "Problems running cvs -q rlog $modulelist !\n";

# $x is a control variable for the rotating bar indicating  that 
program is still alive.
$x =0;
# Flushing the output making bar really rotating.
$| = 1;

while ( defined ($line =  ) )
{
   if($line =~ /^RCS file:\s(\S+),v/)
   {
  $rcsfile = $1;
   }

   if($line =~ /symbolic names:/)
   {
  $Flag = 1;
  next;
   }

   if( $Flag )
   {
  if($line !~ /^\s+(\S+):\s(\S+)$/ )
  {
 $Flag = 0;
 next;
  }

 $tagdetails{$1} = "$tagdetails{$1},$rcsfile:$2";
   }
   # This breathtaking rotating star ...
   # Octal \010 is backspace character code.
   if ( ($x % 40) == 1)
   {
  print "\010\/";
   }
   elsif ( ($x % 40) == 11)
   {
  print "\010|";
   }
  elsif ( ($x % 40) == 21)
   {
  print "\010\\";
   }
   elsif ( ($x % 40) == 31)
   {
  print "\010-";
   }
  elsif ($x == 41)
   {
  $x=0;
   }
   $x++;
}
# Closing the pipe from 'cvs log'.
close (CVS_LOG);
return;
}
#--


E B wrote:

> To get all tags for a module, the archives suggest
> using cvs log filename (for some filename).
> But this file might not have been there all 
> throughout the module's history. So is there 
> any another way of getting all the tags for a module?
> 
> __
> Do You Yahoo!?
> Everything you'll ever need on one web page
> from News and Sport to Email and Music Charts
> http://uk.my.yahoo.com
> 
> 




Re: Default Watching Bug ?

2002-01-29 Thread Colm Murphy

Hi Noel,

"cvs watch on dir" turns on watching for all existing files 
(recursively). It doesn't however setup default watching.
For that you need to use "cvs watch on" with no agruments, which works a 
treat.

Colm A

Noel Yap wrote:

> I had thought that "cvs watch on dir" was working at
> one point.
> 
> Anyway, I think "cvs watch on dir" should work as
> doc'ed since this would make it work like all the
> other commands (ie recursively).
> 
> Noel
> --- Larry Jones <[EMAIL PROTECTED]> wrote:
> 
>>Colm Murphy writes:
>>
>>>The manual says that "cvs watch on dir" will
>>>
>>create a fileattr with such 
>>
>>>an entry but unfortunately this is not the case.
>>>
>>>Is this a bug ?
>>>
>>Yes.  It's "cvs watch on" with *no arguments at all*
>>that creates a
>>default entry in fileattr.  Whether this is a bug in
>>the code or the
>>manual, I'll leave for others to decide.
>>
>>-Larry Jones
>>
>>I must have been delirious from having so much fun.
>>-- Calvin
>>
>>___
>>Info-cvs mailing list
>>[EMAIL PROTECTED]
>>http://mail.gnu.org/mailman/listinfo/info-cvs
>>
> 
> 
> __
> Do You Yahoo!?
> Great stuff seeking new owners in Yahoo! Auctions! 
> http://auctions.yahoo.com
> 
> 

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



Default Watching Bug ?

2002-01-28 Thread Colm Murphy

Hi folks,

While reading over the format for fileattr files in the CVS directories 
I found that the entry "D _watched=" should cause all future files added 
to that directory to be watched.

So I try it and yes indeed any files added to the directory are watched.
Whats more any directories that are added get a CVS/fileattr with the 
same entry.

The only problem I have is how to get the "D _watched" entry there in 
the first place.

The manual says that "cvs watch on dir" will create a fileattr with such 
an entry but unfortunately this is not the case.

Is this a bug ?

Cheers

Colm A

The version of CVS I am using is cvs 1.11.1.p1.
I've downloaded the development version also and its behaviour is the same.

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



Re: Question about tag

2002-01-24 Thread Colm Murphy

Hi Steve,

Unfortunately this will only work for simple modules.
If you have alias modules containing files from different directories, 
and/or certain (but not all) files in a directory then this won't work.

I assumed that since the modules were alias type
cvs tag Module
would be the same as typing
cvs tag file1 file2 file3 etc.
(which does work)

Colm A

Steve Greenland wrote:

> On Thu, Jan 24, 2002 at 02:39:52PM +0000, Colm Murphy wrote:
> 
>>So I try "cvs tag TAG Module" from the top of the sandbox.
>>No joy.
>>I get the following:
>>
>>cvs tag: cannot open CVS/Entries for reading: No such file or directory
>>cvs [tag aborted]: no repository
>>
> 
> Don't do it from above your sandbox. Instead:
> 
> cd Module
> cvs tag TAG
> 
> Steve
> 
> 



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



Re: Listing available tags

2002-01-24 Thread Colm Murphy

Hi Duncan,

Here is a script that will return all tags used in a module or directory

Colm A

#!/usr/local/bin/perl -w
#--
# Parameters
#--
$modulelist = "";
if (@ARGV >= 1)
{
foreach $arg (@ARGV)
{
   $modulelist = $modulelist."$arg ";
}
}
else
{
print "Format is show_tags.pl |\n";
exit;
}
#--

#--
# Perform a cvs rlog to generate logfile.
#--
$datestamp=`date +%d-%m-%y-%H-%M`;
chomp $datestamp;
$logfile = $datestamp."log";

print "Running cvs rlog. This may take some time ... \n";
`cvs -q rlog $modulelist > $logfile`;
#--

#--
# Parse the logfile
#--
parselog($logfile);
print "\n";
print "Tags used in $modulelist\n";
print "\n";
map{ print "$_\n"; } (sort keys %tagdetails);
#--

#Remove the logfile
unlink ($logfile);

#--
# Subroutine: parselog
#
#--
sub parselog
{

my $Flag = 0;
my $filename;

$filename = $_[0];

open (FILE, $filename) or die "Cannot open $filename: $!";

while (defined($line = ))
{
   if($line =~ /^RCS file:\s(\S+),v/)
   {
  $rcsfile = $1;
   }

   if($line =~ /symbolic names:/)
   {
  $Flag = 1;
  next;
   }

   if( $Flag )
   {
  if($line !~ /^\s+(\S+):\s(\S+)$/ )
  {
 $Flag = 0;
 next;
  }

 $tagdetails{$1} = "$tagdetails{$1},$rcsfile:$2";
   }
}
close (FILE) or die "Cannot close $filename: $!";
return;
}
#--



Larry Jones wrote:

> Duncan Sommerville writes [in very long lines]:
> 
>>Is is possible to list all the tags associated with a project, without
>>actually checking the project out and checking individual files?
>>
> 
> CVS doesn't have projects -- I assume you mean either a directory or a
> module.  And the simply answer to your question is "no", CVS doesn't
> associate tags with anything other than individual files.  You can,
> however, use the rlog command to check individual files, or directories
> or modules of files without checking them out.
> 
> -Larry Jones
> 
> The living dead don't NEED to solve word problems. -- Calvin
> 
> 

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



Question about tag

2002-01-24 Thread Colm Murphy

Hi folks,

Say I am working with a couple of different modules in my sandbox.
I want to be able to tag each of the modules separately.

If I use "cvs rtag TAG Module" then the correct files are tagged but 
there is the danger that someone else will have commited a change before 
I place the tag and so I will tag a different version to the one I was 
working with.

So I try "cvs tag TAG Module" from the top of the sandbox.
No joy.
I get the following:

cvs tag: cannot open CVS/Entries for reading: No such file or directory
cvs [tag aborted]: no repository

I can use cvs tag to tag the individual files contained in the module 
but this kindof defeats the purpose of using modules.

Any ideas ?

Colm A

P.S.

I am using CVS 1.11.1.p1 on SunOS 5.6
I have $CVSROOT set and Module is an alias module.

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



CVS Update Question

2002-01-17 Thread Colm Murphy

Hi folks,

I have a question about cvs update.
Say I have placed a tag on certain files in the repository.

I checkout the tagged files into my work area using
cvs co -r TAGNAME 

Say I now want to switch the sandbox to the latest version of all the 
files that were tagged.

When I try
cvs update -A

it updates all my files but also pulls in any other files that are in 
directories that I have in my work area.

Is there any way to tell update to only update the files in my sandbox 
and not to pull in any other files ?

Cheers

Colm A

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



Re: viewing all tags

2001-12-21 Thread Colm Murphy

Hi David,

This script was posted a while back.

--
-- show_tags.pl
--
#!/usr/local/bin/perl -w

my $Flag = 0;
while( <> )
{
$Flag = 1 and next if( /symbolic names:/ );
if( $Flag )
{
   if( ! /^\s+(\S+):/ )
   {
  $Flag = 0;
  next;
   }
  $Tag{$1} = 1;
}
}
map{ print "$_\n"; } (sort keys %Tag);
--

"cvs rlog  | show_tags.pl" will return all the tags used in the 
directory . If  is a list of all your top level directories 
then you will get all tags used in the repository.

Colm A

David Hugh-Jones wrote:

> hi all
> 
> Is there a simple way to view all the tags that have been created in a 
> repository?
> 
> David
> 
> 



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



CVS editors and watchers

2001-12-11 Thread Colm Murphy

Hi folks,

We use CVS in a fully watched mode. What I mean by this is that we have 
watches turned on for every file and use cvs edit and cvs unedit.

This means that we can easily see who is editing files by using the cvs 
editors command.

One thing that would make this command really useful would be if we 
could run the command without having to do a checkout first.
Then we could for instance create a web page which would show who is 
editing which files.

Is there any plan to create a command like cvs reditors (and cvs 
rwatchers) which could be run directly on the repository ?
If not I can write a perl script to do it but I think it would be a very 
useful command.

Cheers

Colm A

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



Re: logs of revisions since release

2001-12-11 Thread Colm Murphy

Thanks Larry.

rlog is now working as expected.

Colm A

Larry Jones wrote:

> Colm Aengus Murphy writes:
> 
>>When I run "cvs rlog -rMyTag:: directory".
>>
>>Everything works fine until it gets to a file that doesn't contain 
>>MyTag. It gives a warning and then dies with "Terminated with fatal 
>>signal 11 "
>>
> 
> I've checked in a fix for this problem.
> 
> -Larry Jones
> 
> OK, there IS a middle ground, but it's for sissy weasels. -- Calvin
> 
> 



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



Re: watch notify and editors/watchers

2001-12-11 Thread Colm Murphy

Hi Jeanie,

This might not be what is causing your problems but when I was setting 
up watches on out site it turned out that the version of unix mail we 
have doesn't support -s "Subject".

Try using "ALL mail %s" to see if it works.
If so then you might try to get your hands on another version of mail
(e.g. mailx supports -s "Subject").

Colm A

Schwenk, Jeanie wrote:

> I'm using cvs 1.11.  Sorry for the length but this requires the details.  I
> did RTFM and these issues persist.  Reference cvs manual 10.6.2 and Chapter
> 6 in Fogel's CVS book.
> 
> There are two issues:  
>   1) cvs watchers output looks wrong, and  
>   2) notify isn't happening - what else can I do to debug this?
> 
> -  I have watch turned on.  
> 
> -  the notify file has the line:  ALL mail %s -s "CVS notification"
>permissions on the file are 777.  It does not need to be wide open but I
> wanted to verify there was not a permissions problem.
> 
> -  the users file has been added and it contains one line:
> jschwenk:jschwenk@catwoman
>permissions on the file are 666
>NOTE:  we do not have DNS turned on and catwoman resolves 
>   correctly, I verified with an 
>   "echo hello | mail jschwenk@catwoman" 
>   and it worked.
> 
> In the cvs manual in section 10.6.2 and in Chapter 6 of Fogel's CVS book, it
> says this should be all I need to be notified when someone edits a file I am
> concerned about.
> 
> Here's the order I did things in as user jschwenk:  
> 
> 1. I added and committed the users file 
> 2. added the users file to checkoutlist
> 3. uncommented the ALL mail %s -s "CVS notification" in the notify file
> 4. set watch on -R systema
>set watch on -R rat
> 5. changed to user cvsadmin and checked out a file set and did a cvsedit on
> two files within the rat. At this point jschwenk should have been sent an
> email.  Nothing.  What else can I do to figure out why not?  Notification is
> critical, I'm developing in Oregon, USA and our counterpart is developing in
> Germany.  
>
> 6. checked the contents of fileattr for the rat files
> 
> Fsystema_watched=;_watchers=jschwenk>edit+unedit+commit
> FRatComm.java   _watched=;_editors=cvsadmin>Mon Dec 10 23:44:28 2001
> GMT+pilot+/home/cvsadmin/RAT;_watchers=cvsadmin>tedit+tunedit+tcommit
> FRatGuiPilot.java   _watched=;_editors=cvsadmin>Mon Dec 10 23:44:28 2001
> GMT+pilot+/home/cvsadmin/RAT;_watchers=cvsadmin>tedit+tunedit+tcommit
> 
> 7.  Did a cvs watchers and cvs editors.  The watchers command should show
> jschwenk as watching (see above fileattr contents)
> 
> /home/cvsadmin/RAT> cvs watchers
> RatComm.javacvsadmintedit   tunedit tcommit
> RatGuiPilot.javacvsadmintedit   tunedit tcommit
> 
> /home/cvsadmin/RAT> cvs editors
> RatComm.javacvsadminMon Dec 10 23:44:28 2001 GMT
> pilot   /home/cvsadmin/RAT
> RatGuiPilot.javacvsadminMon Dec 10 23:44:28 2001 GMT
> pilot   /home/cvsadmin/RAT
> 
> I was expecting to see the watcher be jschwenk NOT cvsadmin.  I know as
> cvsadmin that I have files checked out for edit, what I wanted was who was
> watching the files.  Is this a bug or did I misunderstand the goal of cvs
> watchers?
> 
> Jeanie
> 
> 

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



Re: How to explore a repository ?

2001-12-10 Thread Colm Murphy

Hi Achim,

You can use ViewCVS to explore your CVS repositories.
See http://viewcvs.sourceforge.net/ for details.

Colm A

Achim Domma wrote:

> Hi,
> 
> I'm just making my first steps with CVS. I wonder if there is a way to
> explore a repository I don't know anything about. I found something about
> 'cvs list' which seems not to exist in the official cvs !? I can not imagine
> that every user must have the repository in his head.
> 
> greetings
> Achim
> 
> 
> 

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



Re: logs of revisions since release

2001-12-07 Thread Colm Murphy

Hi Larry,

It looks like I have mis-understood the purpose of cvs log.

That said I still have a problem with its operation.

Say I have a directory with two files: file1 and file2.
file1 contains MyTag and file2 does not.

"cvs rlog -rMyTag:: directory"

returns the RCS logs for file1 since MyTag along with all of the RCS 
logs for file2 with a warning that file2 doesn't contain the tag MyTag.

I would expect that if a file doesn't contain the tag then no RCS logs 
are returned.

I am using CVS 1.11.1p1 on Solaris 2.6.
I have also tried downloading the latest CVS sources but they have the 
same behaviour.

Basically it looks like I am seeing the same behaviour as Chuck.

Colm A

Larry Jones wrote:

> Colm Murphy writes:
> 
>>I think that there is a bug in cvs log (and cvs rlog) in 1.11.1.p1 in 
>>that it returns information on all the files in the module/directory you 
>>specify and not just the ones with the tags you specify.
>>
> 
> That's not a bug -- it's the way it's designed.  The -r and -d options
> only specify which log messages to display, not which files.
> 
> -Larry Jones
> 
> I hate being good. -- Calvin
> 
> 

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



Re: logs of revisions since release

2001-12-07 Thread Colm Murphy

Hi Chuck,

I think that there is a bug in cvs log (and cvs rlog) in 1.11.1.p1 in 
that it returns information on all the files in the module/directory you 
specify and not just the ones with the tags you specify.

This is probably what you are seeing.

Colm A

[EMAIL PROTECTED] wrote:

> 
>>-Original Message-
>>From: larry.jones [mailto:[EMAIL PROTECTED]]
>>Sent: Thursday, December 06, 2001 4:03 PM
>>To: Chuck.Irvine
>>Cc: info-cvs; larry.jones
>>Subject: Re: logs of revisions since release
>>
>>
>>[EMAIL PROTECTED] writes:
>>
>>>For each release, we tag our repository, so say I have tags 
>>>
>>R1 and R2. 
>>
>>>Passing "-rR1:R2" to the log command won't work because 
>>>
>>this will give 
>>
>>>me the log message for the release corresponding to R1. 
>>>
>>>"-rR1::R2" won't work because this doesn't give me a log 
>>>
>>message for 
>>
>>>R2, which I need. 
>>>
>>-rR1::R2 -rR2
>>
>>-Larry Jones
>>
>>Wow, how existential can you get? -- Hobbes
>>
>>
> 
> Thanks for the suggestion but I'm sorry to say that it
> doesn't seem to work. 
> Problems are illustrated below. Lines prefixed 
> with "***" are my comments. Everything else is 
> cvs command execution i/o (keep in mind that my goal is
> to print out revision logs for all new revisions on my
> build branch):
> 
> 
> 
>>touch foobar
>>cvs add foobar
>>
> cvs server: scheduling file `foobar' for addition
> cvs server: use 'cvs commit' to add this file permanently
> 
>>cvs ci -m "first foobar ci" foobar
>>
> RCS file: /cm/cvsroot/scratch/foobar,v
> done
> Checking in foobar;
> /cm/cvsroot/scratch/foobar,v  <--  foobar
> initial revision: 1.1
> done
> *** The following should not produce any revision logs since
> *** there were no revision logs between 1.1 and 1.1. 
> *** However the command invocation gives the log for r1.1.
> 
>>cvs log -r1.1::1.1 -r1.1 foobar
>>
> 
> RCS file: /cm/cvsroot/scratch/foobar,v
> Working file: foobar
> head: 1.1
> branch:
> locks: strict
> access list:
> symbolic names:
> keyword substitution: kv
> total revisions: 1;   selected revisions: 1
> description:
> 
> revision 1.1
> date: 2001/12/06 22:44:36;  author: ccu1258;  state: Exp;
> first foobar ci
> ===
> *** Now create a branch on foobar
> 
>>cvs tag -b br foobar
>>
> T foobar
> *** Check in a new version to the trunk just to see
> *** what the effect is.
> 
>>echo test >> foobar
>>cvs ci -m "second ci to trunk" foobar
>>
> Checking in foobar;
> /cm/cvsroot/scratch/foobar,v  <--  foobar
> new revision: 1.2; previous revision: 1.1
> done
> *** Update to the previously created branch
> 
>>cvs update -r br foobar
>>
> U foobar
> *** Invoke the following to see all revision logs
> *** on branch "br" between r1.1 and r1.1. Keep in
> *** mind that since foobar hasn't changed on the
> *** branch, two subsequent branch tags would 
> *** point to the revision branched on.
> 
>>cvs log -r1.1::1.1 -r1.1 foobar
>>
> 
> RCS file: /cm/cvsroot/scratch/foobar,v
> Working file: foobar
> head: 1.2
> branch:
> locks: strict
> access list:
> symbolic names:
>   br: 1.1.0.2
> keyword substitution: kv
> total revisions: 2;   selected revisions: 1
> description:
> 
> revision 1.1
> date: 2001/12/06 22:44:36;  author: ccu1258;  state: Exp;
> first foobar ci
> 
> *** Again, no revision logs should have been printed, this
> *** time since no revisions have been made on the trunk
> 
> 
> 

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



Watches

2001-12-04 Thread Colm Murphy

Hi folks,

Is there any way to setup a repository so that all files are watched by 
default ?
The cvs watch on command will add watches to all existing files, but not 
  for new files.

Cheers

Colm A

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



Re: Tags question

2001-12-04 Thread Colm Murphy

Hi Mark,

I posted a similar question a while back and was sent the following 
script by one Robert Bresner. It works a treat.

show_tags.pl:

#!/usr/bin/perl -w

my $Flag = 0;
while( <> )
{
  $Flag = 1 and next if( /symbolic names:/ );
  if( $Flag )
  {
 if( ! /^\s+(\S+):/ )
 {
$Flag = 0;
next;
 }
 $Tag{$1} = 1;
  }
}
map{ print "$_\n"; } (sort keys %Tag);

Then:
cvs rlog  | perl show_tags.pl

Note that cvs rlog will only work with cvs 1.11.1.p1.


Mark Lancisi wrote:

> Is there a cvs command or utility that you can run on a given 
> project/module that will give you a list of all the tags present therein?
> 
>  
> 
> thanks in advance!
> 
>  
> 
> markl
> 

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