Sistema de control de versiones de documentos

Soy nuevo en todo este negocio de control de versiones, así que ayúdenme a comprender los diferentes software de control de versiones que se adaptan a mis necesidades. Me he dado cuenta tristemente de que necesito comenzar a crear versiones de mis documentos y código porque cuando estaba transfiriendo datos a través de USB, se complicó mucho y perdí mucho trabajo en el proceso. Perdí todo mi trabajo de diseño porque copié la carpeta equivocada y pensé que era seguro borrarlo, hice un "shift-del"... Estupidez al margen - lección aprendida.

Así que busqué mucho y me decidí por Git (en BitBucket) para versionar el código fuente. Sin embargo, estoy teniendo dificultades para encontrar una solución para:

  • Documentos como word docx, pdf
  • Diseño de modelos como UML y diagramas de flujo
  • Gestión de proyectos y cronogramas como hojas de cálculo de Excel o entregables de MS Project

Mis requisitos son los siguientes:

  • Capacidad de registro/desprotección de archivos individuales (para colaboración)
  • Bloqueo de archivos al finalizar la compra (para evitar conflictos)
  • Capacidad para confirmar una nueva versión sin registrarse (permitir permanecer fuera de línea si soy el único que trabaja en el documento. En un proyecto de un solo hombre, simplemente mantendría todo revisado y simplemente confirmaría la versión).
  • Numeración automática de versiones al confirmar o registrar

Actualmente tengo una sincronización personal en la nube para mantener el historial de archivos en cada guardado. Sin embargo, esto se presenta en un estado sin sentido y solo sirve como seguridad en caso de que cometa un error. Los requisitos establecidos anteriormente agregarán una forma significativa para mí de revisar y retroceder en los "hitos".

Indique si hay algo por ahí que cumpla con este requisito.

Solo un comentario, parece que estás confundiendo a Git con otros VCS. Git está descentralizado, por ejemplo, por lo que no hay realmente un proceso de pago/registro.
Que es exactamente por qué estoy haciendo esta pregunta. Estoy usando git para mi código. Pero también quiero un sistema de control de versiones para mis documentos.

Respuestas (2)

Los sistemas de control de versiones generalmente no se preocupan por lo que representan los archivos que se les envían, aunque manejan los tipos de archivos de manera diferente (por ejemplo, archivos binarios). Así que podemos dejar de lado las cosas específicas del archivo.

Según su descripción, me parece que Subversion podría ser una buena combinación:

  • Capacidad de registro/desprotección de archivos individuales (para colaboración): Posible. Simplemente especifique los archivos que desea registrar, por ejemplo svn ci file.doc, svn ci *.pdfosvn ci files/*
  • Bloqueo de archivos al finalizar la compra (para evitar conflictos): posible. Use svn lock <target>, <target>interpretado como en mi ejemplo anterior, para que pueda bloquear un solo archivo, varios archivos o directorios completos
  • Capacidad para confirmar una nueva versión sin registrarse: No. Eso solo funcionaría con un sistema descentralizado como Git , que guarda copias del repositorio en cada máquina, pero normalmente no tendría bloqueo.
  • Numeración automática de versiones al confirmar o registrar: Esa es una característica sustancial de cada VCS, diría yo, por lo que, naturalmente, también está disponible con SVN.

Le resultará difícil encontrar un sistema que cumpla con todos sus requisitos, por lo que probablemente tendrá que decidir qué comprometer. Con Git no habrá bloqueo de archivos (debido a su estructura descentralizada, esto no se puede hacer), lo que me parece más importante que las "confirmaciones locales". Este último podría "sustituirlo" guardando (temporalmente) copias del archivo en un directorio separado, que por supuesto puede excluirse del repositorio usando, por ejemplo, .svnignore.

Es posible con Subversion enviar un archivo sin liberar el bloqueo ( svn commit --no-unlock). Creo que esta característica podría proporcionar una respuesta "Sí" al punto 3.
@GregHewgill no "literalmente" (ya que commit/checkin son lo mismo con SVN IMHO), pero por lo que el OP quiere, esto parece al menos un "sí parcial", ¡así que +1 a eso de mi parte!
SVN, como muchos VCS, no hace un buen trabajo en archivos binarios como documentos de Word, es mejor usar Markdown o similar para los archivos y generar Word si es necesario usando pandoc.
@SteveBarnes: No creo que ese sea el caso. SVN diferencia los archivos byte a byte para almacenarlos (a diferencia de cuando se hace una diferencia svn). Tengo muchos problemas con SVN, pero ese es uno de sus puntos fuertes. referencia: support.wandisco.com/index.php?/Knowledgebase/Article/View/209/…
SVN es mejor que decir CSV a este respecto, pero si tiene archivos binarios grandes con deltas grandes (a menudo es el caso incluso de un pequeño cambio en formatos comprimidos como docx), aún puede ralentizar el servidor. Personalmente, admiro a hg por sus extensiones zipdoc y bigfiles para manejar este tipo de problemas. Todavía aconsejo mardown para el almacenamiento de documentos, ya que no está sujeto al síndrome de MS "No leeré que es de hace 3 versiones" .
@SteveBarnes Si bien estoy de acuerdo en que Markdown encaja mejor, sugeriría tener esa discusión en otro lugar, ya que, con respecto a la solicitud de OP, eso es "tomar el caballo por la cola". Cierto y válido como es, no somos un foro ;)

Git y la mayoría de las demás herramientas orientadas al código fuente no son óptimas para la gestión de documentos.
Lo que necesita es un sistema de gestión de documentos o un sistema ECM .

NemakiWare es exactamente eso:

  • Almacene una jerarquía de carpetas y documentos de cualquier tipo/tamaño.
  • Las modificaciones se guardan como nuevas versiones.
  • Siempre puede volver a una versión anterior.
  • Extraiga un documento, edítelo y luego vuelva a ingresarlo. Se bloqueará para que otros usuarios no puedan modificarlo al mismo tiempo.
  • La salida/entrada no es una obligación, puede editar documentos sin ella.

Es gratis y de código abierto.

Hay una interfaz web que muestra sus documentos y le permite obtener una vista previa, descargarlos o mover/eliminar/copiar/etc.

También puede asociar metadatos a un documento, por ejemplo, un estado de borrador/final/obsoleto, o información de flujo de trabajo: en espera de aprobación/aprobado para enviar/enviado al cliente.

Usted mencionó la sincronización de archivos. Es posible usar NemakiWare exclusivamente a través de la interfaz web, pero NemakiWare también es compatible con el protocolo CMIS , por lo que sugiero usar CmisSync , que sincronizará sus documentos hacia/desde el sistema de archivos de su computadora, manejando conflictos como Dropbox.

Interfaz de usuario de NemakiWare

Descargo de responsabilidad: mi empresa fabrica NemakiWare y CmisSync