2009-11-16 13 views
5

Acaba de comenzar con SVN. Aquí hay un conjunto básico de preguntas que tengo después de leer varios artículos, tutoriales y jugar durante un par de horas.Aprendizaje SVN - Preguntas simples para principiantes

  1. Cuando creo un acuerdo de recompra se supone que debe contener todos mis proyectos o sólo uno? Parece extraño que, después de ejecutar la importación en algunos proyectos, mi recuento de revisiones aumente para cada nuevo proyecto agregado.

  2. Si estoy trabajando solo, ¿son todavía necesarias las etiquetas y las ramas y una buena práctica?

  3. ¿Cómo sabes cuándo es hora de comprometer un proyecto? ¿Especialmente cuando lo escribes desde cero?

  4. Al final de la noche, ¿siempre compromete su trabajo? o lo dejas revisado?

  5. ¿Mantiene una copia exportada de los proyectos en todo momento? ¿Qué sucede si SVN DB borks? ¿Puedes recuperarte de un borking? Si funcionaba bork y solo tenía una copia comprobada, ¿tendría que eliminar todos los directorios .svn? ¿Lo haría igual a una copia exportada? ¿Archiva etiquetas exportadas en otro lugar?

  6. ¿Alguna vez necesito acceder directamente al directorio del repositorio? ¿Sería mejor simplemente ocultar este directorio? (.svn)

  7. ¿Hay una manera más fácil de realizar un pago e importar y luego ingresar la ruta completa del archivo (file: /// Applications/MAMP/SVN /)? ¿Puedo establecer un repositorio una vez que siempre lo usaré?

edición gracias por aclarar todas estas cuestiones. También para las sugerencias sobre Gui's. Lo tengo configurado a través de un compañero de texto que es increíblemente increíble. Todavía tiene que hacer la importación inicial y el pago y envío en el CL ...

Respuesta

2

Esta es mi opinión sobre esto:

Cuando creo un acuerdo de recompra se supone que contener todos mis proyectos o sólo uno? Parece extraño que después de ejecutar la importación en algunos proyectos que mi recuento de revisión esté subiendo para cada nuevo proyecto agregado.

Esto depende completamente de su gusto: hay beneficios de tener varios proyectos en un solo repositorio (por ejemplo, copiar el código de un proyecto a otro), pero si p. quiere dar acceso a otros a un solo proyecto, tener un gran repositorio puede hacer las cosas un poco más complicadas.

En cuanto al número de revisión: no se preocupe. Esos números sólo están hechos para la administración para que pueda combinar fácilmente el código, volver a una versión específica, etc.

Si estoy trabajando por mi cuenta, son las etiquetas y ramas sigue siendo necesaria y buena práctica?

¡Absolutamente! Especialmente si desea liberar su código a otros u otros lugares (en un servidor, por ejemplo). Querrá saber qué versión envió (etiquetado). Y es posible que desee corregir algo en una versión anterior sin preocuparse por los cambios que ya realizó durante el desarrollo posterior (bifurcación).

Además: es posible que desee intentar algo mientras no esté seguro de si desea continuar en esa ruta: crear una bifurcación, experimentar y fusionarla de nuevo en el tronco o eliminar toda la rama.

¿Cómo sabes cuándo es hora de comprometer un proyecto? ¿Especialmente cuando lo escribes desde cero?

Me gusta hacer pequeños compromisos. ¿Creó un proyecto repetitivo? Comprométalo Característica agregada X? Comprométalo ¿Reformó su código FooProcessor? Comprométalo

Al comprometer estos pequeños pasos, me resulta más fácil dar marcha atrás a lo que he hecho. Si soluciono una determinada falla y en un mes me topo con un problema similar, puedo determinar fácilmente qué era parte de la solución y qué no. (Es decir: si está en otra confirmación, no fue parte de la corrección. :)) La única regla que tengo, que es especialmente importante cuando trabajo en un equipo: no cometer código dañado. Puede ser inacabado, pero no debería dañar a nadie que revise el código.

Al final de la noche, ¿siempre compromete su trabajo? o lo dejas revisado?

Intento comprometerme al final del día (por lo que cuando algo le sucede a mi computadora tengo una copia de seguridad, o si me enfermo mis compañeros de trabajo pueden continuar donde lo dejé). Pero solo si he llegado a un punto en el que es seguro comprometerse.

¿Mantiene una copia exportada de los proyectos en todo momento? ¿Qué sucede si SVN DB borks? ¿Puedes recuperarte de un borking? ...

No tengo un checkout de todo el repositorio, tengo copias de seguridad del repositorio. Sin embargo, nunca tuve problemas con el repositorio SVN.

... Si ocurriera bork y solo tuviera una copia desprotegida, ¿tendría que eliminar todos los directorios .svn yo mismo? ¿Lo haría igual a una copia exportada? ...

Depende de lo que usted quiera lograr. Pero eliminar los archivos .svn sería de hecho el mismo que una exportación svn.

... ¿Archiva etiquetas exportadas en otro lugar?

No, realmente no. A menos que quiera llamar al proceso de pago del lanzamiento en el servidor de producción un 'archivo'.

¿Alguna vez necesito acceder directamente al directorio del repositorio? ¿Sería mejor simplemente ocultar este directorio? (.svn)

