Post by SimonPost by Pascal BourguignonPost by Simon¿Con que comando se pueden ver en el cvs los ficheros que se
encuentran bloqueados?
Ninguno. cvs no bloquea los ficheros.
Si el usuario tiene permisos para administrar el cvs, puede bloquear y
desbloquear ficheros, para que otro usuario no pueda modificarlos
cvs admin -l [fichero/s]
y
cvs admin -u [fichero/s]
Mi duda es como se yo todos los ficheros que están bloqueados y por
quien.
Ya sé que al intentar una modificación sobre un fichero bloqueado te
lo indica, pero lo que me interesa es un comando que me diga la
situación en que se encuentran todos los ficheros.
No sé. Por un lado, todos los archivos en el repository tienen esto en
la cabeza:
# grep lock *,v
described-2.txt,v:locks; strict;
described-3.txt,v:locks; strict;
described-4.txt,v:locks; strict;
Y por otro lado, cuando hago cvs admin -l o -u, no cambia nada en el
repostory...
cvs admin = cvs rcs, es decir, implementa funciones de rcs. Pero el
man rcs no dice nada tampoco sobre obtener el estado de los archivos.
Con rcs, se veia si un archivo estaba bloqueado en el $Header$, si me
acuerdo correctamente. Podrias probar añadir $Header$ dentro del
archivo, cvs commit, cvs admin -l, cvs update o cvs update -A
cvs status -v no mentiona el bloqueo.
Lo unico que encontré es:
[***@thalassa test1]$ cvs admin -l wang
RCS file: /cvs/test1/wang,v
1.16 locked
done
[***@thalassa test1]$ cvs admin -l wang
RCS file: /cvs/test1/wang,v
done
[***@thalassa test1]$ cvs admin -u wang
RCS file: /cvs/test1/wang,v
1.16 unlocked
done
[***@thalassa test1]$ cvs admin -u wang
RCS file: /cvs/test1/wang,v
No locks are set.
done
RCS file: /cvs/test1/wang,v
Es decir, por saber si un archivo esta bloqueado, falta probar bloquearlo.
Si no dice nada:
RCS file: /cvs/test1/wang,v
done
es que ya esta bloqueado. Si dice:
RCS file: /cvs/test1/wang,v
1.16 locked
done
es que no estaba bloqueado, y ya lo es.
[***@thalassa test1]$ cat bloqueado-p
#!/bin/bash
file="$1"
if cvs admin -l "$file" 2>&1 | grep -q -s locked ; then
echo no bloqueado
cvs admin -u "$file" >/dev/null 2>&1
else
echo bloqueado
fi
[***@thalassa test1]$ ./bloqueado-p wang
no bloqueado
[***@thalassa test1]$ ./bloqueado-p wang
no bloqueado
[***@thalassa test1]$ cvs admin -l wang
RCS file: /cvs/test1/wang,v
1.16 locked
done
[***@thalassa test1]$ ./bloqueado-p wang
bloqueado
[***@thalassa test1]$ ./bloqueado-p wang
bloqueado
[***@thalassa test1]$ cvs admin -u wang
RCS file: /cvs/test1/wang,v
1.16 unlocked
done
[***@thalassa test1]$ ./bloqueado-p wang
no bloqueado
[***@thalassa test1]$ ./bloqueado-p wang
no bloqueado
[***@thalassa test1]$
http://www.devguy.com/fp/cfgmgmt/cvs/ habla de un script perl
findlock.pl para ver los archivos bloqueados.
Parece que hay nuevas opciones a usar en lugar de cvs admin -l / -u:
cvs edit -c
cvs commit -c
--
__Pascal Bourguignon__ http://www.informatimago.com/
To vote Democrat or Republican, it's like changing of cabin in the Titanic.