Cambios en el código de fusión sin control de fuente verdadero

Tenemos algunos desarrolladores trabajando en la misma solución VS2005, pero nuestro control de fuente es muy malo. (Nuestra empresa utiliza Harvest, a la que damos un voto de desconfianza).

En este momento, todos solo estamos trabajando con los archivos en una unidad de 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 de forma manual. ¿Alguien tiene una estrategia para fusionar nuestros cambios?

Algunos de los problemas existen debido a la beaurocracia corporativa (como exigir Harvest). Esas mismas políticas impiden la introducción de nuevas herramientas en nuestro entorno. Entonces, las estrategias que eviten comprar/descargar nuevo software funcionarían mejor para nosotros.

5
Para la discusión de Harvest, consulte
agregado el autor Kristopher Johnson, fuente

9 Respuestas

Otra posibilidad sería Beyond Compare from Scooter . Tiene fusión de dos y tres vías y gran funcionalidad de diferencia en archivos y directorios. Si quiere saber un poco más al respecto, escuche the delphi podcast por Jim McKeith .

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

6
agregado

Aprende a usar Harvest. Se necesita un poco de esfuerzo para que las cosas funcionen sin problemas, pero en general es un excelente sistema de control de fuente.

6
agregado
No entiendo cómo alguien podría llamar a Harvest "excelente", pero si es la mejor herramienta que tiene, entonces es la mejor herramienta que tiene.
agregado el autor Kristopher Johnson, fuente
Tengo que cambiar a una escala logarítmica para poder comparar mi nivel de blasfemia entre Harvest y otras herramientas.
agregado el autor Lieven Keersmaekers, fuente
Estoy de acuerdo con eso. Un mal sistema de control de fuente es mejor que ningún control de fuente en absoluto.
agregado el autor Kena, fuente
Sí, miramos todos los paquetes principales: Serena, ClearCase, Team Foundation y muchos paquetes más pequeños. En términos de usabilidad general, Harvest fue tan bueno o mejor que todo lo demás que miramos. Parece que muchos de los paquetes que miramos se veían realmente bien a primera vista, pero una vez que realmente funcionó en un entorno de producción, cayeron en picado. Harvest, aunque tiene sus propios problemas, en realidad funciona.
agregado el autor user8035, fuente

Trate el recurso compartido como si fuera su sistema de control de origen. Haga que el recurso compartido sea de solo lectura, lo que obligará a los desarrolladores a obtener copias locales para realizar cambios. Luego tienes una versión algo estable para comparar. Esto ayudaría a facilitar el poder hacer "fusiones". El código de "Comprobación" debería consistir en algún tipo de estrategia de respaldo para el archivo (posiblemente haciendo una copia del archivo con una marca de tiempo y nombre de usuario como parte del nuevo nombre de 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 va a ser difícil y propenso a errores.

5
agregado

Obtenga git e instálelo localmente en la máquina de cada desarrollador. Luego configure los repositorios para replicar.

4
agregado
Si git no está instalado en el servidor y solo en cada máquina de desarrollo, ¿cómo lo sabrán? no es como si necesitaras los derechos de administrador para que funcione
agregado el autor Orion Edwards, fuente
Instálalo en unidades de memoria USB y ponlas en tu bolsillo cada vez que aparezca el jefe.
agregado el autor BCS, fuente
¿Su burocracia corporativa permite que los empleados renuncien, o es alguna forma de sirviente contratado? Si no pueden controlar correctamente el código fuente, ¿cuáles son las probabilidades de que respeten a sus desarrolladores?
agregado el autor Matt Cruikshank, fuente
Él ya afirmó que su burocracia corporativa no permitirá la introducción de nuevas herramientas. Jim está buscando procesos y prácticas más que tecnologías.
agregado el autor Raelshark, fuente

Hay dos problemas distintos: control de versiones y fusión. No hay excusa para NO usar un sistema de control de versiones. Si la empresa ha decidido una solución (por el motivo que sea), úsala. No me gusta o no "tener confianza" en ello no es una razón válida para no usarlo. Y usar una unidad compartida para imitar un sistema de control de código fuente está más allá de lo loco.

La fusión es un segundo problema. Simplemente necesita una herramienta diff/merge. Elegir uno. ¿Cómo has ido tanto sin uno?

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

Fusionar todo a mano no es una solución sostenible. Combinar eso con not usando un VCS es una receta para el desastre.

3
agregado

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

merge mine older yours

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

Sin embargo, no estoy seguro de si tiene una caja UNIX (o Mac OS X) para hacer esto.

2
agregado
En realidad, no hay fusión, pero creo que te estás refiriendo al comando "diff3-m". Ver gnu.org/software/diffutils/manual/html_node/diff3 -Merging.ht & zwnj; ml
agregado el autor Bruno De Fraine, fuente

Puede que esta no sea una opción viable, pero quizás podría utilizar un sistema distribuido como bazar , git , o Mercurial .

La razón por la que sugiero esto es que tienen muy poca carga y se pueden usar con otros sistemas. Sé con bazar que el repositorio es simplemente una carpeta oculta añadida al directorio.

2
agregado

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

2
agregado

Trabajar fuera de una unidad compartida no es una buena idea, y obtiene mi voto de "no confianza".

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

1
agregado