2010-10-25 15 views
66

Por favor alguien puede explicar la diferencia entre las dos opciones siguientes de la tortuga de SVN en archivos en conflicto:Tortoise SVN: Resuelva el conflicto utilizando 'theirs'. Qué significa eso?

  • Resolver los conflictos utilizando 'ellos'.
  • Resuelva el conflicto utilizando 'mío'.

En una nota lateral. ¿Por qué nadie ha denunciado este uso confuso de la terminología como un error?

+9

En mi humilde opinión, esta es la terminología más intuitiva en todo el desorden de fusión de SVM. –

+7

Sin ofender, pero no he encontrado esto confuso en absoluto. – Bernard

+3

La confusión es probablemente por no entender el contexto de "suyo" y "mío" –

Respuesta

51

Resolver el conflicto utilizando 'theirs' significa que cuando intentas registrar dos archivos que tienen cambios conflictivos, SVN descartará los cambios y utilizará las otras personas.

Resolver el conflicto utilizando 'mío' significa que descartará sus cambios y, en su lugar, usará su versión del archivo.

+4

Salida de la imagen que explica mucho acerca de esto: http://tortoisesvn.net/docs/release/TortoiseMerge_en/tmerge-basics-conflicts.html – Stefan

+2

Esta respuesta no aborda la ambigüedad en torno suyo frente a la mía en absoluto. Me acaban de pedir que combine los cambios de una sucursal en la que estuve trabajando en una sucursal en la que alguien más ha estado trabajando. En este caso, los cambios que considero "míos" son los de mi sucursal. Sin embargo, si acepto 'mis' cambios, en realidad estaré descartando cambios de mi sucursal. –

+0

No veo "Resolver el conflicto usando' mío' "en ninguna parte del menú. ¿No hay forma de garantizar que mis cambios se fusionen con sus cambios? – SearchForKnowledge

37

Quiero añadir la lista entera para su posterior referance

(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 
29

estoy de acuerdo.

Me parece que sería más claro si se dijo:

  • Resolver usando repositorio (el suyo)
  • Resolver usando copia de trabajo (el mío)
+3

En mi opinión las mejores respuestas como los conflictos pueden ocurrir sin una segunda persona que está siendo involucrado (por ejemplo, cuando se utiliza el flujo de git con múltiples ramas). – Christoph

+0

¿Qué significa "marcar como resuelto"? ¿Utiliza el mío o el de ellos? –

+0

Simplemente elimina la bandera de conflicto y usa el estado actual del archivo fusionado. Normalmente, vería los conflictos y corregiría cualquier problema, y ​​luego lo marcaría como resuelto. Las dos opciones que se analizan en esta pregunta son las opciones de acceso directo para resolver conflictos usando solo su versión o la versión en el repositorio. Al hacer esto, automáticamente se establece como resuelto, mientras que cuando se corrige manualmente un conflicto, se debe "marcar como resuelto". – james2code

5

BuzzAnn es correcta. mina vs theirs es ambigua, ya que lo que está en el repositorio también podría ser mío. La distinción inequívoca es repositorio versus copia local.

4

La fusión de línea de comandos de SVN es confusa, especialmente al fusionar una rama de nuevo en la línea troncal. "Mis cambios" son los que hice en la rama, pero que estaría mal según SVN. Para complicar las cosas, SVN se refiere a las rutas como SOURCE, TARGET y HEAD en la línea de comandos help.

Aquí es el respuesta simple, si se ejecuta esta sentencia de combinación desde el directorio C: \ Project1 \ tronco

svn merge -r 60:68 C:\Project1\branches\UpdatesToProject1 

"Mine" es el directorio que SVN se ejecuta desde (C: \ Project1 \ Trunk).

"suyo" es el directorio que está fusionando y ha especificado en la línea de comandos (C: \ Project1 \ ramas \ UpdatesToProject1)

Sería muy, muy agradable si SVN dio los caminos que MINE y ELLOS se refieren a.

Cuestiones relacionadas