¿Utiliza el control de versión que no sea para el código fuente?

He encontrado que SVN es extremadamente útil para documentation, files personales, entre otros usos de código no fuente. ¿Qué otros usos prácticos ha encontrado para los sistemas de control de versiones en general?

He visto que el control de versiones se usa para otros fines que no son del código fuente, como

  1. Archivos de esquema: un set de files de esquema XML que representan un esquema de mundo real
  2. Archivos de contenido: contenido representado en un formatting específico, esto está vinculado a un diseñador en VStudio, utilizando el control de origen, permite el historial, revierte todo, sin interacción con la database

En ambos casos notamos que básicamente se trata de files detallados, las razones principales para tener estos files en control de fuente en lugar de "loggings de text en la database", es que

  1. files que pueden necesitar capacidad para comparar versiones
  2. historial (porque varios usuarios trabajan en ellos)
  3. capacidad de retrotraer a una versión anterior
  4. labeldo y lanzamientos obteniendo una label específica
  5. si usa Team Foundation (TFS), las templates de scrum completas con elementos de trabajo, etc.
  6. sin database involucrada, sin desarrollo adicional para todo lo anterior

En uno de mis primeros trabajos, utilizamos CVS para el control de revisiones de DNS. Era principalmente una forma barata y sucia de hacer una copy de security de los files de zona.

También he oído hablar de personas que usan un sistema de control de versiones para sus directorys personales.

Durante mi último semestre en la escuela, tomé dos classs, cada una de las cuales tenía un proyecto grande y lento debido al final del semestre. Ambos también requirieron varios papeles largos durante el semestre. Hice un uso intensivo de SVN para ambas classs para rastrear cada cambio que hice en cada papel y proyecto.

Soy más un tipo de persona que escribe "todo a la vez" cuando se trata de escribir, y tiendo a perder mi hilo de pensamiento si trato de extender el process en varias sesiones. Ser capaz de diferir las últimas revisiones de mis documentos me facilitó volver a encarrilarme.

Edito una gran cantidad de documentos en LaTeX, así que uso SVN para almacenar los files e imágenes de tex, etc. Es útil para hacer Difuntos, y con suerte me salvará si tengo un desastre.

En general, todo lo que el process de construcción necesita lo pongo en el control de la fuente. El único problema que surge es si tiene resoruces preparados por otros departamentos, por ejemplo, Marketing, que van en su installation, por ejemplo.

Tengo una carpeta en la ruta llamada bin con herramientas útiles como las de sysinternals y otras. Yo uso svn para mantenerlos actualizados en diferentes máquinas. Además, cosas como los scripts de PowerShell, los files vimrc, etc. son geniales para mantener centralizados.

Nunca pensé en usarlo para cosas personales, pero en proyectos de software, verifico prácticamente todo lo que no se puede regenerar en una date posterior (ejemplos de esto incluyen ejecutables y documentos generados por código). La documentation siempre se registra. Las presentaciones a los clientes se registran y labeln junto con la base de código utilizada para la demostración, si hubo una demostración.

Creo que SVN y CVS no son lo suficientemente "amigables" para los usuarios no técnicos, pero ahora tengo curiosidad sobre los posibles usos para el control de versiones para proyectos que no son de ingeniería …

La mayoría de la documentation que será vista por más de un par de ojos humanos. Es increíblemente útil, por ejemplo, durante las fases de planificación del proyecto cuando el analist actualiza el documento de requisitos y le gustaría ver qué cambió desde la última vez que lo vio. Los wikis también tienen esta funcionalidad, natch. Utilizamos SharePoint para estos fines, pero elija su proveedor.

Utilizo mucho el control de versiones para files comunes, porque tengo una computadora portátil, una máquina de escritorio en funcionamiento y un escritorio doméstico en el que también trabajo mucho (trabajo desde casa dos días a la semana).

Una nueva session en cualquiera de ellos comienza con una secuencia de commands llamada 'inicio' que actualiza un montón de cajas, y termina con una secuencia de commands llamada 'detener' que compromete algunas cosas a VCS, o me muestra al less las modificaciones.

