ソースバージョン管理「TortoiseSVN」のフロントエンドを詳細解説

ソースバージョン管理はなにでやってますか? GitHubでしょうか? 私が使っているのはもっとシンプルなSubversionです。WindowsのグラフィカルユーザーインターフェースとしてTortoiseSVNを使ってます。直接コマンド入力しなくてもマウスで使えるので便利です。
subv_tortoisesvn-01.png photo
Initializing...

SubversionとTortoiseSVN

SubversionはLinux上またはWindowsサーバー上で動くソースバージョン管理に特化したプログラムです。ソース管理をするデータベースは、リポジトリといいLinuxサーバー上に置いています。リポジトリは、複数作ったりサーバーを引っ越しすることもできます。通常、WindowsパソコンにTortoiseSVNというクライアントプログラムをインストールして使います。本稿では、チャックインやチェックアウトみたいな“基本的な使い方”を紹介し、後半には、特定リビジョンへの更新という“Tips的なコマンド”を紹介し、一度ローカルに作ってしまうと構成が硬直的になってしまうソース管理フォルダーをいかにして柔軟に使うかを紹介します。

shape-2019-10-09_003.jpg photo

チェックインとチェックアウト

ソース管理するには、サーバーのリポジトリにソースを登録することをチェックインといい、使う(編集)する場合は、クライアント上にソースを持ってきて編集します。これをチェックアウトといいます。編集が終了すれば再び再チェックインすることで最新のソースが保存されます。

チェックイン毎に作成されるログをみて以前のバージョンに戻したり、途中からソースを分岐したり逆に分岐したソースを併合するためにマージをおこなうこともできます。少し大きめのプロジェクトの場合は、主系でメインの開発をおこない、分岐した傍系のソースでテストをやったりベータ版の開発をし、終了した時に主系のソースとマージといった使い方をします。もっとも大きなプロジェクトではこの分岐も複数散在させることもありますね。

なにも1つだけのソースでなくてもかまいません。バージョンを戻す場合等はフォルダー(サブフォルダーを含む)単位でも可能です!

インストール

ここでは簡単にインストールするためのソースのダウンロードサイトの紹介をしておきます。

Subversionの本体のダウンロードサイトは、

現在は同時に3つのバージョンをリリース中で、1.12、1.10、1.9です。Subversionは、現在Apachプロジェクトの一部となっており、Apacheサイトまたはミラーサイトからソースをダウンロードします。

ダウンロードサイト

Download Apache Subversion Sources
画像を拡大表示する
Subversionのダウンロードサイト
Subversionのダウンロードサイト

TortoiseSVNのダウンロードサイトは、

こちらは,WindowsクライアントとしてのTortoiseSVNプログラムのダウンロード。注意点としては、本体のSubversionのバージョンとあまり変わらないものを選ぶこと。64Bitか32bitなのかも注意してインストールしてください。本体は英語で書かれていますが、語パッチあてることで日本語化することも可能です。

ダウンロードサイト:

Downloads · TortoiseSVN
download TortoiseSVN
画像を拡大表示する
TortoiseSVNダウンロードサイト
TortoiseSVNダウンロードサイト

1.9系については、現在公式サイトからはダウンロードできません。他のミラーサイトよりダウンロードしてください。

SubversionとTortoiseSVNのインストールについては、以下の記事を書いていますので、こちらの記事も参考にしてみてください。

さぁ、インストールが無事にすんだらWindowsのTortoiseSVNクライアントプログラムでチェックインやチェックアウト等の実務を学びましょう。

基本操作編

最初に必要なのはチェックインです。以下に示す画面は、Windows10条にTortoiseSVNをインストールしたものです。さらにすべてはWindowsエクスプローラからおこないますが、Windowsエクスプローラには、QTTabBarをインストールしていますので、あなたのWindowsエクスプローラと多少イメージが異なっているかもしれませんが、たいたいの操作イメージはつかめると思います。

チェックイン

