2012-04-20 27 views
5

Soy un principiante completo de Subversion, pero estoy tratando de superar la sombra aterradora de SourceSafe. Así que estoy aprendiendo, tratando de enseñarme a mí mismo qué es qué, y me he topado con algunos obstáculos que aún no entiendo del todo.Entender el uso de la sucursal con Visual Studio 2010, AnkhSVN y SVN 1.7.4

SVN 1.7.3 está funcionando en una caja Linux local. AnkhSVN está instalado dentro de mi configuración VS 2010. VS/AnkhSVN puede hablar con mi repositorio. Así que comencé a experimentar con algunos proyectos de consola muy simples para comenzar. Creé los directorios de troncales, ramas y etiquetas como se sugiere en la guía que he encontrado hasta ahora.

Creé una nueva solución de consola y permití a Ankh crear ese proyecto en mi repositorio en la carpeta "troncal" recomendada. Después de agregar nada más que una línea "Hello, World" a Program.cs, confirmo los cambios en trunk. Eso funciona ... hasta ahora, tan bueno ...

Ahora estoy queriendo fingir que estoy trabajando en una sucursal privada, entonces selecciono Subversion-> Branch Project ... de "trunk" y el Versión "Head/Latest", marcando "Cambiar a Branch después de la creación". Eso parece ir bien.

problema 1.

Ahora aquí es donde las cosas se ponen feas. Decido agregar un único archivo de origen al proyecto en mi sucursal privada, agregando el archivo, pero no puedo hacer que el archivo se mueva de mi rama privada al enlace troncal. Fusionar/reintegrar no funciona. La actualización no funciona. El interruptor no funciona. Ahora, después de probar un cambio de la rama al tronco, VS me dice que mi archivo de proyecto está dañado y no se puede cargar.

Obviamente, he hecho algo terriblemente malo, pero no sé qué. Parece que solo necesito obtener una copia de trabajo de tronco, luego hacer una fusión, pero ¿cómo hago eso en la configuración de mi carpeta de proyecto VS?

Problema 2

Mi siguiente problema, o pregunta, que puede ser parte del problema 1, es entender cómo los proyectos de Subversion gestionados deben estructurarse en el lado de Visual Studio. Es mucho más claro para mí en el lado de Unix que puedes llevar un proyecto a una carpeta local, pero no está del todo claro cómo se supone que la estructura de directorio típica de un proyecto VS se ve afectada por Subversion. ¿Deben duplicarse también las carpetas de troncales y ramas en el cuadro de Visual Studio local? Si "cambio" de troncal a una rama privada (o viceversa), la intención es que los archivos correspondientes entren en el mismo conjunto de carpetas VS, o debería haber un conjunto correspondiente para las ramas y para el tronco. ?

Problema 3 Esto es más de una pregunta SVN novato, pero cuando SVN me dice que hay conflictos, que todavía no entienden cómo resolverlos. ¿El complemento ankhSVN tiene herramientas especiales para resolver conflictos, o tengo que arreglarlos en el servidor host con la herramienta svn completa? Si es así, ¿cuál es el tipo de conflicto "más típico" que resolver?

+0

Estoy totalmente de acuerdo si acepta la otra respuesta. –

+0

Gracias - se adelantó y aceptó el suyo ya que me dio un poco más de profundidad en su respuesta. Desearía que SO permitiera algo así como una respuesta de "finalista" o un "apoyo" para otras buenas respuestas, pero :) Tener un día bendito. –

Respuesta

2

primero que hay que hacer: leer al menos los dos primeros capítulos de Version Control with Subversion y jugar con los ejemplos. Para hacer esto último, es mejor usar un cliente de línea de comandos, como Slik SVN.

AnkhSVN por sí solo no es suficiente para un cliente SVN; es solo una herramienta práctica para integrar SVN en VS. Entonces, si desea utilizar un cliente GUI (además de un cliente de línea de comandos, que en mi humilde opinión es IMHO), el más popular para Windows es Tortoise SVN.

(activamente) la lectura de Control de versiones con Subversion le ayudará con todas sus preguntas actuales, pero aquí hay algunas ideas iniciales:

