Pregunta

Descubrí que SVN es extremadamente útil para documentación, archivos personales y otros usos no relacionados con el código fuente.¿Qué otros usos prácticos ha encontrado para los sistemas de control de versiones en general?

¿Fue útil?

Solución

He visto que el control de versiones se utiliza para otros fines no relacionados con el código fuente, como,

  1. Archivos de esquema: un conjunto de archivos de esquema XML que representan un esquema del mundo real.
  2. Archivos de contenido: contenido representado en un formato específico, esto está vinculado a un diseñador en VStudio, usa control de fuente, permite el historial, revierte todo, sin interacción con la base de datos.

En ambos casos, notamos que se trata básicamente de archivos detallados, la razón principal para tener estos archivos en el control de código fuente en lugar de "registros de texto en la base de datos" es que

  1. archivos que podrían necesitar la capacidad de comparar versiones
  2. historial (porque varios usuarios trabajan en ellos)
  3. capacidad de retroceder a una versión anterior
  4. etiquetado y lanzamientos obteniendo una etiqueta específica
  5. si usa Team Foundation (TFS), todas las plantillas de scrum con elementos de trabajo, etc.
  6. sin base de datos involucrada, sin desarrollo adicional para todo lo anterior

Otros consejos

En uno de mis primeros trabajos, usábamos CVS para el control de revisiones de DNS.Era principalmente una forma barata y sucia de realizar copias de seguridad de los archivos de zona.

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

Durante mi último semestre en la escuela tomé dos clases y cada una tenía un proyecto grande y que requería mucho tiempo para entregar al final del semestre.Ambos también requirieron varios trabajos largos a lo largo del semestre.Hice un uso intensivo de SVN en ambas clases para realizar un seguimiento de cada cambio que hice en cada artículo y proyecto.

Soy más del tipo de persona que "escribe todo de una vez" cuando se trata de escribir, y tiendo a perder el hilo de mis pensamientos si intento distribuir el proceso en varias sesiones.Poder comparar las últimas revisiones de mis artículos me facilitó mucho volver a encarrilarme.

Edito muchos documentos en LaTeX, así que uso SVN para almacenar los archivos tex y las imágenes, etc.Útil para hacer diferencias y espero que me salve si tengo un desastre.

Generalmente, todo lo que necesita el proceso de compilación lo pongo en el control de fuente.El único problema que surge es si tiene recursos preparados por otros departamentos, p.Marketing, que va en tu instalación, por ejemplo.

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

Ni siquiera pensé en usarlo para cosas personales, pero en proyectos de software, reviso prácticamente todo lo que no se puede regenerar en una fecha posterior (ejemplos de esto incluyen ejecutables y documentos generados por código).La documentación siempre se registra.Las presentaciones a los clientes se registran y etiquetan junto con el código base utilizado para la demostración, si hubo una demostración.

Estoy pensando que SVN y CVS no son lo suficientemente "amigables" para usuarios no técnicos, pero ahora tengo curiosidad por los posibles usos del control de versiones para proyectos que no son de ingeniería...

La mayor parte de la documentación 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 analista actualiza el documento de requisitos y le gustaría ver qué ha cambiado desde la última vez que lo vio.Los wikis también tienen esta funcionalidad, naturalmente.Usamos SharePoint para estos fines, pero elegimos su proveedor.

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

Una nueva sesión en cualquiera de ellos comienza con un script llamado 'inicio' que actualiza un montón de pagos y termina con un script llamado 'detener' que envía algunas cosas a VCS o me muestra al menos las modificaciones.

Lo uso para:

  • mi lista de tareas de un solo archivo Getting Things Done (consulte yagtd, la herramienta que uso)
  • mi base de datos de contraseñas (debería haber enviado esa sugerencia al podcast StackOverflow en respuesta a la pregunta de Joel)
  • todas mis notas y archivos aleatorios sobre 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 además de Subversion para administrar los archivos de configuración tanto para los sistemas como para mis cuentas de usuario.Tengo tantas cuentas en tantas máquinas, y estaba cansado de volver a aprender siempre cómo configurar mi shell/vim/...así que ahora también almaceno la mayoría de esas cosas en el control de versiones.Eso incluye archivos de firmas de correo electrónico, un montón de scripts de shell en $HOME/bin,...

