Pregunta

Tenemos algunos desarrolladores trabajando en la misma solución VS2005, pero nuestro control de origen es muy malo. (Nuestra empresa utiliza Harvest, que emitimos un voto de no confianza).

En este momento, todos estamos trabajando con los archivos en una unidad LAN compartida. Obviamente, esto causa algunos problemas. Pero creemos que es mejor que trabajar localmente, y rastrear los archivos que tocamos en una hoja de cálculo y fusionar todo manualmente. ¿Alguien tiene una estrategia para fusionar nuestros cambios?

Algunos de los problemas existen debido a la burocracia corporativa (como el mandato de Harvest). Esas mismas políticas impiden la introducción de nuevas herramientas en nuestro entorno. Por lo tanto, las estrategias que evitan la compra / descarga de software nuevo funcionarán mejor para nosotros.

¿Fue útil?

Solución

Trate el recurso compartido como si fuera su sistema de control de fuente. Haga que la compartición sea de solo lectura, lo que obligará a los desarrolladores a obtener copias locales para realizar cambios. Entonces tienes una versión algo estable para comparar. Esto ayudaría a facilitar la posibilidad de hacer " fusiones " ;. " Comprobando " el código debería consistir en algún tipo de estrategia de copia de seguridad para el archivo (posiblemente hacer una copia del archivo con una marca de tiempo y un nombre de usuario como parte del nuevo nombre del archivo) y reemplazar el original con la nueva versión.

Dicho esto, realizar este tipo de actividad sin un sistema de control de fuente real que sea confiable será difícil y propenso a errores.

Otros consejos

Aprende a usar la cosecha. Se necesita un poco de esfuerzo para que todo funcione sin problemas, pero en general es un excelente sistema de control de fuente.

Otra posibilidad sería Más allá de la comparación con Scooter . Tiene una combinación de dos y tres vías y una gran funcionalidad de diferencias en archivos y directorios. Si quiere saber un poco más sobre esto, escuche the delphi podcast por Jim McKeith .

Pero como la mayoría de los otros, recomendaría usar Git o aprender a cosechar. Si el sistema de control de origen permite cambiar su aplicación de diferencias, Beyond Compare sería un excelente reemplazo.

Obtenga git e instálelo localmente en la máquina de todos los desarrolladores. Luego configura los repositorios para replicar.

Hay dos problemas distintos: el control de versiones y la fusión. No hay absolutamente ninguna excusa para NO usar un sistema de control de versiones. Si la compañía ha decidido una solución (por cualquier razón), entonces úsela. No me gusta o no " tener confianza " No es una razón válida para no usarlo. Y el uso de una unidad compartida para imitar un sistema de control de código fuente es una locura.

La fusión es un segundo problema. Simplemente necesitas una herramienta de diferencia / fusión. Elegir uno. ¿Cómo has pasado tanto tiempo sin uno?

Araxis es una gran. Cuesta unos cuantos dólares. La gente de SourceGear ha estado distribuyendo libremente su herramienta de diferencia / fusión durante algún tiempo (la que viene con Vault). También es un contendiente sólido. Esos son dos que he usado y que sé que todavía están en el mercado. Hay otros que algunos ya han mencionado.

La fusión de todo a mano no es una solución sostenible. Combinar eso con no usar un VCS es una receta para el desastre.

Probablemente tendrás que descargar algo a menos que quieras hacerlo a mano. Recomiendo mucho Winmerge . Es gratis, de código abierto, y probablemente sea mejor para ti una pequeña descarga que no arruine las cosas.

Existe una herramienta estándar de línea de comandos de Unix llamada combinación que fusionará de manera bastante inteligente dos conjuntos de cambios en un archivo. La sintaxis es:

merge mine older yours

Donde " mío " es el archivo con sus cambios, " antiguo " es el archivo original, y " tuyo " contiene los cambios de otra persona.

No estoy seguro si tienes un cuadro UNIX (o Mac OS X) por ahí para hacer esto.

Puede que esta no sea una opción viable, pero quizás podría usar un sistema distribuido como bazaar , < a href = "http://git.or.cz/" rel = "nofollow noreferrer"> git , o Mercurial .

La razón por la que sugiero estos es que tienen una sobrecarga muy baja y se pueden usar con otros sistemas. Sé que con bazar el repositorio es simplemente una carpeta oculta agregada al directorio.

Trabajar fuera de un disco compartido no es una buena idea y obtiene mi voto de "no confianza".

Sería demasiado fácil sobrescribir los cambios de otros, no tiene un seguimiento de cambios, no hay forma de ramificar o etiquetar / etiquetar, etc.

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