Problema 1 quiso comprometer su rama? Usted puede asegurarse mediante la ejecución de svn info [repo_url]/branches/[your_branch]

Problema 2 Parece que hay un malentendido en la parte que: SVN también 'tira' (el término es 'check out') sus archivos localmente. ¡¡¡Leer el libro!!!

En general, su estructura SVN debe reflejar su estructura de carpetas, no al revés. Además, generalmente trabajas solo en una rama a la vez, y solo tienes una rama prestada. Cuando necesitas trabajar en otra rama, haces 'svn switch'. Conserva espacio Ahora, por supuesto, puedes consultar todo tu repositorio desde la raíz del repositorio, pero ¿por qué harías eso? (Puedo pensar en tales situaciones, pero están más preocupados con el mantenimiento del repositorio, que con un flujo de trabajo regular).

Problema 3 Conflictos: no vale la pena hablar hasta que lea el libro.

Espero que esto lo dirija en la dirección correcta. Leer los primeros dos capítulos del libro debería llevarlo de dos horas a dos días.

+0

Gracias por los comentarios y consejos. Las ramas definitivamente se comprometieron. Lo hice antes de intentar reintegrarlos de nuevo al maletero. También me he dado cuenta de que AnhkSVN por sí solo no es lo suficientemente "grande" como para servir como un cliente SVN completo, así que instalé TortoiseSVN y eso ya me ayudó. Saqué una copia nueva de Trunk y reintegrado mi rama desde aquí, y el archivo fuente adicional se agregó de inmediato. También leeré más el libro y obtendré más información. Gracias por la educación! –

+0

> _I instalé TortoiseSVN_ Todavía creo que para aprender SVN correctamente necesita el cliente de la línea de comandos. La curva de aprendizaje es un poco más pronunciada, pero obtendrá una visión más profunda. Luego, utilizará principalmente el cliente de GUI, excepto en algunos casos avanzados. ¡Buena suerte! –

+0

malenkiy_scot, aunque probablemente no tiene mi edad, prefiero una interfaz de línea de comandos para la mayoría de las herramientas por esa misma razón: por lo general, te acerca mucho más a la comprensión de cómo se están ejecutando las cosas bajo el capó. Con la esperanza de hacer más lecturas y experimentar este fin de semana, tal vez parte de la información encuentre algunas grietas en la vieja materia gris :) Gracias por la ayuda. –

2
  1. ¿Agregó y ha confirmado el archivo?

  2. Puede usar el interruptor para guardar la misma carpeta, como se muestra en el ejemplo here o puede tener dos carpetas separadas para su troncal y sucursal. Depende de usted y lo que funciona para su proyecto. Puede ser mejor utilizar el interruptor si su proyecto tiene que estar en una determinada ruta para trabajar, por ejemplo, un servicio web.

  3. Lamentablemente, no tengo Ankh en frente de mí, pero debería poder editar o resolver conflictos con una herramienta integrada en Ankh, pero también podría cambiar la configuración para usar una herramienta de terceros. Documentación here.

+0

Gracias, WhiteKnight. La resolución física de los conflictos se puede hacer en Ankh; mi pregunta era más acerca de por qué Ankh aparentemente no pudo fusionar reintegrar mi rama con el baúl. Como noté en respuesta a la otra respuesta, pensé que quizás esto solo podía ser una limitación de Ankh, así que descargué TortoiseSVN en mi casilla de cliente y pude reintegrarme en el primer intento. Todavía estoy aprendiendo, pero creo que lo que he aprendido hasta ahora es que AnkhSVN por sí solo no es adecuado como un "verdadero" cliente de SVN. –

+0

Históricamente, AnkhSVN no ha podido realizar todas las tareas de Subversion, pero ahora puede realizar la mayoría de las tareas. En general, realizo la mayor parte de mi trabajo a través de TortoiseSVN, pero uso AnkhSVN para proporcionar una visión de lo que está sucediendo en el control de la fuente. – WhiteKnight

Cuestiones relacionadas