En Subversion, hemos intentado eliminar muchas de las confusiones entre los comandos cvs status y cvs update.
El comando cvs status tiene dos propósitos:
primero, mostrarle al usuario cualquier modificación local en la
copia de trabajo, y segundo, mostrarle al usuario qué ficheros
están desactualizados. Desafortunadamente, debido a la difícil de
leer salida de estado, muchos usuarios de
CVS no se aprovechan del todo de este comando. En cambio, han
desarrollado el habito de ejecutar cvs update
o cvs update -n para ver rápidamente sus
modificaciones. Si los usuarios olvidan usar la opción
-n
, esto tiene el efecto secundario de combinar
cambios del repositorio que no están preparados.
Con Subversion, hemos intentado eliminar este desorden haciendo la salida de svn status fácil de leer para los humanos y los programas de análisis sintácticos. También, svn update solo imprime información sobre los ficheros que están actualizados, no sobre modificaciones locales.
svn status imprime todos los ficheros que tienen modificaciones locales. Por defecto, no se contacta con el repositorio. Mientras este subcomando acepta un número justo de opciones, los siguientes son los usados más comúnmente:
-u
Contacta con el repositorio para determinar, y después mostrar, la información más desactualizada.
-v
Muestra todas las entradas bajo el control de versiones.
-N
Se ejecuta no-recursivamente (no desciende hacia los subdirectorios).
El comando status tiene dos formatos de salida. En el formato “corto” por defecto, las modificaciones locales se parecen a esto:
% svn status M ./foo.c M ./bar/baz.c
Si usted especifica la opción --show-updates
(-u
), un formato de salida más largo es usado:
% svn status -u M 1047 ./foo.c * 1045 ./faces.html * - ./bloo.png M 1050 ./bar/baz.c Status against revision: 1066
En este caso, aparecen dos columnas nuevas. La segunda columna
contiene un asterisco si el fichero o directorio está desactualizado.
La tercera columna muestra el número de revisión del objeto en la
copia de trabajo. En el ejemplo de arriba, el asterisco indica que
faces.html
será parcheado si actualizamos, y
que bloo.png
es un nuevo fichero añadido
en el repositorio. (El - al lado de
bloo.png
significa que todavía no existe en
la copia de trabajo.)
Por último, aquí está un resumen rápido de los códigos de estado más comunes que usted puede ver:
A Resource is scheduled for Addition
D Resource is scheduled for Deletion
M Resource has local modifications
C Resource has conflicts (changes have not been completely merged
between the repository and working copy version)
X Resource is external to this working copy (comes from another
repository. See “svn:externals
”)
? Resource is not under version control
! Resource is missing or incomplete (removed by another tool than
Subversion)
Subversion ha combinado los códigos de CVS P y U en U. Cuando ocurre una fusión o un conflicto, Subversion simplemente imprime G o C, antes que una oración entera sobre esto.
Para una discusión más detallada sobre svn status, vea “svn status”.