¿Sistemas de control de versiones para proyectos de hardware?

56

¿Cuáles son algunos de los buenos sistemas de versionado para proyectos de hardware? ¿Hay equivalentes de Google Code, CVS y SVN? ¿Son tales sistemas de control de versión adecuados para proyectos de hardware que involucran archivos PCB, esquemas ... (incluso código de firmware)?

    
pregunta cksa361

19 respuestas

24

Básicamente, todos los sistemas VCS pueden manejar texto & archivos binarios con gracia. Por supuesto que no puedes combinar los binarios.

Entonces, mientras no estés usando cosas obsoletas como CVS, serás bueno con CUALQUIER sistema.

    
respondido por el BarsMonster
17

He usado Subversion con Altium antes. Funcionó con éxito, pero en ese momento la falta de una herramienta de diferencias la hacía menos útil que el control de versiones con código. Todavía creo que valió la pena hacerlo, incluso sin la capacidad de diferencia.

Para firmware, Subversion o Git son excelentes. Si no has usado Git anteriormente, prueba primero con Subversion (aunque hará que el aprendizaje de Git sea más difícil).

Altium ha introducido recientemente una herramienta de diferenciación para esquemas y PCB, por lo que espero que ahora Subversion sea excelente, además de la locura habitual que los proveedores de EDA logran incorporar en sus productos.

He querido probar esto con la nueva herramienta diff; si lo hago, trataré de recordar publicar un enlace al repositorio aquí como ejemplo.

Actualizar

Intenté esto, y debo decir que estoy un poco decepcionado con la herramienta Altium diff. Es funcional, pero los cambios entre las revoluciones de la placa son lo suficientemente importantes como para que no sean tan útiles, al menos para mí. Habiendo visto esto, he decidido olvidarme de la herramienta de diferencias y solo uso Github. Aquí está el repositorio si está interesado: enlace

    
respondido por el pingswept
10

Uso VisualSVN Server + TortoiseSVN client, y funciona bien

    
respondido por el vicatcu
7

Utilizo Google Code para alojar Super OSD , un proyecto de electrónica mío.

Uso exclusivamente la suite gEDA para administrar mis esquemas y PCB. De manera útil, gEDA produce archivos de texto (que en su mayoría son legibles por humanos, aunque es difícil interpretarlos) para los esquemas, en lugar de manchas binarias, como Eagle. Por ejemplo, esta es una diferencia entre dos esquemas , uno de aproximadamente 5 días de edad y uno que acabo de realizar. No es particularmente útil ya que realmente no puede ver muchos cambios en los archivos de texto, pero puede mostrar un cambio relativo, es decir, retrabajo masivo, frente a un solo cambio de componente, y le permite volver a las versiones anteriores.

    
respondido por el Thomas O
4

¿Por qué no solo usa Google Code o un repositorio SVN? Como este es un sistema de control de revisiones. No hay un uso definido para ello. Es increíblemente útil para múltiples desarrolladores y para monitorear cambios en el código fuente.

    
respondido por el Dean
4

El truco es usar algo que funcione bien con binarios. Si está utilizando mucho los binarios y los comparte con otros, podría ser beneficioso implementar un mecanismo de bloqueo en esos archivos binarios. Hemos tenido muchos problemas con el uso de Subversion con archivos binarios y el intercambio con otros que surgieron debido a la falta de semántica de bloqueo y la sobrescritura / fusión de archivos binarios. Agregar un mecanismo de bloqueo en esos archivos elimina los errores humanos en la comunicación sobre quién editó / modificó el archivo binario.

Si no ha usado el control de versiones anteriormente, le recomiendo que lea las diferentes formas en que funcionan y seleccione una para satisfacer sus necesidades con las que usted y / o su equipo puedan sentirse cómodos. Los sistemas de control de versiones distribuidos ofrecen muchos beneficios sobre los sistemas cliente-servidor, pero tienden a ser más complicados para trabajar.

    
respondido por el J. Polfer
3

No es un sistema de control de versiones real, pero Dropbox maneja también la revisión de archivos y los pone a disposición de diferentes personas en diferentes sistemas operativos. - sistema de control de versiones de mans pobre;)

    
respondido por el powtac
2

svn, hg y git funcionan bien.

    
respondido por el old_timer
2
  

He usado Subversion con Altium antes.

Utilizo SVN con la integración Altium para la captura de esquemas: funciona bien. Debo decir que el visor de diferencias es mejor que no tener nada, porque mis archivos SchDoc son binarios, es decir, ¡es imposible compararlos de otra manera! Uso el cliente SVN integrado en Altium Designer en paralelo con TortoiseSVN sin ningún problema. El cliente de Altium es un poco limitado en términos de características SVN. Hago mis "etiquetas" con Tortuga.

Mi opinión se basa en Altium Designer 10 build 27009 y en la versión 13.1 build 27559.

    
respondido por el Just1
1

