バージョン管理と設計レポジトリ

現在、バージョン 2.1. をご覧頂いています。最新情報については、バージョン バージョン管理と設計レポジトリ の 4 をご覧ください。
Applies to NEXUS Client versions: 2.1 and 3.0

This documentation page references Altium NEXUS/NEXUS Client (part of the deployed NEXUS solution), which has been discontinued. All your PCB design, data management and collaboration needs can now be delivered by Altium Designer and a connected Altium 365 Workspace. Check out the FAQs page for more information.

 

電子製品の構築や編集環境の一番の利点は、簡単にファイルを作成し編集できることです。この特徴はアイデアをすぐに作画、調査、完成させることができることを意味しますが、同時にソースコードや電子設計データなど貴重なファイルに加えられた変更の履歴の追跡が困難になることを意味します。

ファイルに加えられた変更の履歴を追跡したいという要求、および電子的な形式で捕らえられたソースを体系的に管理したいという要求に応えるため、バージョンコントロール システム (VCS) が生まれました。バージョンコントロール システムは、ファイルのさまざまなバージョンの履歴を保存できるだけでなく、該当ファイルのあらゆるレビジョンを開けるよう対応し、いずれか2つのバージョンのファイルに加えられた変更を比較するソフトウェア ツールです。VCSは、付加的なバージョン管理機能、およびフォルダとファイルのオペレーション機能の提供により、一般的にローカルのオペレーティング・システム (OS) と統合できます。

バージョンコントロール システムは、ファイルを作成するために使用する編集環境と独立して操作することができます。このシステムは、主要なストレージ領域であるリポジトリへのファイルの追加とコミット、リポジトリから作業フォルダへファイルをコピーするためのチェックアウト機能、リポジトリに加えられたあらゆる変更をチェックバックするコミット機能、変更に関する情報を記録する方法、その他の様々な機能を可能にするインターフェースを標準で備えています。

上記の機能は、TortoiseクライアントなどのWindowsシェル拡張機能にもありますが、Altium NEXUS自体にも含まれています。VCSオペレーションは、OSファイルシステムにアクセスしないで、Altium NEXUS環境内で実行することができます。

一般的にバージョンコントロール システムは、複数の人によってファイルがチェックアウト、および改訂され、その後に変更を相互にチェックすることができるために、設計者の作業が最新のレビジョンにおいて失われる恐れのある状況をも取り扱います。このような要求に対処するためには、差分を発見するためにバージョンを比較するツール、およびファイルの1つのバージョンへ戻って差分を統合するインタラクティブツールが求められますが、Altium NEXUSではこのようなPCB共同作業機能を利用できます。

バージョンコントロール システムで使用する専門用語を理解することは役立ちます。膨大な数のシステムが利用可能ですが、一般的にどのシステムも機能性を記述するために類似した用語を用いています。

バージョンコントロールの要点

バージョンコントロール システム (VCS) を用いて作業する基本的な方法は、作業したいと思うプロジェクトファイルのコピーにリポジトリからアクセスし、Altium NEXUS内でファイルを編集し、その後、改訂されたファイルをリポジトリ内にバックして”コミット”することです。リポジトリとのやりとりは、バージョンコントロール システムのインターフェース (Altium NEXUSに内蔵されたStorage Managerパネル、およびProjectsパネル) を通して実行します。

バージョンコントロール システムの動作する方法の鍵は、リポジトリからアクセスするファイルの状態を作業フォルダを通して監視することにより、どのレビジョン上で作業が進んでいて、改訂がなされているかどうかを追跡することにかかっています。結果は同一であっても、リポジトリ、および作業ファイルの取り決めはバージョンコントロール システムのタイプによって異なります – Altium NEXUSでは、Subversion (SVN)、あるいはGitの場合があります。

  • Subversion VCS

    下図は、一連の設計ファイルのレビジョン (最大でレビジョン5まで) を、作業フォルダ内の最新のコピーチェックアウト (File » Check Out) と共に維持する、Subversionリポジトリの概念を表します。作業フォルダ内のファイルをAltium NEXUS環境内で開いたとき、Alium DesignerはプロジェクトファイルがSVNバージョンコントロール下にあると認識し、現在のバージョンコントロールの状態はStorage Manager、およびProjectsパネルの両方に表示されます。
    Concept image showing how the files are managed by the Subversion Version Control System
  • Git VCS

    下図は、そのコンテンツをローカルの作業Gitリポジトリにコピーされる‐一般的にはリモートリポジトリのコピー、または作業リポジトリにデータを取り出すことにより、一連の設計ファイルのレビジョン (最大でレビジョン5まで) を、作業フォルダ内の最新のコピーチェックアウト (File » Check Out) と共に維持する、リモートGitリポジトリの概念を表します。作業リポジトリ内のファイルがAltium NEXUS環境で開かれるとき、Altium NEXUSはプロジェクトファイルがGitバージョンコントロール下にあると認識し、現在のバージョンコントロールの状態はStorage Manager、およびProjectsパネルの両方に表示されます。
    ► 詳しい情報は、Add To Git Version Control and Clone a Git repositoryをご覧ください。
    Concept image showing how the files are managed by the Git Version Control System

