Alternativas al control de versión profesional [cerrado]

57

Nos estamos asociando con algunos no programadores (escritores) que necesitan contribuir a uno de nuestros proyectos.

Ahora simplemente no les gusta la idea de usar Git (o cualquier otra cosa) para la versión que controla su trabajo. Pienso que esto se debe a que simplemente no les parece valioso para envolver sus cabezas en torno a los conceptos retorcidos de control de versiones. (cuando los introduje por primera vez a la ramificación y la fusión, parecían estar ofendiéndolos).

Ahora, no estamos en condiciones de educarlos o convencerlos de que lo usen. Solo estamos tratando de encontrar alternativas para que obtengamos la versión de su trabajo (que es lo que necesitamos), y obtengan un flujo de trabajo sencillo y se concentren en lo que hacen.

Se me han ocurrido algunas ideas ...

  • dígales que guarden su trabajo como un archivo separado cada vez que realicen algún cambio no trivial, y luego utilicen un diff de nuestro lado para simplemente rastrear los cambios.
  • escriba un programa (en Python) que implemente los "hitos" en CSSEdit de alguna manera.

Sobre el proyecto:

Es un sistema de procesamiento de lenguaje natural (escrito en C + Python). Hemos contratado a algunos escritores para preparar entradas para el sistema en diferentes idiomas. Y a medida que evolucionamos en el software, necesitamos que esos escritores realicen cambios en sus entradas (artículos). Algunas veces los cambios son muy pequeños (una palabra o dos) y otras veces son grandes.

La razón por la que necesitamos controlar las versiones de esos cambios es porque cada cambio pequeño / grande en la entrada tiene el potencial de cambiar la salida del sistema dramáticamente.

    
pregunta treecoder 05.07.2015 - 23:17

17 respuestas

101
  

cuando los introduje por primera vez a la ramificación y la fusión, parecían   como si los estuviera ofendiendo

Probablemente esto se deba a que la ramificación y la fusión son conceptos avanzados, y son infinitamente menos útiles que simplemente realizar un seguimiento de los cambios.

Entonces, ¿por qué no explicar simplemente "commit" (guardar) y "actualizar"? Dos conceptos realmente simples . Estoy seguro de que puedes explicarlo en menos de 10 minutos.

Si realmente quieres usar ramas separadas y cosas así, puedes hacer esa parte tú mismo sin involucrarlas.

    
respondido por el Andreas Bonini 08.12.2011 - 16:04
69

Un enfoque poco ortodoxo sería simplemente utilizar Dropbox . Haga que los autores guarden los archivos en el directorio de Dropbox y obtendrá la creación de versiones y la copia de seguridad de forma gratuita. Además, básicamente no hay curva de aprendizaje para los autores.

Para git, parece que al final acabarás proporcionando a los autores las versiones de bifurcación correctas de todos modos, así que simplemente coloca el repositorio de git en el menú desplegable y maneja la bifurcación y fusión de los autores.

    
respondido por el OliverS 08.12.2011 - 10:40
28

Sinceramente, la respuesta está en tu edición: "Hemos contratado a algunos escritores". A veces, solo tienes que tener una mente sangrienta ... quieren tu dinero, tienen que hacer lo que quieres proporcionar. que lo que quieres no es irrazonable.

El argumento que presenta es el argumento que ya ha avanzado: debemos poder hacer X, Y y Z para que el producto funcione, y para hacerlo le necesitamos Para hacer eso. Le brindaremos todo el apoyo que podamos, pero para que esto funcione (y, por lo tanto, para que continúe como un flujo de ingresos para usted, el escritor), esto tiene que suceder.

Tiendo a estar de acuerdo en que una solución adecuada basada en Wiki parece ser una buena coincidencia, pero el desafío aquí es cómo encontrar un compromiso entre su flujo de trabajo y sus requisitos.

