2009-08-25 9 views
6

Trabajando en tres computadoras diferentes en dos ubicaciones diferentes, en proyectos que están en subversión, de vez en cuando me olvido de registrar cosas en una ubicación, por lo que no puedo trabajar en el código más reciente, cuando quiero continuar trabajando en el proyecto en otra ubicación.Subversión: ¿Cómo evitas olvidarte de revisar cosas?

Estoy seguro de que otros han tenido problemas similares.

¿Qué puedo hacer para evitar este problema? Herramientas que ayudan? Notificaciones que puedo configurar?

Uso Visual Studio 2008 y TortoiseSVN en PC con Windows 7.

+0

He aprendido que tener un portátil lo suficientemente potente como para hacer que la programación en él sea divertida hace que todos estos problemas se vuelvan obsoletos. No estoy seguro de aceptar una oferta de trabajo donde esto no sería parte del trato. ':)' – sbi

+0

Mi plataforma de desarrollo principal tiene 3 monitores, y aumenta mi productividad inmensamente. Después de hacer eso, depender de una computadora portátil para el desarrollo simplemente parece volver a entrar en un Kia después de conducir un Ferrari. – Kjensen

Respuesta

7

utilizar una herramienta como VisualSVN para mostrar qué archivos son modificados en el Explorador de soluciones, para que no se olvide de cometerlos:

VisualSVN status icons in Solution Explorer

+6

Uso AnkhSVN http://ankhsvn.open.collab.net/ con el mismo propósito. –

+0

También uso AnkhSVN, pero sí, las extensiones de VS como estas hacen un buen trabajo al ondear una bandera en la cara de que las cosas deben ser confirmadas. –

5

No tengo varita mágica para ofrecer, solo el mantra "comprométase temprano, comprométase a menudo"; además de evitar tales accidentes, o al menos minimizar su impacto cuando ocurren, eso ofrece otras ventajas también (retroceso más fino si un conjunto de cambios necesita reversión, por ejemplo). Eso puede requerir una ramificación si se considera que el tronco siempre contiene un "código dorado", por lo que no se desea cometer conjuntos de cambios medio horneados (y svn no hace exactamente ramificaciones y fusionamientos sin dolor, suspiro) - de hecho esto (entre las otras ventajas de los VCS distribuidos) es una de las razones por las que he comenzado a cambiar de subversión a mercurial (aka hg) en proyectos de código abierto y/o personales en los que tomo las decisiones al respecto. -)

+2

Hágase un hábito. Debe comprometerse varias veces al día, no solo una vez al final del día. Una vez que comiences a hacer eso, no será difícil acordarte de hacerlo al final del día. –

+0

Incluso presionar "commit" en cada compilación no garantiza que no hayas olvidado agregar algún archivo o icono de recursos en un subdirectorio. Es el pago lo que prueba el repostiory. –

+1

@mgb: ahí es donde un servidor de integración continua puede ayudar. Activado en cualquier registro, una construcción exitosa significa que (probablemente) no se olvidó de nada. –

6

A La solución simple es hacer clic derecho en el nivel superior del proyecto y luego hacer clic en "confirmar". Tortoise te muestra todo el proyecto, incluidos los archivos "sin versión".

Esto requiere un poco de disciplina cuando configura su árbol de fuentes. Por ejemplo, si mezcla archivos de salida binarios con código fuente, lo hace más difícil. También asegúrese de no tener ningún directorio ignorado que contenga código fuente.

+0

-1 para una respuesta de tortoiseSVN a una pregunta de svn general. –

+3

¿Qué le parece leer la pregunta antes de votar? "Utilizo Visual Studio 2008 y TortoiseSVN en PC con Windows 7". Dios. – BenB

6

Daily compilaciones.
Un archivo de proceso por lotes (o equivalente) que ingresa en un nuevo directorio y realiza una compilación (y en un mundo ideal ejecuta pruebas unitarias); si no se compila, se olvidó de algo.

+0

Una herramienta como CruiseControl.net (http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET) puede ayudar a automatizar esta tarea al intentar una compilación automáticamente cada vez que se realiza una confirmación. –

+2

Utilizamos SVN con CruiseControl con mucho éxito. Todavía no obliga a los desarrolladores a verificar su trabajo a menos que se suponga que controlen una dependencia de otra cosa que realmente se haya registrado, pero proporciona una visibilidad constante del estado del proyecto. –

2

de control remoto otras máquinas (tal vez a través de VPN) para que pueda obtener el código en los directorios de trabajo remotos, incluso si olvida registrarlo.

y/o copia de seguridad automática de sus directorios de trabajo.

+0

Esto es lo que hago. Si descubro que me olvidé de registrarme, me limito a SSH en la máquina y me comprometo de esa manera. –

0

Uso git-prompt.sh para realizar un seguimiento del estado de los archivos y las sucursales. Parece que también funciona con SVN.

1

Cron trabajo para llorar a usted todas las noches?

+1

Ya lo tengo cubierto, se llama novia. – Kjensen

+1

¡Whoa! ¿Dónde encontraste una novia que se integre con tu control de fuente? – Eevee

+1

¡En mi baúl! Oh sí, fui allí. – Kjensen

1

Lo que hago con Tortoise es tener siempre abierta una de sus ventanas "Comprobar modificaciones" y presionar regularmente su botón de Actualizar. Hubiera sido una muy mala prisa lo que me haría cerrar sin antes verificar todas las ventanas abiertas/aplicaciones de datos no guardados.

Esto también es bueno para olvidarse de agregar cosas, por cierto, ya que puede configurar esa ventana para mostrar todas las cosas no ignoradas no agregadas, también.

2

Oblígate a entrar en una rutina.

First thing in the office - do an update. 
Last thing in the office - do a commit (if required).

Por supuesto, debe actualizar/comprometerse durante el día (el momento de facturar por ejemplo), pero al mínimo indispensable hacer lo anterior.

2

Por olvidarse de registrarme, de ser posible cerraría sesión mediante un script que primero te molestará si hay trabajos que aún no se han registrado. O mediante un ícono que se hace clic desde la carpeta de proyectos, TortoiseSVN le mostrará el signo de exclamación rojo.

Para olvidarse de añadir nuevos archivos a un registro de entrada, utilizo este archivo por lotes:

svn st 
svn ci -m %1 --username "russell.wallace" 

Así que tan pronto como se realice un commit que los nuevos archivos que falta, estoy notificado del hecho y puede realizar un seguimiento inmediato con otra confirmación que los agregue.

Cuestiones relacionadas