tutorial - svn tortoise
Subversion: ¿Cuáles son las diferencias entre el checkout de SVN y los comandos de actualización de SVN? (6)
Entiendo que el comando "SVN checkout" hará la obtención inicial de los archivos desde el repositorio de Subversion y los traerá localmente a su directorio / copia de trabajo y que el comando "SVN update" obtendrá cambios en los archivos de el repositorio si los cambios han sido hechos por otros.
Sin embargo, me parece que una "actualización" es solo un caso especial de "pago y envío", es decir, cuando se realiza un pago, se obtienen todos los archivos ya que ninguno existe aún localmente y, por lo tanto, TODOS los archivos han "cambiado" y que detrás de escena estos comandos están haciendo casi lo mismo. ¿Supongo que los comandos existen por separado como un medio de simplificación?
O, ¿hay otras diferencias entre los comandos, por ejemplo, hace "actualización SVN" obtener archivos nuevos (archivos que existen en el repositorio que no tiene en su copia de trabajo) o simplemente actualizaciones de archivos existentes?
Durante el uso del SVN, la diferencia significativa entre el pago y la actualización es que: solo puede utilizar el comando de pago una vez para establecer la relación entre un directorio local y el repositorio (bajo control de versión) y para copiar todos los archivos del depósito raíz a un directorio de trabajo local. Después de eso, usar el pago y envío para actualizar las copias en el directorio local generará errores de la siguiente manera:
svn: E175002: no se puede conectar a un repositorio en la URL ''https: // ********''.
svn: E175002: La solicitud OPTIONS devolvió XML no válido en la respuesta: ****. "
La única forma de actualizar las versiones actuales en el directorio local es usar el comando svn update .
La actualización actualizará su versión desprotegida a la última versión (o una otra revisión específica) en el repositorio. Si ha realizado cambios en su copia de trabajo, seguirán allí después de la actualización. Si los archivos se han agregado o eliminado al repositorio, eso se reflejará en su copia de trabajo. Si hay cambios tanto en su copia local como en el repositorio SVN intentará fusionar todos los cambios por usted, si eso no funciona, marcará un conflicto que resuelva manualmente.
Subversion usa directorios ocultos de metadatos para habilitar la funcionalidad que proporciona. Estos directorios .svn son los que hacen que un directorio se convierta en una copia de trabajo de Subversion, sin estos, es solo un directorio y Subversion no puede hacer mucho con él.
ACTUALIZAR es una operación que se realiza sobre una copia de trabajo de Subversion; sin directorios .svn, sin ACTUALIZAR. CHECKOUT es la operación que crea una copia de trabajo.
svn checkout
copia todos los archivos versionados del directorio dado en el repositorio en la revisión dada (HEAD por defecto) y los copia a su máquina local. También genera todos los directorios .svn ocultos y los metadatos dentro de ellos, que hacen que estos archivos sean una copia de trabajo.
svn export
copia todos los archivos versionados del directorio dado en el repositorio en la revisión dada (HEAD por defecto), y los copia a su máquina local, pero produce una jerarquía de directorio estándar. (No produce una copia de trabajo que se puede actualizar o verificar de nuevo).
svn update
aplica cambios a una copia de trabajo existente . Si, al hacerlo, se descubre un conflicto, el usuario recibe una alerta y debe resolverlo antes de poder realizar cualquier cambio. Cuando se usa svn commit
, es un requisito que la copia de trabajo que se va a confirmar esté actualizada (es decir, la misma revisión que HEAD).
svn update
solo trae la diferencia en los archivos de la versión del usuario a la última versión disponible. Si no hay diferencia, no hay acciones.
Pero checkout crea una nueva carpeta y trae todos los archivos para esa rama. Checkout es una buena forma de trabajar si cambiamos constantemente las sucursales en las que trabajamos. La actualización es cuando tenemos un tronco y necesitamos que otros realicen las actualizaciones en ese tronco.
Tal como lo veo, la gran diferencia es que checkout
crea una copia de trabajo, mientras que la update
reduce los cambios a una copia de trabajo existente .