Repetiré el punto clave: para que su proyecto sea un éxito, necesita que los artículos sean versionados, por lo tanto, aquellos que trabajan en los artículos deben cumplir con un conjunto de reglas acordadas, si esto no sucede. usted se se quemará y, por extensión, también lo harán los escritores.

    
respondido por el Murph 08.12.2011 - 12:53
18

He tenido que lidiar con una situación similar como esta antes. Al final, solo designamos a un desarrollador (yo) como el punto de contacto de control de versión para el tercero.

La tercera parte me enviaría un archivo zip de sus archivos de proyectos todos los días y yo haría el registro por ellos. Configuro un área de trabajo de proyecto y svn aparte para ellos, y descomprimiré los archivos en esa área de trabajo sobrescribiendo lo que había allí y luego realizaré el registro en esa cuenta.

No fue lo más divertido tener que hacer todos los días, pero a veces es más importante simplemente hacer el trabajo.

Una ventaja adicional fue que me ayudó a revisar su trabajo para asegurarme de que no estaban revisando el código incorrecto y los datos que romperían la compilación.

    
respondido por el Alan Barber 08.12.2011 - 14:46
18

SparkleShare es un clon de Dropbox basado en git, creo que se adapta a tus necesidades.

  

SparkleShare crea una carpeta especial en tu computadora. Puede agregar carpetas alojadas remotamente (o "proyectos") a esta carpeta. Estos proyectos se mantendrán sincronizados automáticamente con el anfitrión y todos sus compañeros cuando alguien agregue, elimine o edite un archivo.

     

... aquí hay algunos ejemplos de lo que hace bien y menos bien con caras sonrientes:

     

Genial

     
  • Archivos de proyectos que cambian con frecuencia, como texto, documentos de Office e imágenes
  •   
  • Seguimiento y sincronización de archivos editados por varias personas
  •   
  • Revertir un archivo a cualquier punto de su historial
  •   
  • Evitar el espionaje de sus archivos en el servidor mediante el cifrado
  •   

No tan bueno

     
  • Copias de seguridad completas de la computadora
  •   
  • Guardar tu colección de fotos o música
  •   
  • Archivos binarios grandes que cambian a menudo, como proyectos de edición de video ...
  •   

Actualización (noviembre de 2015) : el proyecto parece estar abandonado (último lanzamiento de abril de 2014).

    
respondido por el gnat 02.11.2015 - 13:46
13

Si puede proporcionar espacio de trabajo preparado con transparente uso de VCS, ellos usarán VCS. No enseñe a los no programadores a usar VCS a la manera del programador

Simplemente encuentre el editor con soporte VCS incorporado, configúrelo y muestre pasos sencillos adicionales en sus trabajos.

Solo un ejemplo: Editplus conoce Subversion, tiene la capacidad de realizar operaciones básicas de SVN dentro de la ventana del editor. El último Editplus incluso puede usar TortoiseGIT para la integración Git

Editar : encontré una solución alternativa de algún modo: EasySVN , que, debidamente configurada, monitorea la copia de trabajo y realiza autocomit and automerge, permitiendo utilice cualquier herramienta de creación para el usuario final y los formatos de cualquier documento

    
respondido por el Lazy Badger 08.12.2011 - 19:05
11

¿Qué hay de configurar un WebDAV ?

Automáticamente manejará el historial de versiones en línea recta para ellos. Todo lo que tienen que hacer es conectarse al servidor como si fuera una unidad de red y cada guardado será un compromiso.

    
respondido por el Malfist 08.12.2011 - 19:24
6

Google Docs

Google Docs puede hacer lo que quieras. File > See Revision History le permitirá hacer un seguimiento de los cambios.

También tienes el problema de entregar los archivos de un lado a otro sin cargo; solo comparte el documento entre todos.

Finalmente, es fácil de usar; los escritores ni siquiera tienen que saber que está ocurriendo el control de versiones.

    
respondido por el Nathan Long 08.12.2011 - 20:19
6

