TortoiseSVNの使い方です。(確認環境:Windows 10)
目次
仕組み | SVNのレポジトリと基本の操作 |
操作 | リポジトリからファイルをダウンロードする(チェックアウト) |
リポジトリからローカルに反映する(アップデート) | |
ローカルからリポジトリに反映する(コミット) | |
リポジトリの中を確認する | |
リポジトリとやり取りしたログを確認する | |
ローカルとリポジトリのファイルの差分を確認 | |
コンフリクト(競合)が発生した場合 |
SVNのレポジトリと基本の操作
チェックアウト(checkout)
レポジトリ(repository)は貯蔵庫という意味です。
プログラムのソースコードなどを配置し、バージョン管理を行います。
作業者は、「チェックアウト」で「レポジトリ」のファイル等の一式を「ローカル(作業コピー)」にダウンロードします。「チェックアウト」は、最初に1回のみ行います。
アップデート(update)とコミット(commit)
作業者は、「アップデート」で「レポジトリ」の変更されたファイルを「ローカル(作業コピー)」に反映します。
作業者は、「コミット」で「ローカル(作業コピー)」にある変更したファイルを「レポジトリ」に反映します。
コミットされたファイルはバージョンで管理され、変更した箇所がわかるようになっています。
アイコン
レポジトリとローカル(作業コピー)で内容が同じ場合は、緑のアイコンです。
ローカル(作業コピー)でファイルの内容を変更すると、赤のアイコンになります。
リポジトリからファイルをダウンロードする(チェックアウト)
1.任意の場所でフォルダを作成します。
このサンプルでは次のフォルダを作成しました。D:\Test1\svn1
2.対象のフォルダで右クリックして「SVNチェックアウト」をクリックします。
3.「リポジトリのURL」を入力し「チェックアウト先のディレクトリ」を確認しOKボタンを押します。
4.ファイルのダウンロードが始まります。終了するとOKボタンが押せるようになります。
5.以下は、チェックアウト完了後のフォルダ(D:\Test1\svn1の中)のイメージです。
trunkとbranchesとtags
trunkは、幹という意味です。最新のバージョンを格納します。
branchesは、枝という意味です。trunkとは別のバージョン管理ですすめる時に使用します。
tagsは、ある時点のものを保存します。リリースしたときのバージョンなどを置いておきます。
.svnは隠しフォルダです。
ローカル(作業コピー)のフォルダ一式(例:D:\Test1\svn1)が不要になったときはエクスプローラで削除して大丈夫です。レポジトリは削除されません。
リポジトリからローカルに反映する(アップデート)
チェックアウト後のローカルの更新は、アップデート(SVN更新)で行います。
1.対象のフォルダで右クリックし、「SVN更新」を行うとローカルが更新されます。
ローカルのファイルを削除してしまっても再度「SVN更新」をすればレポジトリからファイルをダウンロードできます。
ローカルからリポジトリに反映する(コミット)
ローカルで変更した結果をレポジトリに反映します。
サンプルとして新規でファイル(test3.txt)を作成しコミットします。
1.対象のフォルダで右クリックし、「SVNコミット」をクリックします。
2.コミットする対象のファイルの左端にチェックを入れて、OKボタンを押すとコミットされます。
メッセージの入力欄には、何のコミットかわかるように変更した箇所の説明を記述します。
例:〇〇プログラムの〇〇項目に必須チェックを追加
3.以下はコミットが完了した時の図です。リビジョンの数値が1つ上がります。
リポジトリの中を確認する
1.対象のフォルダで右クリックし、「TortoiseSVN」→「リポジトリブラウザー」をクリックします。
2.以下のようにリポジトリブラウザでリポジトリの中を確認できます。
リポジトリとやり取りしたログを確認する
1.対象のフォルダで右クリックし、「TortoiseSVN」→「ログを表示」をクリックします。
2.以下のようにログメッセージでリポジトリとやり取りしたログを確認できます。
ログは自分だけでなく他の人の操作も確認できます。
ローカルとリポジトリのファイルの差分を確認
1.比較したいファイルを右クリックして「TortoiseSVN」→「差分を表示」をクリックします。
※ローカルのファイルを修正し、ファイルに赤いアイコンが付いている状態とします。
2.以下のように差異がある部分を確認できます。左側がリポジトリで右側が作業コピーです。
コンフリクト(競合)が発生した場合
コンフリクト(競合)が発生するとコミットできません。
その場合は、ファイルのコードをコンフリクトしないように直接修正して再度コミットします。
コンフリクト時はどちらのコードを正とするかの判断が必要です。
関連の記事