Lo uso para:

  • mi list de tareas de un solo file Getting Things Done (ver yagtd , la herramienta que uso)
  • mi database de passwords (debería haber enviado esa sugerencia al podcast de StackOverflow en respuesta a la pregunta de Joel)
  • todas mis notas aleatorias y files en proyectos
  • un montón de hojas de cálculo (incluida una que rastrea algunas cosas personales día a día)
  • algunas imágenes (como los avatares web que uso)

Además, escribí algo sobre Subversion para administrar los files de configuration para ambos sistemas y mis counts de usuario. Tengo tantas counts en tantas máquinas, y estaba cansado de volver a aprender cómo configurar mi shell / vim / … así que ahora también guardo la mayoría de esas cosas en control de versiones. Eso incluye files de firma de correo electrónico, un set de scripts de shell en $ HOME / bin, …

Uso el control de revisión para casi todos mis documentos para cualquier propósito.

Estoy usando Mercurial, por lo que la creación de un nuevo repository en un directory determinado es una cuestión de un simple "hg init", que encontré mucho less complicado que configurar un nuevo repository de Subversion.

También descubrí que RCS es excelente en cualquier situación en la que necesites sincronizar files: ahora estoy usando eso en lugar de rsync para todas mis necesidades de synchronization. También es más fácil hacer copys de security: clonar un repository en otra location / máquina / disco significa que puedo simplemente enviar los cambios a esa location, lo que es aún más fácil con un repository de inserción pnetworkingeterminado. Si no modifica en el repository remoto, entonces ni siquiera tiene que preocuparse demasiado por configurarlo de manera diferente a la pnetworkingeterminada.

Una de las mejores cosas para mí es que puedo tener synchronization, copys de security o lo que sea en cualquier sistema al que tenga acceso SSH. (Bueno, si me instalaran mercurial en Uni, ¡entonces podría!)

En mi compañía, el grupo de desarrollo pretende usar Subversion para casi todos los documentos electrónicos. Esto depende de poder "bloquear" los files que no se pueden fusionar, como los documentos de Excel. SVN proporciona la function "requiere locking" y el flujo de trabajo de compilation, modificación y compromiso es razonablemente directo.

Los ingenieros de software están a bordo, pero hay cierta resistencia por parte de los ingenieros mecánicos. Quieren utilizar las funciones simultáneas de edición queueborativa de Excel, por ejemplo. No se han adaptado al locking, a la modificación ni al compromiso del flujo de trabajo.

TortoiseSVN te permite diferenciar los documentos de Word, que considero extremadamente útiles. También es compatible con la fusión aparentemente, aunque he sido demasiado gallina para probar esa function …

Me gustaría considerar seriamente un DVCS como git o Mercurial. Pero a less que pueda bloquear files de formatting binary (es decir, no fusionables) (convirtiéndose así más bien en un model centralizado para dichos files), y / o fusionar los formattings de file binarys que usamos, no encajarán en el uso de mi compañía.

Solo deseo que todas las compañías de software proporcionen buenas herramientas de diferenciación y fusión para sus formattings de documentos patentados. Eso boostía el valor de los sistemas de control de versiones para formattings de documentos patentados.

Uso SVN para verificar los cambios en los files de configuration del server Asterisk VOIP. Tengo un repository con una carpeta que corresponde a cada uno de varios serveres. Esa carpeta contiene todo el contenido de / etc / asterisk.

Utilicé Subversion para todo, desde el control de origen, entornos de compilation, scripts de instalador y toda esa bondad de desarrollo. También he configurado un repository para usuarios no técnicos para files binarys, en este caso documentos antiguos de Excel y Word. Funcionó bien teniendo en count que perdimos cualquier funcionalidad de fusión. Pero permitió a todos nuestros usuarios get una tonelada de información que fue editada principalmente por dos o tres personas con bastante facilidad. Y con instrucciones sencillas sobre cómo actualizar antes de realizar cualquier edición (locking si es necesario) y luego lidiar con conflictos (verificar qué se actualizó y luego eliminar su copy y realizar una actualización), pudieron manejar bastante bien el repository, aunque no estoy seguro de que alguna vez les haya gustado. 🙂

Sí, tengo un directory doc en git. Contiene una list de tareas pendientes, un calendar y algunos otros documentos.