Svn-life-cycle

提供:Dev Guides
移動先:案内検索

SVN-ライフサイクル

この章では、バージョン管理システムのライフサイクルについて説明します。 後の章で、各操作のSubversionコマンドを確認します。

リポジトリを作成:

リポジトリは、開発者がすべての作業を保存する中心的な場所です。 リポジトリには、ファイルだけでなく、変更に関する履歴も保存されます。 つまり、ファイルに加えられた変更の履歴を保持します。

「作成」操作は、新しいリポジトリを作成するために使用されます。 ほとんどの場合、この操作は1回だけ実行されます。 新しいリポジトリを作成するとき、VCSは、リポジトリを作成する場所やリポジトリに付ける名前など、リポジトリを識別するために何かを言うことを期待します。

チェックアウト

「チェックアウト」操作は、リポジトリから作業コピーを作成するために使用されます。 作業コピーは、開発者が変更を行い、後でこれらの変更をリポジトリに送信するプライベートな職場です。

更新

名前が示すように、「更新」操作は作業コピーを更新するために使用されます。 この操作により、作業コピーとリポジトリが同期されます。 リポジトリはすべてのチームで共有されるため、他の開発者は変更をコミットでき、作業コピーは古くなります。

_Tom_と_Jerry_がプロジェクトに取り組んでいる2人の開発者であるとします。 どちらもリポジトリから最新バージョンをチェックアウトし、作業を開始します。 この時点で、それらの作業コピーはリポジトリと完全に同期されます。 _Jerry_は作業を非常に効率的に完了し、変更をリポジトリにコミットします。

_Tom’s_作業コピーは古くなっています。 更新操作により、_Jerryの最新の変更がリポジトリから取得され、_Tomの作業コピーが更新されます。

変更を実行

チェックアウト後、さまざまな操作を行って変更を実行できます。 編集は最も一般的な操作です。 既存のファイルを編集して、ファイルの内容を追加/削除できます。

ファイル/ディレクトリを追加できます。 ただし、これらのファイル/ディレクトリはすぐにリポジトリの一部にはならず、代わりに保留中の変更リストに追加され、コミット操作後にリポジトリの一部になります。

同様に、ファイル/ディレクトリを削除できます。 削除操作は、作業コピーからファイルをすぐに削除しますが、ファイルの実際の削除は保留中の変更リストに追加され、コミット操作後にリポジトリに変更が加えられます。

「名前変更」操作は、ファイル/ディレクトリの名前を変更します。 「移動」操作は、リポジトリツリー内のある場所から別の場所にファイル/ディレクトリを移動するために使用されます。

変更を確認

作業コピーをチェックアウトするか、作業コピーを更新すると、作業コピーはリポジトリと完全に同期されます。 しかし、作業コピーに変更を加えると、リポジトリよりも新しくなります。 また、「コミット」操作の前に変更を確認することをお勧めします。

「ステータス」操作には、作業コピーに加えられた変更がリストされます。 前述したように、作業コピーで変更を行うと、これらの変更はすべて保留中の変更リストの一部になります。 また、「ステータス」操作は、保留中の変更リストを表示するために使用されます。

「ステータス」操作では、変更のリストのみが提供され、それらの詳細は提供されません。 _diff_操作を使用して、作業コピーに加えられた変更の詳細を表示できます。

間違いを修正

作業コピーに変更を加えたが、今、彼はこれらの変更を破棄したいとします。 この状況では、「元に戻す」操作が役立ちます。

元に戻す操作は、作業コピーに加えられた変更を元に戻します。 1つ以上のファイル/ディレクトリを元に戻すことができます。 また、作業コピー全体を元に戻すこともできます。 この場合、「元に戻す」操作は保留中の変更リストを破棄し、作業コピーを元の状態に戻します。

競合の解決:

マージ時に競合が発生する可能性があります。 「マージ」操作は、安全に実行できるすべてを自動的に処理します。 それ以外はすべて競合と見なされます。 たとえば、_ "hello.c" _ファイルはブランチで変更され、別のブランチで削除されました。 このような状況では、人が決定を下す必要があります。 「解決」操作は、ユーザーが状況を把握し、競合を処理する方法についてVCSに通知するために使用されます。

変更をコミット

「コミット」操作は、作業コピーからリポジトリに変更を適用するために使用されます。 この操作によりリポジトリが変更され、他の開発者は作業コピーを更新することでこれらの変更を確認できます。

コミットする前に、ファイル/ディレクトリを保留中の変更リストに追加する必要があります。 これは、変更がコミットされるのを待つ場所です。 コミットでは、通常、誰かが変更を加えた理由を説明するログメッセージが提供されます。 このログメッセージは、リポジトリの履歴の一部になります。 コミットはアトミック操作です。つまり、コミット全体が成功するか、ロールバックされます。 ユーザーは、コミットの途中で終了することはありません。