上記の両方のVCSシステムでは、ソースリポジトリと作業場所間のリンクは、後者のVCSデータベース (.svn、または.gitシステム フォルダ) で参照されます。

► Altium NEXUS内でのSVN、およびGitバージョンコントロール システムの使用に関するさらに詳しい情報は、Using Version Controlをご覧ください。

VCS作業ファイルをAltium NEXUSで開いたとき、Storage Managerパネル (および、Projectsパネル) 内で右クリックして表示されたメニューで、変更されたファイルの主要リポジトリ (SVN)、あるいは作業リポジトリ (Git) へのコミットなど、標準のVCSの動作を実行することができます。

Commitコマンドは更新されたファイルをリポジトリに登録し、レビジョン番号 (VCS内部に保管される) を増やし、ファイルに加えられた変更を記述するために入力されるメッセージのログを取り、Subversionの場合、主要リポジトリ内にファイルのコピーを保管します。Gitの取り決めにおいて、更新されたファイルは、Pushコマンドを用いていつでも作業リポジトリからリモートリポジトリにコピーすることができます。

Altium NEXUSバージョンコントロールのインターフェースは、より多くのオプションが利用可能な、Projectsパネル、あるいはStorage Managerパネルから直接、アクセスすることができます。
Altium NEXUSバージョンコントロールのインターフェースは、より多くのオプションが利用可能な、Projectsパネル、あるいはStorage Managerパネルから直接、アクセスすることができます。

Altium NEXUS内で利用可能なSVN、およびGitバージョンコントロール両方の機能は、それぞれの拡張機能VCSプロバイダ - SVN、およびVCSプロバイダ - Gitにより有効化されます。これらの機能はデフォルトでインストールされ、ソフトウェアのExtension & Updates画面を通してアクセスすることができます。

複数ユーザーのアクセス

大部分の企業向けバージョンコントロールのインフラストラクチャは、主要サーバベースのSVN、あるいはGitリポジトリをベースとしており、利用可能なプロトコルメソッド– svnsvn+sshhttpsなどの一つを使用するネットワーク上で動作します。これにより全ユーザーにネットワークへのアクセス、サーバベースの許可を条件として、単一管理ソースからの共同プロジェクト開発用の伝達手段を提供します。

次に、複数のアクセス機能は異なるチームメンバーに一つのプロジェクトでの独立した作業の継続を可能にし、当該ファイル上での作業が可能になる前に他の誰かがファイルをチェックして戻すのを待つ必要がありません。集中管理型Gitバージョンコントロール システムは、作業中にファイルをローカル作業リポジトリへコミットし、これらのコミットされた変更を後で主要Gitリポジトリに戻す ’Push’ することで (そのため、それ以降、ネットワークに接続する必要はありません)、この利点を更に活用できます。

しかしながらチームとしてVCSを使用するためには、2人のユーザーが同一ファイルを改訂するという避けがたい状況を解決するツールとテクニックを必要とします。このようなツールとテクニックが利用できれば、この基盤において、複数ユーザーによる設計共同作業、および関連した利点を本当の意味で活用できるようになります。

この状況を対応するため、Altium NEXUSには、Storage Manager、およびCollaborate, Compare and Mergeパネルを通して利用できる、回路図とPCBを比較する (あるいは、'差') 機能が含まれています。Altium NEXUSは、エディタ内でファイルの統合差分を見て解決し、最終的にVCS内で新たなHeadリビジョンを作成するための、洗練されたPCB設計共同作業機能を提供しています。最新のPCB共同作業機能により、複数ユーザー間でのライブの設計共同作業が可能になり、ユーザーの設計作業領域を定義、および割当も行えます。

