ハードウェアプロジェクトに適したバージョン管理システムにはどのようなものがありますか?Google Code、CVS、SVNに相当するものはありますか?このようなバージョン管理システムは、PCBファイル、回路図などのハードウェアプロジェクトに適していますか?(ファームウェアコードも)?
ハードウェアプロジェクトに適したバージョン管理システムにはどのようなものがありますか?Google Code、CVS、SVNに相当するものはありますか?このようなバージョン管理システムは、PCBファイル、回路図などのハードウェアプロジェクトに適していますか?(ファームウェアコードも)?
回答:
基本的に、すべてのVCSシステムはテキストおよびバイナリファイルを適切に処理できます。もちろん、バイナリをマージすることはできません。
したがって、CVSのような古いものを使用していない限り、どのシステムでも十分です。
以前、AltiumでSubversionを使用しました。正常に機能しましたが、当時はdiffツールがなかったため、コードを使用したバージョン管理よりも有用性が低くなりました。diff機能がなくても、まだやりがいがあると思います。
ファームウェアについては、SubversionまたはGitの両方が優れています。Gitを使用したことがない場合は、最初にSubversionを試してください(後でGitの学習が難しくなりますが)。
Altiumは最近、回路図とPCBのdiffツールを導入しました。そのため、EDAベンダーが製品に組み込むことを管理している通常の狂気を除けば、Subversionは素晴らしいものになると思います。
新しいdiffツールでこれを試してみるつもりでした。その場合は、例としてレポへのリンクを忘れずに投稿してください。
更新
私はこれを試してみましたが、Altium diffツールには少し困惑していると言わざるを得ません。機能的ですが、ボードのリビジョン間の変更は十分に大きいため、少なくとも私にとってはそれほど有用ではありません。これを見て、diffツールを忘れてGithubを使用することにしました。興味のある方はこちらをご覧ください:https : //github.com/rascalmicro/pcb
svn cp trunk/ tags/releaseX/
リリースのスナップショットを取るために使用されます。リリース間の変更を確認する場合は、releaseX / fileとreleaseY / fileを比較するか、コミットログを参照して個々の変更を確認できます。ブランチは、コミットのフラッドをモジュール化するのに役立ちます。
Google Codeを使用して、私の電子プロジェクトであるSuper OSDをホストしています。
回路図とPCBの管理には、gEDAスイートのみを使用しています。便利なことに、gEDAは、EagleのようなバイナリBLOBの代わりに、回路図用のテキストファイル(ほとんどは人間が読める形式ですが、解釈が難しい)を生成します。たとえば、これは2つの回路図の差分で、1つは約5日前のもの、もう1つは私がプッシュしたものです。テキストファイルの実際の変更をあまり見ることができないため、特に有用ではありませんが、相対的な変更(つまり、大幅な手直しと単一コンポーネントの変更)を示すことができ、以前のバージョンに戻ることができます。
トリックは、バイナリでうまく機能するものを使用することです。バイナリを頻繁に使用して他の人と共有している場合は、それらのバイナリファイルにロックメカニズムを実装すると有益な場合があります。バイナリファイルでSubversionを使用し、セマンティクスのロックとバイナリファイルの上書き/マージの不足のために発生した他のユーザーとの共有に関する多くの問題に遭遇しました。これらのファイルにロックメカニズムを追加すると、バイナリファイルを編集/変更したユーザーに関するコミュニケーションのヒューマンエラーがなくなります。
以前にバージョン管理を使用したことがない場合は、それらがどのように機能するかを読んで、自分やチームが満足できるニーズを満たすものを選択することをお勧めします。分散バージョン管理システムは、クライアント/サーバーシステムよりも多くの利点を提供しますが、操作がより複雑になる傾向があります。
Google CodeまたはSVNリポジトリを使用しないのはなぜですか?これはリビジョン管理システムです。定義された使用法はありません。複数の開発者やソースコードの変更を監視するのに非常に便利です。
以前にAltiumでSubversionを使用したことがあります。
スケマティックキャプチャにAltium統合でSVNを使用しています。それはうまく機能します。私のSchDocファイルはバイナリであるため、diffビューアは何もないよりも優れていると言わなければなりません。Altium Designerに統合されたSVNクライアントをTortoiseSVNと並行して問題なく使用しています。Altiumのクライアントは、SVN機能に関して少し制限されています。Tortoiseで「タグ」を実行します。
私の意見は、Altium Designer 10ビルド27009およびバージョン13.1ビルド27559に基づいています。
実際のバージョン管理システムではありませんが、Dropboxはファイルのリビジョンも処理し、異なるOSの異なる人々が利用できるようにします。-貧乏人バージョン管理システム;)
先週末、サンマテオのMaker Faireにいましたが、Up-Verterという新しい(私にとって)会社の担当者に会いました。。彼らは基本的に「クラウド」(つまりブラウザ)で実行され、概念的にコラボレーションを中心に構築される電気CADツールを構築しているので、マージ/差分や通常のバージョン管理に対処する必要があります。
私はまだ試していませんが、まだ少し緑色に見えます(実際にはPCBレイアウトができるとは思わないで、回路図だけです)が、ちょっとおもしろいです。Eagleファイルをインポートできると主張しましたが、これはプラスです。
また、Element 14テントでEagleの担当者と話をしましたが、彼らはXML形式に移行していることを示しました。これは、回路図とレイアウトのバージョン管理をより妥当なものにするための大きな一歩です。 !
Altiumの朗報!
Altium Designerのリリースノートで見ることができるように、AltiumはGitコントロールバージョンにサポートを追加しました。
使用方法を知るには、この「バージョン管理の使用ガイド」に従ってください。
これは確かに非常に良い質問です。FPGAは「ハードウェア」のカテゴリに分類されるため、FPGAプロジェクトに提案するバージョン管理に適したプロジェクト構造に興味があるかもしれません。
http://www.saardrimer.com/fpgaproj/
アイデアやコンセプトは、他のハードウェアプロジェクトにも、一般的には簡単に適用できると思います。(この提案に関するコメントは大歓迎です。)
gitは避けてください。大規模なリポジトリをうまく処理できません。そして、あなたがいない限りリポジトリは大きくなります
HgInitへのリンクを追加したいと思います。HgInitは、そのルートを選択する場合にMercurialの優れた紹介です。個人的には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オープンソースハードウェア-ベータユーザーを募集」
これは、ハードウェアのアスキー記述について考える価値があります。ハードウェアの人間が読める記述が採用されると、最新のリビジョン管理システム(RCS)は非常にうまく機能します。通常、回路レイアウトはガーバーファイルによって完全に記述され、UMLは他の部分を記述します。これは完全にASCIIの記述です。回路図、メカニカルレイアウトなど(たとえば、KiCAD)には、あまり標準ではないASCIIフォーマットがあります。
採用はより実用的な問題であり、意味のある差分を含む、適切な改訂管理のための認識された要件が必要です。これは、多くの場合、Word、Excel、PowerPointなどを放棄することも意味します。管理者やMBAに対する非常に難しい議論ですが、医療機器、航空、軍などのほぼ間違いなく規制されている業界には、すでに適切な改訂管理が必要です。
他の人が指摘しているように、最新のRCSのほとんどは、バージョンのアーカイブと識別に非常に役立つバイナリファイルのリビジョン管理を行いますが、電子文書管理システム(EDMS)、たとえばアジャイルは、任意のバイナリにリビジョン番号を割り当てることができます。退屈な。