Estuve en el Maker Faire en San Mateo el fin de semana pasado y me reuní con algunos representantes de una empresa nueva (para mí) llamada Up-Verter . Básicamente, están construyendo una herramienta eléctrica de CAD que se ejecuta en "la nube" (es decir, en su navegador) y se construye conceptualmente en torno a la colaboración, por lo que deben lidiar con fusionar / diferenciar y con las versiones habituales de las versiones.

No lo he probado todavía, y todavía se ve un poco verde (no creo que puedas hacer un diseño de PCB todavía, solo esquemas), pero es un poco intrigante. Afirmaron que podían importar archivos Eagle, lo que es una ventaja.

También hablé con los representantes de Eagle en la carpa Element 14, e indicaron que se están moviendo a un formato XML, lo cual es un gran paso para hacer que la creación de versiones de esquemas y el diseño sea más plausible ... todos los avances interesantes en este frente!

    
respondido por el vicatcu
0

De hecho, esta es una muy buena pregunta. Dado que los FPGA se encuentran en la categoría de "hardware", es posible que esté interesado en una estructura de proyecto amigable con el control de versiones que propongo para los proyectos FPGA:

enlace

Creo que las ideas y los conceptos podrían aplicarse fácilmente a otros proyectos de hardware, y en general. (Los comentarios sobre esta propuesta son muy bienvenidos, por cierto.)

    
respondido por el Saar Drimer
0

Evita git. No maneja bien los grandes repositorios. Y tus repositorios se agrandarán a menos que tú

  1. Tener archivos de esquemas binarios que solo cambian un poco cuando cambian
  2. Activa los binarios de tratamiento como texto.
respondido por el Brian Carlton
0

He estado usando múltiples repositorios de Mercurial (HG) (uno por proyecto) para esto, pero como la mayoría de los Sistemas de Control de Versiones experimentarán, los repositorios son cada vez más grandes.

    
respondido por el Nate
0

Debes probar Boar . Está diseñado desde cero para manejar grandes archivos y repositorios. 100 GB o más de datos binarios no es un problema.

    
respondido por el Mats Ekberg
0

Me gustaría añadir un enlace a HgInit, una excelente introducción a Mercurial si decides ir por ese camino. Personalmente uso Git, pero son muy similares en términos de arquitectura (ambos son sistemas de control de versiones distribuidos). La naturaleza distribuida de ellos los hace excelentes para trabajar bien en equipos "distribuidos". :)

enlace

    
respondido por el Bernhard Hofmann
0

OpenPLM parece ofrecer algunos aspectos de lo que está buscando, aunque no parece estar en desarrollo activo ( enlace ).

Tal vez eche un vistazo a enlace (" ERPNext: Git / Github para hardware de código abierto - Llamar para usuarios Beta ")

    
respondido por el Stev Jensen
0

Vale la pena reflexionar sobre estas descripciones de hardware. Una vez que se adopta una descripción legible para el hardware, cualquier sistema moderno de control de revisión (RCS) funciona bastante bien. Los diseños de circuitos normalmente se describen completamente en archivos Gerber, UML describe otras partes, que son descripciones completamente ascii. Existen formatos ascii menos estándar para esquemas, diseño mecánico, etc. (por ejemplo, KiCAD).

La adopción es más un problema práctico, requiere un requisito reconocido para un buen control de revisión, incluido un diferencial significativo. Lo que a menudo también significa renunciar a Word, Excel, PowerPoint, etc. Un argumento muy difícil en contra de los gerentes y los MBA, pero posiblemente las industrias reguladas como dispositivos médicos, aviación y militares ya requieren un buen control de revisión.

Como han señalado otros, la mayoría de los RCS modernos revisarán los archivos binarios de control, lo que es muy útil para archivar e identificar versiones, pero cualquier sistema de gestión de documentos electrónicos (EDMS), Agile, por ejemplo, puede asignar un número de revisión a un arbitrario binario. Aburrido.

    
respondido por el James Walter Taylor
0

Aunque no es gratis y no está libre de errores, la bóveda Altium realiza un trabajo excelente; Puedo retroceder a cualquier punto de compromiso fácilmente (como cualquier VCS debería hacer) muy fácilmente.

En esta área, Altium está mucho por delante de las herramientas premium (Mentor and Cadence)

No hago no trabajo para Altium, pero esta herramienta, a pesar de los problemas actuales, hace que la versión completa del hardware sea muy sencilla.

    
respondido por el Peter Smith
0
  

¡Buenas noticias sobre Altium!

Altium agregó soporte a versión de control de Git como se puede ver en Notas de la versión para Altium Designer .

Para saber cómo usarlo, puede seguir esto Uso de la guía de control de versiones .

    
respondido por el zewill

Lea otras preguntas en las etiquetas