► バージョンコントロールをAltium NEXUS内でプロジェクト設計に適用するためのガイドは、Using Version Controlをご覧ください。

VCSリポジトリ

バージョンコントロールを使用する前に、プロジェクトファイルはVCS、およびAltium NEXUSの両方によって認識されなければなりません。このプロセスは様々なVCSメソッドやアプリケーションによって異なる可能性がありますが、必然的にデザインリポジトリの作成、および/またはそこへの接続、および該当リポジトリへのデザインプロジェクトファイルの追加を必要とします。

デザインリポジトリはデータベース構造を基礎としており、ファイルとフォルダの階層構造の情報を内部的に保管し、ファイルツリーとして参照します。実際に接続するリポジトリは主要SVNリポジトリ、(リモートGitリポジトリと関連付けられる) Git作業リポジトリ、あるいはローカルPCや共有ネットワークの場所などアクセス可能な場所に作成したリポジトリになります。

リポジトリのタイプによって、以下のものを含む各種プロトコルを通してアクセスが可能です:

  • 通常は、ローカル、あるいはネットワークベースのリポジトリに用いる、伝統的ファイルアクセス。
  • プレーンテキスト、TCP/IP – あるいはセキュアsvn+sshと同等のものを使用する、サーバベースのリポジトリへのsvnプロトコル。
  • 一般的に、WebDAV over http – あるいはセキュアhttpsと同等のものを使用する、サーバベースのリポジトリへのhttpメソッド。

Subversion (SVN) リポジトリは、PreferencesダイアログのData Management – Design Repositoriesページで、必要な場合に接続、作成できます。

  • GitタイプのリポジトリはAltium NEXUSの外部に作成され、ローカル作業Gitリポジトリの内容は、開いているファイルによってそのホストフォルダからアクセスします。
  • リモート、およびローカル両方の作業Gitリポジトリの管理は、標準で企業システム、および外部Gitツールを通して行われ、その際にファイルレベルの操作 (Commit、Push、Update等) はAltium NEXUSの編集環境内で扱われます。
  • Altiumの管理されたコンテンツサーバ内の管理されたプロジェクトを使用すると、リポジトリ管理は自動的に取り扱われます。

SVNリポジトリへの接続

既存のSVNデザインリポジトリに接続するには、PreferencesダイアログのData Management – Design Repositoriesページにある Connect To button, click to access the SVN Design Repository dialog ボタンを使用して、SVN Design Repositoryダイアログを開きます。ここで、デザインリポジトリのプロパティを設定でき、リポジトリ接続、およびデザインファイルのチェックアウト用ターゲットフォルダパスのローカル名を定義することが可能になります。

既存のSVNリポジトリがAltium NEXUSに登録されているとき、デザインファイルをSubversionのバージョンコントロール下に置くことが可能になります。
既存のSVNリポジトリがAltium NEXUSに登録されているとき、デザインファイルをSubversionのバージョンコントロール下に置くことが可能になります。

ダイアログのRepositoryオプションは、利用できるリポジトリの場所、オプションのサブフォルダ、および接続用の互換性プロトコルメソッドに適合するように構成する必要があります。svn、およびhttpアクセスメソッドは、ホストサーバ、およびそのアクセス資格証明書に関連した付加的情報が必要なことに注意してください。

この接続プロセスは、Altiumの管理されたコンテンツサーバで利用できるリポジトリでは要求されません。Altium NEXUSは、ユーザーがそのサーバにサインインすると、自動的にサーバが管理するSVN/Gitリポジトリに接続します。Accessing a Server from Altium NEXUSをご覧ください。

さらに詳しい情報は、以下をご覧ください:
PreferencesダイアログのData Management – Design Repositoriesページ。
SVN Design Repositoryダイアログページ。

SVNリポジトリの作成

ローカルSVNデザインリポジトリを作成するには、PreferencesダイアログのData Management – Design Repositoriesページに行き、 Create New button, click to access the Create SVN Design Repository dialog ボタンを使用してCreate SVN Design Repositoryダイアログを開きます。