OS Agnostic

Escriba un programa de Python en el que pueda arrastrar y soltar un archivo, ese programa puede hacer el git add y git commit y qué no, y nunca tienen que lidiar con él.

o

Use un sistema de archivos basado en WebDav que pueda montar en su máquina y haga que el servidor haga las cosas git de forma transparente.

OSX/Linux

Escriba un complemento FUSE basado en Python que tome los archivos y los comprometa a git. Luego, solo pueden abrir y guardar desde el sistema de archivos montado de forma transparente. Hay algunos recursos de FUSE para Windows , pero es probable que ni siquiera valga la pena engañarlos. .

Windows

Podría escribir algún código para usar Controladores de filtro de sistema de archivos para hacer transparentemente las cosas git .

    
respondido por el Jarrod Roberson 08.12.2011 - 20:21
5

Ah, las alegrías de los no codificadores andan por ahí. Yo sugeriría conseguir un entorno git / mercurial configurado para ellos. Dígales que guarden todo en un formato que el repositorio pueda manejar. Con tortoisegit o tortoisehg , no necesitan saber cómo funciona el repositorio. Simplemente comprueban si tienen un signo de exclamación en el directorio de su proyecto, hacen clic derecho en el archivo ofensivo y hacen clic en confirmar. Escriba una sinopsis de los cambios (son escritores, ¿verdad?) ¡Y listo!

Un paso adicional en el flujo de trabajo para ellos, pero nada sobre la fusión / ramificación / cosas interesantes. El entorno creado previamente ya está configurado para estar en la rama de escritores, por lo que no ven el código. Tener un script de sincronización automática cada día. Más tarde, después de que estén acostumbrados a cometer, puede mostrar sus funciones adicionales. La capacidad de ver qué ha cambiado cuando es tan útil que no podrán prescindir de él, una vez que lo introduzcas en su flujo de trabajo.

    
respondido por el Spencer Rathbun 08.12.2011 - 15:04
3

¿Qué hay de Share Point? Sé que no es popular en los mundos de desarrollo, pero si sus escritores usan Windows como sistema operativo, funcionará bien y realmente no sabrán que están usando el control de versiones (una gran ventaja para mi trabajo).

Esta solución también les impide lidiar con cualquier cosa que los pueda asustar mucho, ya que parece que están asustados de cosas nuevas.

    
respondido por el JustinDoesWork 08.12.2011 - 15:45
2

¿Podría configurar una herramienta que supervise el sistema de archivos donde los escritores están guardando sus archivos y hacer que realice una confirmación automática cada vez que haga un guardado?

Si lo pones en un recurso compartido de red, podrías hacer toda la configuración sin involucrarlos en absoluto; pero cada vez que proporcionan una versión actualizada para que su equipo la use, se agregará a git para usted.

    
respondido por el Dan Neely 08.12.2011 - 15:49
1

¿Te fijaste en Plastic SCM? Intentan simplificar su uso

Si solo desea copias de seguridad versionadas, puede usar Dropbox o puede configurar el servicio de copia de seguridad de Windows. O puede instalar Crashplan u otro producto similar.

    
respondido por el Amala 08.12.2011 - 15:15
1

Para Mercurial DVCS, hay una interfaz de usuario llamada EasyMercurial , cuyo objetivo declarado es explícitamente proporcionar un Vista simple de las operaciones básicas de control de versión.

  

EasyMercurial pretende ser:

     
  • simple para enseñar y aprender   Indicativo del estado real del repositorio, utilizando una representación gráfica del historial   
    • reconociblemente cerca del flujo de trabajo normal de la línea de comandos para Mercurial   consistente en todas las plataformas
    •   
  •   

No estamos tratando de producir "el mejor" cliente Mercurial para nadie   propósito. Animamos activamente a los usuarios a pasar a otros clientes como   Sus necesidades evolucionan. El objetivo es simplemente proporcionar algo accesible.   para principiantes en pequeños grupos de proyectos que trabajan con un control remoto compartido   repositorio.

