Pregunta

Estoy empezando a usar " Subversion " con " cliente SVN de la tortuga " para uno de mis proyectos de código abierto que está alojado en " Google Code " ;. Me gustaría obtener algunas de las mejores prácticas sobre su uso. Estoy siguiendo la estructura de carpetas predeterminada (tronco, rama, etiqueta). Las siguientes son las preguntas

  1. ¿Cuándo harás el registro inicial? ¿Solo después de haber terminado un conjunto de características o desde el primer día de desarrollo?
  2. ¿A qué directorio va el registro inicial? ¿Está en " tronco " o ingresas a " sucursal " y fusionar a " tronco " una vez que una característica está completa. En este caso " tronco " estará vacío hasta que se complete la función.
  3. Cuando se realicen cambios, ingresará a " tronco " ¿directamente? Si no, su copia de trabajo siempre utilizará " rama " directorio, ¿verdad?

Cualquier ayuda sería apreciada.

¿Fue útil?

Solución

  1. Le recomiendo que revise sus archivos antes de comenzar a hacer modificaciones pesadas ( check in early, check in a menudo ).

  2. Depende, a algunas personas les gusta tener el tronco estable , trabajar en las ramas y luego fusionar las ramas con el tronco cuando las funciones están listas, pero también puede comprometerse directamente con el tronco.

  3. También depende de cómo trabajará y qué le gustaría tener en el baúl (la última versión estable o la última versión de vanguardia).

Otros consejos

Sugiero que se registre temprano y con frecuencia.

Hay muchas formas de hacerlo, pero la más común con la que he trabajado es trabajar en una rama de desarrollo y fusionarla con el troncal cuando llegas a un punto estable (versiones menores, hitos, etc.).

Si aún no lo has hecho, echa un vistazo a libro rojo , es un gran recurso para información svn.

Al crear un nuevo proyecto desde cero, generalmente lo hago en un área de usuario en SVN como

/svn/users/me/project1

esto se debe a que la mayoría de los proyectos comienzan como prototipos desechables y rara vez utilizo sucursales para estos. Una vez que un proyecto se convierte en oficial y se acerca al primer " prototipo " lanzamiento lo migraré a su propio repositorio

/svn/project1/trunk

El uso de sucursales requiere un poco de trabajo adicional, por lo que no las usamos a menos que sean necesarias. Es cuando varias personas están trabajando en el mismo proyecto y las colisiones son frecuentes o estoy trabajando en una función que podría decidir revertir y desechar. Si lo hago en una rama, simplemente puedo elegir no fusionar y simplemente borrarlo.

Todas las respuestas sugieren que se registre temprano, se registre a menudo, no podría estar más de acuerdo. Así que eso es todo lo que diré sobre eso. Sin embargo, leí el resumen como: ¿Qué tipo de usos puede encajar Subversion? Así que aquí hay una respuesta para eso.

He leído sobre compañías que usan Subversion como su repositorio de aplicaciones. Entonces, le dicen al servidor que quieren instalar la versión X de la aplicación Y. Luego, el servidor ejecuta una actualización en el servidor SVN. Y también almacenaron archivos de configuración allí también. Y todos los cambios realizados en la configuración (a través de una interfaz web separada para clientes finales) se confirmaron en el repositorio de configuración de SVN. Esto es brillante. "Claro que estos tipos estaban usando MS Power Shell en Win2k3, pero aún así la técnica se puede aplicar en cualquier otro lugar.

Compruebe INMEDIATAMENTE, no antes. Incluso si no tienes nada más que cometer que un archivo de texto ad-hoc que contenga tormentas de ideas y algún código psuedo horriblemente críptico, coméntalo.

Yo (como muchos) encuentro proyectos como el tuyo mientras realizas algún tipo de búsqueda de código o buscas un programa que hace lo que quiero. Leeré su página principal y luego navegaré inmediatamente por su troncal SVN para ver qué está haciendo.

Si no tienes código cero en el troncal, es probable que me olvide de ti. Si tiene al menos algún archivo que explique el diseño previsto y algún código psuedo, es probable que comience a enviarle parches que muestren mis ideas.

Un proyecto con un repositorio vacío grita " itch que nunca se rayará " .. así que empuja algo tan pronto como puedas.

Después de eso, cometer a menudo. Me gusta hacer muchos compromisos pequeños y ordenados, por lo que es fácil hacer un seguimiento de las regresiones y revertir / corregir las revisiones tóxicas.

  1. Regístrese una vez que haya creado su espacio en blanco estructura de proyecto / solución de línea de base. En blanco porque en este estado es en realidad compilable aunque no sea un código de trabajo. El principio es mantener todo el proyecto, al menos, en un estado compilable durante el desarrollo, ya que el equipo realiza cambios pequeños de forma incremental y regular, de modo que la compilación apenas se rompa.

  2. No hay ninguna ley que exija que el registro inicial se realice en el Tronco o una Sucursal. Puede iniciar el Troncal con el proyecto vacío para que esté estable desde el principio, luego bifurcarse para llevar a cabo el desarrollo y fusionarlo con el Tronco una vez que esté completo. También puede optar por registrar el proyecto vacío en una Rama y desarrollar la primera función de trabajo o base antes de fusionar algo sustancial en el Tronco. De cualquier manera, según el punto # 1, el Tronco debe ser estable y de alta calidad . Solo fusione contenido de alta calidad en el Troncal.

  3. De nuevo, no hay un mandato estricto sobre este tipo de prácticas. Algunos equipos ramifican todo , incluso una simple refactorización de cambios de nombre de variable. Algunos equipos ni siquiera saben ramificar / fusionar y desarrollar todo en una sola rama (el Tronco). Cada equipo tiene su propio nivel de equilibrio en este tema. Mi guía personal es si va a haber nuevas funciones o correcciones de errores importantes o un nuevo diseño, búscalo para probar. Si se trata de una corrección menor como errores de ortografía de la cadena o mostrar cuatro lugares decimales en lugar de dos en la página web, corregir la copia del tronco debería ser suficiente. Por supuesto, las interpretaciones de " major " frente a " menor " van a diferir por lo que los líderes de desarrollo / equipo deben establecer sus estándares. De cualquier manera, debe haber pruebas de unidad / integración que acompañen a los cambios para verificar que la Sucursal o el Tronco funcionan correctamente, sin defectos y sin defectos. La palabra clave que se debe recordar siempre es " código probado de alta calidad " ;.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top