ダイアログには、様々な構成オプションがあり、リポジトリのフォルダの場所とメソッド (接続プロトコル)、およびデザインファイルのチェックアウト用のローカル接続名とターゲットフォルダパスを定義できます。svn、およびhttpへアクセスするには、ホストサーバ、およびそのアクセスに関連するその他の情報が必要なことに注意してください。詳細については、上記リンクをご覧ください。

命名されたVCSリポジトリとして構成されるローカルフォルダの指定、または作成。命名されたVCSリポジトリとして構成されるローカルフォルダの指定、または作成。

インストールされたVCSシステムは、正確なバージョンコントロール ファイル階層、およびデータベースを、指定したリポジトリフォルダ内に作成します。一旦、作成、および登録すると、新たなリポジトリが接続され、PreferencesダイアログのData Management – Design Repositoriesページにリスト表示されます。 Dialog OK button、または Dialog Apply buttonをクリックして変更を確定します。

VCSリポジトリを作成するプロセス (従来の外部の (独立した) VCSクライアントを使用) は、Preferencesダイアログで直接、行うことができます。

VCSリポジトリを作成するプロセス (従来の外部の (独立した) VCSクライアントを使用) は、Preferencesダイアログで直接、行うことができます。

SVNリポジトリの使用

Altium NEXUSで利用できる新しい、あるいは既存のデザインリポジトリにより、Storage ManagerProjectsパネル、およびメインメニューのコマンドを使用して、リポジトリからプロジェクトデザインファイルを追加、および取得 (チェックアウト) することができます。リポジトリファイルはバージョンコントロール下にあるため、すべてのデザイン改訂は追跡され、Altium NEXUSからアクセスすることができます。

Storage Manager、またはProjectsパネル内で、プロジェクト名を右クリックして表示されるメニューを使用して、プロジェクトフォルダ (および、その構成要素であるデザインファイル) をバージョンコントロールへ追加して、コミットすることができます – Version Control » Add Project Folder to Version Control

Add to Version Control dialog, used to add documents to the VCS repository 

その他にも、新規プロジェクトは、Create Projectダイアログ (File » New » Project) を作成している時、バージョンコントロールに追加することができます。ダイアログの左にあるLocationsリスト内のVersion Controlを選択し、Repositoryのドロップダウンメニューの登録オプションからターゲットリポジトリを選んでください。

Create Project dialog, showing how a new version-controlled project can be created

Create ProjectダイアログのLocal Storageオプションでは、プロジェクトの作業コピーを保存する場所を定義します。これらのファイルは、Altium NEXUSで開いて編集され、編集が完了すると新しいレビジョンとしてリポジトリへコミット (チェックイン) されます。プロジェクトの作業コピーは、File » Open Projectコマンド、またはFile » Recent Projectsリストを使用して再度、開いて編集できます。

下図のように、必要に応じて、プロジェクトの新しいインスタンスを新しい作業フォルダへチェックアウトし、File » Check Outコマンドを使用してAltium NEXUSに読み込むことができます。

互換性のあるVCSリポジトリがAltium NEXUSでアクセス可能になると、デザインファイルは、リポジトリへの追加やリポジトリからのチェックアウトが可能になります。
互換性のあるVCSリポジトリがAltium NEXUSでアクセス可能になると、デザインファイルは、リポジトリへの追加やリポジトリからのチェックアウトが可能になります。

Altiumの管理されたコンテンツサーバ VCS

バージョンコントロール下のプロジェクト作業の非常に高度な形態は、Altiumの管理されたコンテンツサーバの機能を利用することです。管理されたコンテンツサーバは、管理されたプロジェクトの高度な構成を提供します (簡素化されたワークフロー、ライフサイクル管理、拡張された共同作業機能等を提供します)。

管理されたコンテンツサーバ内のVCSリポジトリは、サーバ、およびAltium NEXUS (サインイン時) の両方と緊密に統合され、独立したVCSリポジトリを設定、および構成する必要がなくなります。ユーザー/グループのアクセス、リポジトリ内容、およびプロジェクトの状態は、サーバのブラウザ インターフェースを通して管理することが可能です。

管理されたプロジェクトの詳細については、以下をご覧ください:
Managed Projects and Releasing a Design
Working with a Managed Content Server

その他の情報

Version Control Terminology

References

Content