subversion - ¿Es posible sobrescribir(forzar) siempre los cambios locales al actualizar desde SVN? Ignorar conflictos?
svn checkout (5)
La respuesta de Tato es absolutamente correcta y por favor, tenga en cuenta su precaución. Perderá TODOS sus cambios. Solo una aclaración sobre la sintaxis y algunos matices
svn revert no es recursivo por defecto y necesita una ruta para trabajar. Hacer es recursivo agregar "-R". Si está en el directorio actual, use "./" para la "ruta" a continuación o use una ruta absoluta como "/ ruta_ a su_carpeta"
svn revert -R <path>
svn update es recursivo. Si estás en el directorio, no necesitas una ruta en absoluto
svn update
Sé que debería estar trabajando en una rama propia, pero un par de nosotros estamos en la misma rama de un proyecto. Uno de los Dev hizo una confirmación y solo quería actualizar mi copia local con la última versión de SVN. Ejecutando ''svn update'' obtengo esta salida:
Restored ''index.html''
U somescript.php
Conflict discovered in file.xml''.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options:
¿Existe una opción / forma de sobrescribir mis cambios locales y obtener los últimos archivos de subversión e ignorar todos los conflictos?
Miré algunas de las otras publicaciones en Stack y todas no respondieron la pregunta. Dicen que se elimine el proyecto y se finalice el proceso de compra, lo que supongo que si es la mejor manera, que así sea ... Pero quiero más detalles sobre por qué no puedo forzar una actualización. Gracias
EDITAR:
Así que seleccioné s ''mostrar todas las opciones'':
(s) muestra todas las opciones: s
(e) edit - change merged file in an editor
(df) diff-full - show all changes made to merged file
(r) resolved - accept merged version of file
(dc) display-conflict - show all conflicts (ignoring merged version)
(mc) mine-conflict - accept my version for all conflicts (same)
(tc) theirs-conflict - accept their version for all conflicts (same)
(mf) mine-full - accept my version of entire file (even non-conflicts)
(tf) theirs-full - accept their version of entire file (same)
(p) postpone - mark the conflict to be resolved later
(l) launch - launch external tool to resolve conflict
(s) show all - show this list
Supongo que debería ir con la opción ''tc''?
Lo siento, me doy cuenta de que esta es una publicación bastante antigua, pero en lugar de dos operaciones, haría esto:
svn up --accept tf
Dicho esto, "svn revertir -R" y luego "svn up" en la raíz de tu copia de trabajo también harían el truco. En mi caso, tengo varios WC para varios proyectos, así que ejecuto un script de shell que los actualiza cuando inicio mi computadora. No uso accept, más bien uso "--accept p" para posponer la resolución ya que es un proceso automatizado, luego fusiono cualquier conflicto que SVN no pueda fusionar automáticamente (usualmente, esto implica revertir, pero depende )
Respondiendo tu primera pregunta. No Pero puede anular sus archivos locales ejecutando los siguientes comandos desde la raíz de su proyecto:
svn revert -R .
svn update
Esto funcionó en mi mac con svn 1.7.19 y ubuntu con svn 1.8.8
Si realmente quiere una copia de HEAD (la última revisión en repositorios), entonces debería
svn revert -R <path> // discard all your changes inside path (recursive)
svn update // get latest revision of all files (recursive)
Eso es.
Tenga en cuenta que perderá TODOS sus cambios desde su último ''commit''.
EDITAR: agregó la -R <path>
de la respuesta Isu_guy para completar y ayudar a los lectores a encontrar una sola respuesta completa
Usando svn 1.6.11 (como se envía por CentOS 6.4) el comando de Carnix debe verse como
svn up --accept theirs-full
(No puedo agregar un comentario ya que no tengo suficiente reputación)