チェックインとはどういったことだったでしょうか? 覚えていますか。上記に書いていますが、チェックインとは、ソースまたはソースを含むフォルダーをリポジトリ(データベース、以下はすべてリポジトリに統一)に登録することです。リポジトリをホテル、ソースを自分と考えればチェックインのイメージがわくかもしれません。

チェックインするには、対象にするソースまたはフォルダーの1つ上のフォルダー上で右クリック。表示されたポップアップメニューのインポートを選択。

画像を拡大表示する
インポートをクリック

次に、ログメッセージを入力してから、OKボタンをクリック。

画像を拡大表示する
”コメントの追加とインポート確認”を説明する図
コメントの追加とインポート確認

チェックアウト

これでリポジトリ登録が済みましたので、早速チェックアウトします。リポジトリには、sourcesというフォルダーが登録されていますので、このフォルダーを置きたいWindows上のフォルダーにて、空白部分を右クリックしてポップアップメニューを表示。ポップアップメニューからSVNチェックアウトをクリック。

画像を拡大表示する
”チェックアウトをクリック”を説明する図
チェックアウトをクリック

リポジトリー画面に左部分をみて、sourceフォルダーが選択されていることを確認してください。確認できたら画面下のOKボタンをクリック。

画像を拡大表示する
”対象を確認”を説明する図
対象を確認

下記の画面は、単なる確認です。そのままOKボタンをクリック。下記赤線で指定したC:\temporary_src\sourcesフォルダーは新規に作成されます。既に存在する場合はエラーとなります。

画像を拡大表示する
”チェックアウトの確認”を説明する図
チェックアウトの確認

Windowsエクスプローラに戻りましょう。下記のように今チェックアウトされたsourcesフォルダーができていますね。またアイコンの変化にも着目してください。

画像を拡大表示する
”ソース管理下にあるファイルのアイコンは変わります”を説明する図
ソース管理下にあるファイルのアイコンは変わります

追加

既にソース管理されているフォルダー下に、readme.txtというファイルとnew1というフォルダーも一緒に追加してみましょう。new1フォルダーには、new1_readme.txtを含みます。

対象のファイル上で、右クリック。ポップアップメニューから追加を選びます。

画像を拡大表示する
”ポップアップメニューから追加を選択”を説明する図
ポップアップメニューから追加を選択

今追加したファイルのアイコンが+に変わっています。もし変わっていない場合は、追加出来なかった可能性があります。

画像を拡大表示する
+アイコンに変わった図
+アイコンに変わった

フォルダーごと追加する場合に仮想にあるファイルも一度に追加することができます。

コミット

今ファイルを追加しましたね。このようにソース管理に変更があった場合に。変更をリポジトリに反映させることをコミットといいます。

コミットは、変更したファイル単位にコミットすることもできますし、まとめてフォルダー単位でもコミットできます。今ちょうどsourcesフォルダーは、ファイルとフォルダーを追加していますので、sourcesフォルダーをコミットしてみましょう。

sourcesフォルダーは変更のあったことを示す!が表示されています。

右クリックで表示されたポップアップメニューからsvnコミットをクリックします。

画像を拡大表示する
”svnコミットをクリック”を説明する図
svnコミットをクリック

削除

ソース管理から削除する場合は、ポップアップメニューから削除をクリック。決してエクスプローラから直接削除してはいけません。追加と同様に、あとでコミットをおこなってください。

画像を拡大表示する
削除をクリック

SVN更新

もう気になっている人もいると思いますが、右クリックで表示されたポップアップメニューにある“SVN更新”はなんのためにあるのでしょう。

SVN更新は、ローカルに反映されていない情報をリポジトリーから取得するためのメニューです。具体的にどういうことかというと、本稿で説明するソース管理Subversionはビジネスでもつかえるように大規模開発にも使えるように、複数人、複数プロジェクトで同時変更も可能です。もしあなた以外が変更したファイル(フォルダー)は、サーバー上のリポジトリーにはありませすが、あなたのローカルにはまだ反映されていないかもしれません。そういう場合に変更を反映させるのが“SVN更新”なのです。

もし、自分以外が変更している可能性がある場合は、定期的にこのコマンドを実行する必要があります。

