¿Qué significan los códigos de resultados en SVN?


300

¿Qué significan los códigos de resultados en SVN? Necesito una referencia rapida

Respuestas:


518

Para obtener detalles adicionales, consulte el SVNBook: "Estado de los archivos y directorios de copia de trabajo" .

Los estados comunes:

U : se actualizó el archivo de trabajo

G : los cambios en el repositorio se fusionaron automáticamente en la copia de trabajo

M : copia de trabajo modificada

C : este archivo entra en conflicto con la versión en el repositorio

? : Este archivo no está bajo control de versiones

! : Este archivo está bajo control de versión pero falta o está incompleto

A : Este archivo se agregará al control de versiones (después de la confirmación)

A + : este archivo se moverá (después de confirmar)

D : este archivo se eliminará (después de confirmar)

S : Esto significa que el archivo o directorio se ha cambiado de la ruta del resto de la copia de trabajo (usando el interruptor svn) a una rama

I : ignorado

X : definición externa

~ : Tipo cambiado

R : El artículo ha sido reemplazado en su copia de trabajo. Esto significa que el archivo se programó para su eliminación, y luego se programó un nuevo archivo con el mismo nombre para agregarlo en su lugar.

L : el artículo está bloqueado

E : El artículo existía, como habría sido creado, por una actualización svn.


12
"R": Este archivo fue reemplazado
manifiesto

8
¿Qué hay de E? Toda la documentación dice que es "Existe", lo que no es tan útil.
Aparece el

2
+1, pero "G: los cambios en el repositorio se fusionaron automáticamente en la copia de trabajo" no está en la fuente dada (¿más?)
Julian

86

También tenga en cuenta que un código de resultado en la segunda columna se refiere a las propiedades del archivo. Por ejemplo:

U   filename.1
 U  filename.2  
UU  filename.3

filename.1: el archivo se actualizó
filename.2: una propiedad o propiedades en el archivo (como svn: keywords) se actualizó
filename.3: tanto el archivo como sus propiedades se actualizaron



19

Quiero decir algo sobre el estado "G",

G: los cambios en el repositorio se fusionaron automáticamente en la copia de trabajo

Creo que la definición anterior no es clara, puede generar un poco de confusión, ya que todos los archivos se fusionan automáticamente en la copia de trabajo, la correcta debería ser:

U = elemento (U) actualizado a la versión del repositorio

G = cambios locales del elemento mer (G) ed con repositorio

C = cambios locales del elemento (C) onflicted con repositorio

D = elemento (D) elegido de la copia de trabajo

A = elemento (A) eliminado a la copia de trabajo


Sobre el estado 'G'. Tenía 2 copias de los cambios en 2 directorios desprotegidos diferentes. Confirmé los cambios de un checkout-dir y cuando actualicé el otro checkout-dir mostró el estado 'G' que indica que los cambios en el directorio local se fusionaron con el repositorio.
GuruM

18

También hay un estado 'E'

E = El archivo existía antes de la actualización

Esto puede suceder si ha creado manualmente una carpeta que se habría creado al realizar una actualización.


13

Usualmente uso svn a través de una interfaz gráfica de usuario, ya sea mi IDE o un cliente. Por eso, nunca puedo recordar los códigos cuando tengo que recurrir a la línea de comando.

Esta hoja de trucos me parece de gran ayuda: Hoja de trucos de Subversion


1
No enumera el estado de G.
Ark-kun

13

Columnas de estado SVN

$ svn status
L index.html

La salida del comando se divide en seis columnas, pero eso no es obvio porque a veces las columnas están vacías. Tal vez habría tenido más sentido indicar las columnas vacías con guiones, como lo ls -lhace, en lugar de nada. Entonces, por ejemplo, L index.htmlse vería --L--- index.html, lo que hace obvio que la única información que tenemos es en la tercera columna la que trata sobre el bloqueo. De todos modos, una vez que sabes que comienza a tener más sentido.

SVN Status primera columna: A, D, M, R, C, X, I,?,!, ~

