info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to remove cvs watches set by other users


From: Shane Turner
Subject: Re: How to remove cvs watches set by other users
Date: Wed, 11 Feb 2009 11:01:49 -0400
User-agent: Thunderbird 2.0.0.19 (Windows/20081209)

Rez wrote:
Hi all
How do I remove cvs watches set by other users who are no longer with our company? Is there any way to do this? Thanks Rez

Here's how I remove cvs watches from my repository (cvs 1.11.22). There
may of course be bugs. It requires filesystem access to the repository.
In general it looks for all of the fileattr files with watches or edits
for the OLDUSER, saves the list, and backs them all up. Then you feed
the list to xargs and and perl to re-write all of the fileattr files
without the entries for the OLDUSER. WARNING: It does not lock the
directories! This hasn't been an issue for me, but there could be
weirdness if someone runs a command that would edit the same fileattr
files you are modifying.

export CVSROOT=<PATH_TO_YOUR_CVSROOT>
export OLDUSER=/USERNAME/
find $CVSROOT -type f -name fileattr -print0 | xargs --null grep -lZ "\<$OLDUSER\>>" | tee /tmp/fileattr_list.txt |
 tar --null -T - -zcf /tmp/fileattr_backup.tar.gz
cat /tmp/fileattr_list.txt | xargs --null perl -wpi -e '
BEGIN {
 use Getopt::Std;

 our ($opt_u);

 getopts("u:");

 die "Username not set (-u)" unless $opt_u;

 $username=$opt_u;
}

s/([,=])($username>[^,;]*?)(?=[,;]|$)/$1/go; # Clean up entries for the username that are within or ending the line s/,,/,/g; # Clean up entries with double commas s/(?==),//g; # Clean up entries that start with a comma s/,(?=;_\w*=)//g; # Clean up entries that end with a comma s/,$//; # Clean up commas at the end of a line
' -- -u $OLDUSER

I hope the commands are of some use to you.


Shane Turner




reply via email to

[Prev in Thread] Current Thread [Next in Thread]