画像を拡大表示する
SVN更新

チェックアウトを一括ではなく特定ファイルのみ取得する方法

ログ

ログ表示例

これまでの操作された履歴を確認する場合、また後述するようにある特定のバージョンに戻したい場合などの操作ではログからおこないます。下記の例は、今回この投稿をするにあたって、新しいリポジトリーを作成してからの操作履歴です。

画像を拡大表示する
subv_tortoisesvn-17.png photo

ログを表示

ログを表示するには、見たい対象のファイルまたはフォルダー上で右クリックしたポップアップメニューにあるログを表示を選択します。最上位のフォルダーを対象にログを表示するとすべてのログが表示されます。ファイルを対象にログを表示させると自分にかかわるログのみが表示されます。

画像を拡大表示する
ログを表示をクリック

最上位のフォルダーのログはすべてが、個別のファイルのログは自身に関わる変更点にのみ表示される!

ログからできること

もっともよく使われるのが、変更内容の確認や特定リビジョンへの戻すことだろう。これらは下記のようにログ表示画面で右クリックしたポップアップメニューから操作する。?にある作業コピーと比較は、現在ローカル環境にあるファイルと特定リビジョンとの比較ができます。もし最新のバージョンであれば先頭のログのリビジョン上で右クリックします。もしもっと古いリビジョンと比較したければ、下の方にあるリビジョンでおこないます。

?にあるこのリビジョンに戻すは、例えば先月のリビジョンに戻したいもしくは1年前に戻したい場合などの作業で使います。

画像を拡大表示する
作業コピーと比較

特定2リビジョンで比較

例えば、昨日と2日前では何の変更をしたか確認したい場合は、まず昨日のリビジョンを最初に指定してから、コントロールボタン+もう一つのリビジョンを選ぶと、2つのリビジョンを選択状態になるので、さらに右ボタンをクリックして表示したポップアップメニューからおこないます。

画面上は下記のようになります。

画像を拡大表示する
特定2リビジョン間の比較

少し上級編

ある時ちょっと困ったことがありました。ソース管理下にある特定のフォルダーのみローカル環境からはずしたい場合どうしたらいいでしょうか?

さきに説明した削除を使うとリポジトリーからの削除を意味しますので、使えませんね。また、エクスプローラで直接削除すると困ったことに、コミットをおこなう度に、行方不明として赤字表示されます。これは永遠とつづきます。

仕方ない!別のところに、もう一度チェックアウトして作り直しますか?

いえいえ、もっと簡単にできることがあります。それは“特定リビジョン更新”メニューを使えばいいのです。

特定リビジョンへの更新(除外)

例として、sourcesフォルダー下のnew1フォルダーをローカルのソース管理から外してみましょう。

現在のフォルダー環境をもう一度確認してみましょう。

画像を拡大表示する
現在のフォルダー構成を再確認する

※”Sources”フォルダーが今回のソース管理の最上位フォルダーです。

Sourcesフォルダー上で右クリック。表示したポップアップメニューから特定リビジョンへの更新を選択。

画像を拡大表示する
特定リビジョンへの更新をクリック

最上位フォルダーを選択してください。

更新の深さで除外を選択。次に項目の選択をクリック。

画像を拡大表示する
更新の深さと項目を選択

ソース管理から除外するnew1フォルダーのチェックを外してから、をクリック。

画像を拡大表示する
対象のフォルダーのチェックをはずす

再び画面がもどったら、OKボタンをクリックして実行。

画像を拡大表示する
OKボタンをクリックして実行

特定リビジョンへの更新(再帰的)

あるソース管理下にあるフォルダーを現在のソース管理に追加するにはどうしたらよいだろうか? 例えば今外したnew1フォルダーをもう一度soucesソース管理下に配置する場合だ。

これは“特定リビジョンへの更新”で、更新の深さに再帰的をえらべばよい。作業手順は前項と全く同じなので、更新の深さの選択部分のみ、図示する。

画像を拡大表示する
更新に深さに再帰的を選択

以上

コメント

タイトルとURLをコピーしました