En un sistema * nix, los .svn directorios ya están ocultas (por eso es que comienzan con un punto). No deberías querer perder el tiempo en esos directorios.

¿Hay una manera más fácil de hacer un pago e importar y luego ingresar la ruta completa del archivo (file: /// Applications/MAMP/SVN /)? ¿Puedo establecer un repositorio una vez que siempre lo usaré?

Como otros ya han mencionado: eche un vistazo a las GUI para Subversion. Personalmente me gusta TortoiseSVN.

4
  1. Depende de usted. Algunas personas consideran que un repositorio es "lo suficientemente grande" para muchos proyectos, algunos consideran que la numeración compartida es molesta y lo convierten en un mapeo 1: 1. Tú decides.
  2. ¡Seguro! Cada vez que realice un lanzamiento, etiquételo para que pueda volver fácilmente a él. Cada vez que desee trabajar en "aislamiento" en algo grande, bórrelo.
  3. Cometa tantas veces como quiera, piense en ello como una copia de seguridad de su trabajo.
  4. Prefiero comprometerme antes de dejar el trabajo para ese día o "sesión" o lo que sea, solo me hace sentir que he logrado algo, lo cual es bueno para la motivación.
  5. Respaldo mi SVN a un disco duro guardado en una bóveda del banco. :) No tan seguido o regularmente como debería, pero estoy trabajando para mejorar esa rutina.
  6. No creo que alguna vez haya accedido directamente, después de configurarlo.
  7. No estoy seguro de eso, utilizo un nombre de dominio de servidor local que es bastante corto (svn.unwind.se).
1
  1. Usted podría tener un acuerdo de recompra para cada proyecto o utilizar una sola cesión temporal para muchos proyectos vinculados; eso depende de ti Tenga en cuenta que el número de revisión es global para el repositorio, por lo que una confirmación en un proyecto aumentaría el recuento de revisiones para todo el repositorio.
  2. Son buenas prácticas si necesita ramificar su proyecto, incluso si trabaja en él solo. No son necesarios si solo tienes la rama principal.
  3. Normalmente nos comprometemos cuando una característica está completa, cuando se realiza una refactorización, etc. p.ej. no nos comprometemos en medio de una edición.
  4. Si trabaja solo, puede comprometerse a menudo para realizar una copia de seguridad de su trabajo. Pero si trabajas en un equipo, debes seguir cometiendo un "código de trabajo", de lo contrario tus colegas pueden obtener algún código que no sea de compilación en la copia de trabajo.
  5. Nuestros repos se respaldan todas las noches junto con otras cosas en el servidor.
  6. Los usuarios no necesitan acceder al directorio de repositorios. Debe ser accesible para los administradores de copia de seguridad, etc.
  7. Hay muchas GUI diferentes para svn. Mira esto: Comparison of Subversion clients.
0

Cuando creo un repositorio ¿se supone que debe contener todos mis proyectos o solo uno? Parece extraño que, después de ejecutar la importación en algunos proyectos, mi recuento de revisiones aumente para cada nuevo proyecto agregado.

Como lo prefieres: el recuento de revisión aumenta con cada registro de entrada, siendo irrelevante qué proyecto estaba en

Si estoy trabajando por mi cuenta, son las etiquetas y ramas sigue siendo una práctica necesaria y buena?

Liberaciones de etiquetas (para que pueda verificar los errores contra cualquier versión que esté usando un reportero, por ejemplo), rama para trabajar en algo más grande: si no funciona como esperaba, siempre puede volver a la rama principal

¿Cómo sabes cuándo es hora de comprometer un proyecto? ¿Especialmente cuando lo escribes desde cero?

Me comprometo desde el principio, justo después de crear el proyecto.

Al final de la noche, ¿siempre compromete su trabajo? o lo dejas revisado?

Me comprometo todas las noches si tengo algo que funciona (o en cualquier caso, no rompe la construcción). No ingrese el código que no compila (incluso si trabaja solo, esta es una buena idea). También me comprometo cada vez que termino cualquier tarea en la que estoy trabajando, antes de comenzar con otra tarea.

1
  1. Es una cuestión de gusto personal. Prefiero el repositorio único, es más fácil mantener usuarios y permisos y hacer una copia de seguridad
  2. Sí, son dos características que pueden ser útiles incluso en una situación de una sola persona.
  3. Cada compromiso debe ser significativo. Por lo tanto, comprométase cuando termine de implementar una característica, o cuando arregle un error, o cuando haga algún trabajo que pueda ser descripto significativamente en el mensaje de registro. Una herramienta de control de versiones no es una herramienta de respaldo.
  4. Vea el punto anterior, no debe comprometerse solo porque se está deteniendo para trabajar y dejar algunos códigos rotos o tareas a medio terminar en el repositorio.
  5. La copia de seguridad siempre es importante, svn le ofrece diferentes maneras de hacerlo, consulte el libro oficial: http://svnbook.red-bean.com/nightly/en/svn.reposadmin.maint.html#svn.reposadmin.maint.backup
  6. Normalmente no es necesario acceder a él después de configurarlo.
  7. Pruebe usar un cliente Svn como TortoiseSvn.