하드웨어 프로젝트에 적합한 버전 관리 시스템에는 어떤 것이 있습니까? Google 코드, CVS 및 SVN에 해당하는 것이 있습니까? 이러한 버전 제어 시스템은 PCB 파일, 회로도 (펌웨어 코드 포함)와 관련된 하드웨어 프로젝트에 적합합니까?
하드웨어 프로젝트에 적합한 버전 관리 시스템에는 어떤 것이 있습니까? Google 코드, CVS 및 SVN에 해당하는 것이 있습니까? 이러한 버전 제어 시스템은 PCB 파일, 회로도 (펌웨어 코드 포함)와 관련된 하드웨어 프로젝트에 적합합니까?
답변:
기본적으로 모든 VCS 시스템은 텍스트 및 이진 파일을 정상적으로 처리 할 수 있습니다. 물론 바이너리를 병합 할 수는 없습니다.
따라서 CVS와 같은 쓸모없는 것을 사용하지 않는 한 모든 시스템에 적합합니다.
이전에는 Subium을 Altium과 함께 사용했습니다. 성공적으로 작동했지만 당시에는 diff 도구가 없기 때문에 버전 제어보다 코드가 유용하지 않았습니다. diff 기능이 없어도 여전히 가치가 있다고 생각합니다.
펌웨어의 경우 Subversion 또는 Git이 모두 좋습니다. 이전에 Git을 사용하지 않았다면 Subversion을 먼저 시도하십시오.
Altium은 최근 회로도 및 PCB를위한 diff 툴을 도입 했으므로 Subversion은 이제 EDA 벤더가 제품에 구축 할 수있는 일반적인 광기를 모듈화 할 것으로 예상됩니다.
나는 새로운 diff 도구를 사용하여 이것을 시험해보고자했다. 내가 할 경우, 예를 들어 여기에 리포지토리에 대한 링크를 게시해야합니다.
최신 정보
나는 이것을 시험해 보았고, 나는 Altium diff 도구에 약간 압도적이라고 말해야한다. 그것은 기능적이지만 보드 개정판 사이의 변화는 적어도 나에게는 그다지 유용하지 않을 정도로 충분합니다. 이것을 본 후에 diff 도구를 잊고 Github을 사용하기로 결정했습니다. 관심있는 경우 리포지토리가 있습니다 : https://github.com/rascalmicro/pcb
svn cp trunk/ tags/releaseX/
. 릴리스의 스냅 샷을 작성하는 데 사용 됩니다. 릴리스 간 변경 사항을 보려는 경우 releaseX / file 및 releaseY / file을 비교하거나 커미트 로그를 찾아보고 개별 변경 사항을 볼 수 있습니다. 브랜치는 커밋 범람을 모듈화하는 데 도움이됩니다.
Google Code를 사용 하여 전자 프로젝트 인 Super OSD 를 호스팅 합니다.
나는 gEDA 제품군을 독점적으로 사용하여 회로도와 PCB를 관리합니다. 유용하게도, gEDA는 Eagle과 같은 이진 얼룩 대신 회로도에 대한 텍스트 파일 (대부분 사람이 읽을 수 있지만 해석하기는 어렵지만)을 생성합니다. 예를 들어, 이것은 약 5 일이 지난 2 개의 회로도 와 방금 푸시 한 회로도의 차이 입니다. 실제로 텍스트 파일에서 많은 변경 사항을 볼 수는 없지만 특히 큰 재 작업, 단일 구성 요소 변경과 같은 상대적 변경을 표시 할 수 있으므로 이전 버전으로 돌아갈 수 있습니다.
트릭은 바이너리와 잘 작동하는 것을 사용하는 것입니다. 바이너리를 많이 사용하고 다른 바이너리와 공유하는 경우 해당 바이너리 파일에 잠금 메커니즘을 구현하는 것이 좋습니다. 우리는 바이너리 파일과 함께 Subversion을 사용하고 의미론을 잠그지 않고 바이너리 파일을 겹쳐 쓰거나 병합하지 않아 발생하는 다른 사람들과 공유하는 데 많은 문제를 겪었습니다. 해당 파일에 잠금 메커니즘을 추가하면 누가 이진 파일을 편집 / 변경했는지에 대한 통신상의 사람의 오류가 제거됩니다.
이전에 버전 관리 기능을 사용해 본 적이 없다면 각기 다른 방식으로 작업을 읽고 본인 및 / 또는 팀이 편안하게 사용할 수있는 요구 사항을 충족하는 방법을 선택하는 것이 좋습니다. 분산 버전 제어 시스템은 클라이언트-서버 시스템에 비해 많은 이점을 제공하지만 작업하기가 더 복잡한 경향이 있습니다.
왜 구글 코드 나 SVN 저장소를 사용하지 않습니까? 이것은 개정 관리 시스템입니다. 정의 된 용도가 없습니다. 여러 개발자가 소스 코드의 변경 사항을 모니터링하고 모니터링하는 데 매우 유용합니다.
이전에는 Subium을 Altium과 함께 사용했습니다.
SVN을 회로도 캡처를 위해 Altium 통합과 함께 사용합니다. 내 SchDoc 파일이 바이너리이기 때문에 diff 뷰어가 아무것도없는 것보다 낫다는 것을 말해야합니다. ToriumiseSVN과 병렬로 Altium Designer에 통합 된 SVN 클라이언트를 문제없이 사용합니다. Altium의 클라이언트는 SVN 기능 측면에서 약간 제한되어 있습니다. 거북이와 함께 "태그"를합니다.
내 의견은 Altium Designer 10 빌드 27009 및 버전 13.1 빌드 27559를 기반으로합니다.
실제 버전 제어 시스템은 아니지만 Dropbox는 파일 개정도 처리하므로 다른 OS의 다른 사용자가 사용할 수 있습니다. -가난한 망 버전 관리 시스템;)
나는 지난 주말에 San Mateo의 Maker Faire에 있었고 Up-Verter 라는 새로운 회사에서 담당자를 만났습니다 . 이들은 기본적으로 "클라우드"(예 : 브라우저)에서 실행되는 전자 CAD 도구를 구축하고 있으며 개념적으로 협업을 중심으로 구축되므로 병합 / 차이 및 일반적인 버전 관리 작업을 처리해야합니다.
아직 시도하지 않았지만 여전히 약간 녹색으로 보입니다 (실제로 pcb 레이아웃을 할 수는 없지만 회로도 만 생각합니다). 그러나 그것은 흥미 롭습니다. 그들은 Eagle 파일을 가져올 수 있다고 주장했는데 이는 플러스입니다.
또한 Element 14 텐트에서 Eagle 담당자와 대화를 나눈 후 XML 형식으로 전환하고 있음을 나타 냈습니다.이 형식은 회로도 및 레이아웃의 버전을보다 타당성있게 만드는 큰 단계입니다. !
Altium 좋은 소식!
Altium 은 Altium Designer 의 릴리스 정보 에서 볼 수 있듯이 Git 컨트롤 버전 에 대한 지원을 추가했습니다 .
사용 방법을 알려면이 버전 관리 사용 안내서를 따르십시오 .
이것은 실제로 매우 좋은 질문입니다. FPGA는 "하드웨어"범주에 속하므로 FPGA 프로젝트에 제안하는 버전 제어 친화적 인 프로젝트 구조에 관심이있을 수 있습니다.
http://www.saardrimer.com/fpgaproj/
아이디어와 개념이 다른 하드웨어 프로젝트에 일반적으로 쉽게 적용될 수 있다고 생각합니다. (이 제안에 대한 의견은 매우 환영합니다.)
자식을 피하십시오. 큰 리포지토리를 잘 처리하지 못합니다. 그리고 당신이하지 않으면 당신의 저장소가 커질 것입니다
그 길을 가기로 결정한 경우 Mercurial에 대한 훌륭한 소개 인 HgInit에 대한 링크를 추가하고 싶습니다. 개인적으로 Git을 사용하지만 아키텍처 측면에서 매우 유사합니다 (둘 다 분산 버전 제어 시스템 임). 분산 된 특성으로 인해 "분산 된"팀에서 일하기에 적합합니다. :)
OpenPLM은 적극적으로 개발되지는 않지만 찾고있는 내용의 일부 측면을 제공하는 것으로 보입니다 ( http://www.openplm.org/trac/discussion/topic/93 ).
아마도 https://discuss.erpnext.com/t/erpnext-git-github-for-open-source-hardware-call-for-beta-user-s/18006 ( "ERPNext : Git / Github for 오픈 소스 하드웨어 – 베타 사용자 요청 ")
이것은 하드웨어에 대한 ASCII 설명에 대해 생각할 가치가 있습니다. 하드웨어에 대한 사람이 읽을 수있는 설명이 채택되면 최신 개정 제어 시스템 (RCS)이 잘 작동합니다. 회로 레이아웃은 일반적으로 Gerber 파일에 의해 완전하게 설명되며 UML은 다른 부분을 설명하며 이는 완전 ASCII 설명입니다. 회로도, 기계적 레이아웃 등을위한 표준 아스키 형식이 더 적습니다 (예 : KiCAD).
채택은보다 실질적인 문제이며, 의미있는 차이를 포함하여 올바른 개정 관리에 대한 승인 된 요구 사항이 필요합니다. 이는 종종 Word, Excel, PowerPoint 등을 포기하는 것을 의미합니다. 관리자 및 MBA에 대한 매우 어려운 주장이지만, 의료 기기, 항공 및 군사와 같은 규제 산업은 이미 훌륭한 개정 관리가 필요합니다.
다른 사람들이 지적했듯이, 대부분의 최신 RCS는 버전 제어 이진 파일을 수정하여 버전을 보관하고 식별하는 데 매우 유용하지만 Agile과 같은 전자 문서 관리 시스템 (EDMS)은 임의의 이진에 개정 번호를 할당 할 수 있습니다. 지루한.
무료가 아니며 버그가 거의 없지만 Altium vault는 스털링 작업을 수행합니다. VCS가 해야하는 것처럼 커밋 지점으로 쉽게 롤백 할 수 있습니다.
이 영역에서, 알티 움은 방법 앞서 프리미엄 (멘토와 케이던스) 도구.
Altium 에서는 작동 하지 않지만 현재 문제에도 불구하고이 도구는 완전한 하드웨어 버전 관리를 매우 간단하게 만듭니다.