Recomendaría intentarlo.

    
respondido por el Laurens Holst 08.12.2011 - 15:53
1

He tenido que trabajar con programadores que no son programadores muchas veces (en su mayoría artistas gráficos, y si sus escritores tienen tan poca idea de cómo administrar los archivos de trabajo como artistas, entonces están aquí para ... h'mmm ... divertido...). Hay tres enfoques posibles:

  1. Imagina que son programadores, intenta enseñarles cómo usar el control de versiones. Esto no funcionará y tendrás peleas constantes.
  2. Escríbalos una herramienta muy simple que simplemente toma la versión actual & lo pega en algún lugar para que puedan retroceder a los archivos de ayer si es necesario. Esto es posible, y lo hice para un equipo de creadores de DVD (haciendo menús, gráficos, todo tipo de cosas) hace algunos años con cierto éxito: la herramienta que escribí fue un envoltorio de un solo clic para PkZip (puede ver que fue hace un tiempo) y simplemente comprimió el directorio de trabajo y nombró el archivo para la fecha y la hora.
  3. Toma el control de lo que ellos mismos producen. Deje en claro que sus archivos deben ser entregados a un programador y solo se convierten en parte del proyecto cuando el programador los acepta: el programador luego los controla en el control de versiones y el contenido se administra de manera profesional.

Personalmente creo que la opción 3 es el camino a seguir. Significa un poco de dolor y amp; irritación para quien tenga que tomar las entregas de archivos y hacer que se registren, pero mucho menos que cualquier otra opción.

También diría, tenga en cuenta que los no programadores entregarán archivos con cualquier nombre de archivo antiguo que pueda imaginar. Las convenciones de nomenclatura son extrañamente ajenas a ellas. Le darán un archivo llamado "Imagen" o algo así y luego, cuando les diga qué cosas están mal, le dará un archivo llamado "Picture_Final", que solo corrige alrededor de 3 de los errores. Cuando lo señale, obtendrá otro archivo, llamado "Picture_NewFinal", y luego (si tiene suerte) "Picture_NewFinal2", aunque es posible que en este punto desechen cualquier sentido del desarrollo histórico y lo llamen "Icono de Spanner cosa ".

Nuevamente, puede intentar imponer una convención de nomenclatura, lo que significa decirles de antemano cómo debe llamarse a todos los archivos, o puede pasar horas descifrando & renombrando lo que te envian. Aquí, yo diría que de todos modos quieres la hoja de cálculo para tu propia cordura, así que intenta que la sigan: no te sorprendas cuando no la tengan.

Espero que ayude, ¡diviértase!

    
respondido por el AAT 09.12.2011 - 01:11
0

Si hay alguna posibilidad de que dos de ellos necesiten trabajar en el mismo objetivo a la vez Y si puedes lidiar con todo su trabajo en archivos de texto, intentaría compartir documentos de Google.

Tiene una capacidad de colaboración / editor múltiple impresionante, por mucho el mejor que he visto en mi vida. También tienen una versión completa y se pueden exportar como archivos de texto.

Pero esos son dos grandes ifs.

    
respondido por el Bill K 08.12.2011 - 17:34
0

Permítales trabajar en una carpeta, guardando los archivos como de costumbre.

Una vez al día (o semana, etc.) copie el contenido de esa carpeta a backup_dd_mm_yyyy La mayoría del código fuente de los sistemas ocupa una cantidad trivial de espacio dado el espacio disponible en estos días.

Usted, ellos, un tercero, una herramienta o un script pueden hacer la copia.

Esto limita la pérdida a un día, da un historial, es transparente para ellos.

No es perfecto para ninguna de las partes, pero una respuesta que busca llegar a un punto medio.

    
respondido por el Michael Durrant 26.06.2013 - 00:37

Lea otras preguntas en las etiquetas