Utilizo el control de revisiones para casi todos mis documentos para cualquier propósito.

Estoy usando Mercurial, por lo que configurar un nuevo repositorio en un directorio determinado es una cuestión de un simple "hg init", que encontré mucho menos complicado que configurar un nuevo repositorio de Subversion.

También descubrí que RCS es excelente en cualquier situación en la que necesite sincronizar archivos; ahora lo estoy usando en lugar de rsync para todas mis necesidades de sincronización.También es más fácil hacer copias de seguridad: clonar un repositorio en otra ubicación/máquina/disco significa que puedo enviar los cambios a esa ubicación, lo cual es aún más fácil con un repositorio de envío predeterminado.Si no modifica en el repositorio remoto, ni siquiera tendrá que preocuparse demasiado por configurarlo de forma distinta a la predeterminada.

Una de las mejores cosas para mí es que puedo sincronizar, hacer copias de seguridad o lo que sea en cualquier sistema al que tenga acceso SSH.(Bueno, si me instalaran Mercurial en la Universidad, ¡entonces podría!)

En mi empresa, el grupo de desarrollo pretende utilizar Subversion para prácticamente todos los documentos electrónicos.Esto depende de poder "bloquear" archivos que no se pueden fusionar, como los documentos de Excel.SVN proporciona la función "requiere bloqueo", y el flujo de trabajo de bloqueo, modificación y confirmación es razonablemente sencillo.

Los ingenieros de software están de acuerdo, pero hay cierta resistencia por parte de los ingenieros mecánicos.Quieren utilizar las funciones de edición colaborativa simultánea de Excel, por ejemplo.No se han adaptado al flujo de trabajo de obtener bloqueo, modificación y confirmación.

TortoiseSVN te permite diferenciar documentos de Word, lo cual encuentro extremadamente útil.Aparentemente también admite la fusión, aunque he sido demasiado cobarde para probar esa característica...

Me gustaría considerar seriamente un DVCS como git o Mercurial.Pero a menos que pueda bloquear el formato de archivo binario (es decir,no fusionables) (convirtiéndose así más en un modelo centralizado para dichos archivos) y/o fusionar los formatos de archivos binarios que utilizamos, no encajará en el uso de mi empresa.

Sólo desearía que todas las empresas de software proporcionaran buenas herramientas de comparación y combinación para sus formatos de documentos propietarios.Eso aumentaría el valor de los sistemas de control de versiones para formatos de documentos propietarios.

Utilizo SVN para registrar cambios en los archivos de configuración del servidor VOIP de Asterisk.Tengo un repositorio con una carpeta correspondiente a cada uno de varios servidores.Esa carpeta contiene todo el contenido de /etc/asterisk.

He usado Subversion para todo, desde control de código fuente, entornos de compilación, scripts de instalación y todas esas bondades de desarrollo.También configuré un repositorio para usuarios no técnicos para archivos binarios, en este caso documentos antiguos de Excel y Word.Funcionó bien considerando que perdimos cualquier funcionalidad de fusión.Pero permitió a todos nuestros usuarios obtener una gran cantidad de información que en su mayoría fue editada por dos o tres personas con bastante facilidad.Y con instrucciones simples sobre cómo actualizar antes de realizar cualquier edición (bloquear si es necesario) y luego lidiar con los conflictos (verificar lo que actualizó y luego eliminar su copia y realizar una actualización), pudieron manejar el repositorio bastante bien. aunque no estoy seguro de que alguna vez les llegara a gustar.:)

Sí, tengo un directorio de documentos en git.Contiene una lista de tareas pendientes, un calendario y algunos otros documentos.

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