Solutions Overview: Helix Core Version Control System (2019.1)

バージョン管理の基礎

自分1人で文書の作業を行う場合、通常では最新版が最良の文書です。変更を行い、その文書を保存できます。保存するたびに、既存のコピーが上書きされます。大規模なグローバル分散チームで、数百または数千ものファイルがあるプロジェクトで作業するときには、状況が異なります。この場合、作成者と変更を追跡し、ユーザが同じファイルに競合する変更を行ったときに競合を解決することが重要です。バージョン管理システムがあると、この状況に対応できます。文書、ソースコード、Webサイト、オーディオファイルなどの大規模なデジタルアセットのコレクションへの変更を追跡および管理できます。

バージョン管理システムの1つの手法は、バージョン化です。保存時に前のバージョンのファイルを上書きするのではなく、保存されたファイルの各コピーのバージョンがバージョン化され、保存された順序を反映する数字または文字が割り当てられます。

連続するバージョン内でファイルバージョンを特定する他に、バージョン管理システムは自動的に特定の情報を各バージョンに関連付けます。これにより、変更者、変更日時、変更理由が記録されます。この情報は、プロジェクトの展開方法と特定の変更が行われた日時を理解するためにいつでも参照できる監査証跡を提供します。ファイルのバージョンは上書きされないため、バグが発生した場合、そのバグが発生した時点を特定できます。これは、再現できないバグの修正で重要になることがあります。また、ファイル履歴を確認し、特定の決定が行われた理由を理解すれば、プロジェクト参加者は作業を順調に進め、今後の方向性として適切なオプションを見つけることができます。

バージョン管理下のデータを共有するには、誰がデータにアクセスできるのか、2人のユーザが同じファイルを変更したときの競合の解決方法は何かを決定するために、一定レベルのゲートキーピングが必要です。このゲートキーピング機能をサポートするために、バージョン管理システムは、ファイルのチェックアウトおよびファイルのチェックインまたは送信の追加ステップを導入しました。

基本のバージョン管理ワークフローは次のようになります。

  1. バージョン管理下のアセットは、指定されたリポジトリに配置されます。
  2. アセットは、ユーザが読み取りまたは修正できる特定の権限に関連付けられています。
  3. ユーザはアセットの作業コピーをチェックアウトし、変更を行います。
  4. 別のユーザは同じアセットの作業コピーをチェックアウトし、変更を行います。
  5. 最初のユーザがローカル作業コピーの変更を保存し、そのコピーをチェックインします。
  6. 2番目のユーザがローカル作業コピーの変更を保存し、そのコピーをチェックインしようとします。
  7. バージョン管理システムは、同じアセットが並列して変更されたことを検出します。2番目のユーザに変更内容を最初のユーザの変更とマージすることを確認してから、2番目のユーザの変更をチェックインできます。変更の比較およびマージの作業は解決と呼ばれます。

このように、バージョン管理システムは変更が予測可能、管理可能、監査可能であることが保証されます。

バージョン管理システムは、従来から集中管理または分散管理のいずれかになっています。

  • 集中管理されたバージョン管理システムでは、ユーザは1つ以上のファイルをチェックアウトしてローカルで作業できる1つのリポジトリを使用します。
  • 分散バージョン管理システムでは、ユーザはリポジトリをローカルでホストし、相互に独立して作業し、必要に応じてマージすることで作業を統合できます。

Helixサーバでは、両方のモデルをサポートしているほか、これらのハイブリッドモデルもサポートしています。

バージョン管理システムは、スタンドアロンアプリケーションとして使用するか、ツールによって作成されたアセットを管理する手段として、開発ツールや作成ツールに統合できます。