La primera columna indica que se agregó, eliminó o modificó un elemento.

      Sin modificaciones

 A    El artículo está programado para sumar.

 D    El artículo está programado para su eliminación.

 M    El artículo ha sido modificado.

 R    El artículo ha sido reemplazado en su copia de trabajo. Esto significa que el archivo se programó para su eliminación, y luego se programó un nuevo archivo con el mismo nombre para agregarlo en su lugar.

 C    El contenido (a diferencia de las propiedades) del elemento entra en conflicto con las actualizaciones recibidas del repositorio.

 X    El artículo está relacionado con una definición externa.

 I    El elemento se ignora (por ejemplo, con la propiedad svn: ignore).

 ?    El artículo no está bajo control de versiones.

 !    Falta el elemento (por ejemplo, lo movió o lo eliminó sin usar svn). Esto también indica que un directorio está incompleto (se interrumpió un proceso de pago o actualización).

 ~    El artículo está versionado como un tipo de objeto (archivo, directorio, enlace), pero ha sido reemplazado por otro tipo de objeto.

SVN Status segunda columna: M, C

La segunda columna indica el estado de las propiedades de un archivo o directorio.

      Sin modificaciones

 M    Se han modificado las propiedades de este artículo.

 C    Las propiedades de este elemento están en conflicto con las actualizaciones de propiedades recibidas del repositorio.

SVN Status tercera columna: L

La tercera columna se rellena solo si el directorio de copia de trabajo está bloqueado (una limpieza de svn normalmente debería ser suficiente para borrarlo)

      El artículo no está bloqueado.

 L    El artículo está bloqueado.

SVN Status cuarta columna: +

La cuarta columna se rellena solo si el elemento está programado para agregarse con historial.

      No hay historial programado con commit.

 +    Historia programada con commit.

SVN Status quinta columna: S

La quinta columna se rellena solo si la copia de trabajo del elemento se cambia en relación con su padre

      El artículo es hijo de su directorio padre.

 S    El artículo está cambiado.

SVN Status sexta columna: K, O, T, B

La sexta columna se rellena con información de bloqueo.

      Cuando se utiliza –show-updates, el archivo no está bloqueado. Si no se utiliza –show-updates, esto simplemente significa que el archivo no está bloqueado en esta copia de trabajo.

 K    El archivo está bloqueado en esta copia de trabajo.

 O    El archivo está bloqueado por otro usuario o en otra copia de trabajo. Esto solo aparece cuando se utiliza –show-updates.

 T    El archivo fue bloqueado en esta copia de trabajo, pero el bloqueo ha sido robado y no es válido. El archivo está actualmente bloqueado en el repositorio. Esto solo aparece cuando se utiliza –show-updates.-

 B    El archivo se bloqueó en esta copia de trabajo, pero el bloqueo se ha roto y no es válido. El archivo ya no está bloqueado Esto solo aparece cuando se utiliza –show-updates.

SVN Status séptima columna: *

La información desactualizada aparece en la séptima columna (solo si pasa el modificador –show-updates). Esto es algo que las personas que son nuevas en SVN esperan que haga el comando, sin darse cuenta de que solo compara el estado actual del archivo con la información que obtuvo del servidor en la última actualización.

      El elemento en su copia de trabajo está actualizado.

 *    Existe una revisión más reciente del elemento en el servidor.



7

Siempre que no tenga acceso a la documentación ( SVNBook ), escriba (Linux):

svn help status | grep \'\?\'
svn help status | grep \'\!\'
svn help status | grep \'\YOUR_SYMBOL_HERE\'

o inserte la siguiente función en su archivo ~ / .bashrc, así:

svncode() {
  symbol=$1
  [ $symbol ] &&  svn help status | grep \'$(echo $symbol)\' || \
  echo "usage: svncode <symbol>"
}

ingrese la descripción de la imagen aquí


1
En mi opinión, no es "cuando tienes prisa" sino "cuando no tienes acceso a la documentación" (por ejemplo, SVNBook).
bahrep

@bahrep gracias, esa es la forma de verlo. Corregido como se sugiere.
Alan
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.