Quais são alguns dos bons sistemas de versão para projetos de hardware? Existem equivalentes do Google Code, CVS e SVN? Esses sistemas de controle de versão são adequados para projetos de hardware que envolvem arquivos PCB, esquemas .. (até mesmo código de firmware)?
project-management
cksa361
fonte
fonte
Respostas:
Basicamente, todos os sistemas VCS podem lidar com arquivos de texto e binários normalmente. Claro que você não pode mesclar os binários.
Portanto, desde que você não esteja usando coisas obsoletas como o CVS, você será bom em QUALQUER sistema.
fonte
Eu usei o Subversion com Altium antes. Funcionou com sucesso, mas na época a falta de uma ferramenta diff a tornou menos útil do que o controle de versão com o código. Eu ainda acho que valeu a pena, mesmo sem a capacidade diff.
Para firmware, Subversion ou Git são ótimos. Se você nunca usou o Git antes, tente o Subversion primeiro (mesmo que isso dificulte o aprendizado do Git posteriormente).
A Altium introduziu recentemente uma ferramenta de difusão para esquemas e PCBs, então espero que o Subversion seja ótimo, modulo a insanidade usual que os fornecedores de EDA conseguem incorporar em seus produtos.
Eu pretendo experimentar isso com a nova ferramenta diff; se o fizer, tentarei lembrar de postar um link para o repositório aqui como exemplo.
Atualizar
Eu tentei isso e tenho que dizer que estou um pouco desapontado com a ferramenta diff Altium. É funcional, mas as mudanças entre as rotações do quadro são substanciais o suficiente para que não sejam tão úteis, pelo menos para mim. Tendo visto isso, decidi esquecer a ferramenta diff e usar o Github. Aqui está o repo, se você estiver interessado: https://github.com/rascalmicro/pcb
fonte
svn cp trunk/ tags/releaseX/
para tirar uma captura instantânea da liberação. Em seguida, é possível diferenciar releaseX / file e releaseY / file se desejar ver as mudanças entre as liberações ou navegar pelos logs de confirmação e ver alterações individuais. As ramificações ajudam a modularizar o fluxo de confirmações.Eu uso o cliente VisualSVN Server + TortoiseSVN e funciona muito bem
fonte
Eu uso o Google Code para hospedar o Super OSD , um projeto eletrônico meu.
Uso exclusivamente o conjunto gEDA para gerenciar meus esquemas e PCBs. De maneira útil, o gEDA produz arquivos de texto (que são principalmente legíveis por humanos, embora seja difícil interpretá-los) para os esquemas, em vez de blobs binários, como o Eagle. Por exemplo, essa é uma diferença entre dois esquemas , um com cerca de 5 dias e outro que acabei de enviar. Não é particularmente útil, pois na verdade você não pode ver muitas alterações nos arquivos de texto, mas pode mostrar alterações relativas - ou seja, retrabalho maciço, versus alteração de componente único - e permite que você volte às versões anteriores.
fonte
O truque é usar algo que funcione bem com binários. Se você estiver usando muito binários e compartilhando com outras pessoas, pode ser benéfico implementar um mecanismo de bloqueio nesses arquivos binários. Nós encontramos muitos problemas ao usar o Subversion com arquivos binários e compartilhar com outros que surgiram devido à falta de semântica de bloqueio e sobrescrever / mesclar arquivos binários. Adicionar um mecanismo de bloqueio a esses arquivos remove erros humanos na comunicação sobre quem editou / alterou o arquivo binário.
Se você não usou o controle de versão antes, recomendo ler sobre as diferentes maneiras em que eles funcionam e selecione um para atender às suas necessidades com as quais você e / ou sua equipe possam se sentir confortáveis. Os sistemas de controle de versão distribuídos oferecem muitos benefícios sobre os sistemas cliente-servidor, mas tendem a ser mais complicados de se trabalhar.
fonte
Por que não usar apenas o Google Code ou um repositório SVN? Como este é um sistema de controle de revisão. Não há uso definido para isso. É incrivelmente útil para vários desenvolvedores e monitorando alterações no código fonte.
fonte
Eu uso o SVN com integração Altium para captura esquemática: funciona bem. Devo dizer que o visualizador diff é melhor do que não ter nada, porque meus arquivos SchDoc são binários, ou seja, impossíveis de comparar de outra forma! Eu uso o cliente SVN integrado no Altium Designer em paralelo com o TortoiseSVN sem nenhum problema. O cliente da Altium é um pouco limitado em termos de recursos SVN. Eu faço minhas "tags" com o Tortoise.
Minha opinião é baseada no Altium Designer 10 build 27009 e na versão 13.1 build 27559.
fonte
svn, hg e git funcionam bem.
fonte
Não é um sistema de controle de versão real, mas o Dropbox também lida com a revisão de arquivos e os disponibiliza para diferentes pessoas em diferentes sistemas operacionais. - sistema de controle de versão do homem pobre;)
fonte
Eu estava no Maker Faire em San Mateo no fim de semana passado e conheci alguns representantes de uma nova empresa (para mim) chamada Up-Verter . Eles estão basicamente construindo uma ferramenta CAD elétrica que é executada na "nuvem" (ou seja, no seu navegador) e é conceitualmente construída em torno da colaboração, portanto, deve lidar com a mesclagem / diff e o material de versão usual.
Eu ainda não tentei e ainda parece um pouco verde (não pense que você ainda possa fazer o layout de placas de circuito impresso, apenas esquemas), mas é meio intrigante. Eles alegaram que podiam importar arquivos Eagle, o que é uma vantagem.
Também conversei com os representantes da Eagle na barraca do Element 14, e eles indicaram que estão mudando para um formato XML, que é um grande passo para tornar mais plausível o versionamento de esquemas e layout ... todos os avanços interessantes nessa frente !
fonte
A Altium adicionou suporte à versão de controle do Git, como você pode ver nas notas de versão do Altium Designer .
Para saber como usar, siga este guia Usando o controle de versão .
fonte
Esta é realmente uma pergunta muito boa. Como os FPGAs se enquadram na categoria "hardware", você pode estar interessado em uma estrutura de projeto amigável ao controle de versão que proponho para projetos de FPGA:
http://www.saardrimer.com/fpgaproj/
Penso que as ideias e conceitos podem ser facilmente aplicáveis a outros projetos de hardware e em geral. (Comentários sobre esta proposta são bem-vindos, aliás.)
fonte
Evite git. Ele não lida bem com grandes repositórios. E seus repositórios ficarão grandes, a menos que você
fonte
Eu tenho usado vários repositórios Mercurial (HG) (um por projeto) para isso, mas como a maioria dos sistemas de controle de versão experimentará, os repositórios estão ficando cada vez maiores.
fonte
Você deveria tentar o Javali . Ele foi desenvolvido desde o início para lidar com grandes arquivos e repositórios. 100 GB ou mais de dados binários não são problema.
fonte
Gostaria apenas de adicionar um link ao HgInit, uma excelente introdução ao Mercurial, se você decidir seguir esse caminho. Pessoalmente, uso o Git, mas eles são muito semelhantes em termos de arquitetura (ambos são sistemas de controle de versão distribuídos). A natureza distribuída deles os torna ótimos para trabalhar em equipes bem "distribuídas". :)
http://hginit.com/
fonte
O OpenPLM parece oferecer alguns aspectos do que você está procurando, embora não pareça estar em desenvolvimento ativo ( http://www.openplm.org/trac/discussion/topic/93 ).
Talvez dê uma olhada em https://discuss.erpnext.com/t/erpnext-git-github-for-open-source-hardware-call-for-beta-user-s/18006 ("ERPNext: Git / Github for Hardware de código aberto - ligue para usuários beta ")
fonte
Vale a pena pensar em qualquer descrição ascii de hardware. Uma vez que uma descrição legível por humanos para o hardware é adotada, qualquer sistema moderno de controle de revisão (RCS) funciona muito bem. Os layouts de circuito geralmente são totalmente descritos pelos arquivos Gerber; a UML descreve outras partes, que são descrições totalmente ascii. Existem formatos ASCII menos padrão para esquemas, layout mecânico e assim por diante (KiCAD, por exemplo).
A adoção é mais uma questão prática, requer um requisito reconhecido para um bom controle de revisão, incluindo uma diferença significativa. O que também significa muitas vezes abrir mão do Word, Excel, PowerPoint, etc. Um argumento muito difícil contra gerentes e MBAs, mas indiscutivelmente regulamentados setores como Dispositivos Médicos, Aviação e Militar, já exigem um bom controle de revisão.
Como outros já apontaram, o RCS mais moderno revisará os arquivos binários de controle, o que é muito útil para arquivar e identificar versões - mas qualquer sistema de gerenciamento eletrônico de documentos (EDMS), o Agile, por exemplo, pode atribuir um número de revisão a um binário arbitrário. Entediante.
fonte
Embora não seja gratuito e dificilmente livre de bugs, o Altium vault faz um excelente trabalho; Posso reverter facilmente para qualquer ponto de confirmação (como qualquer VCS deve fazer) com muita facilidade.
Nesta área, a Altium está muito à frente das ferramentas premium (Mentor e Cadence).
Eu não trabalho para Altium mas esta ferramenta, apesar dos problemas atuais, fazer hardware completa de versões muito simples.
fonte