SVN でソースコードを管理

SVN(Subversion) とは、バージョン管理の一つで、主にオープンソースコードの管理などで使われています。

ここでは、 TortoiseSVN を導入し、個人作業として効率のよい(ローカルな)環境を作り上げます。

(元々複数人でソースを書くための管理ソフトですが、こういう方法も可能です)



導入

まずは、TortoiseSVN のサイトへ行って、以下のファイルをダウンロードします。(ダウンロードページにあります)

  • TortoiseSVN-X.X.X.xxxxx-win32-svn-*.*.*.msi(本体。X,x,*はバージョン番号)
  • LanguagePack_X.X.X.xxxxx-win32-ja.msi(日本言語パック。X,xはバージョン番号)

ダウンロードしたら、本体、言語パックの順にインストールします。(インストール画面はデフォルトのままでもかまいません)

インストールが完了し、再起動を促すダイアログが出たら再起動します。(出ないときもある)

これでインストールは完了します。

エクスプローラ上で右クリックすると、「TortoiseSVN」の項目が出ていたら成功しています。


使い方(作成編)

まず、管理する為の専用の場所を用意します。これは「リポジトリ」と呼ばれます。

ここの例では"C:repositorymyproject"とします。(中身は空である必要があります)

リポジトリは基本一つのプロジェクトを入れます。共同のプロジェクトを入れる場合は入れてください。

リポジトリを作成します。"C:repositorymyproject"フォルダを右クリックし、 TortoiseSVN → ここにリポジトリを作成 を選択します。

エラーが出ず、成功ダイアログが出ればOKです。(以降はこの中身を弄らないでください)

次にレイアウトを決定します。ここではヘルプでも推薦しているレイアウトを作ります。

適当なディレクトリ上で右クリックし、 TortoiseSVN → リポジトリブラウザ を選択します。

URL ダイアログが出るので、"file:///"に続き、リポジトリを作成したパス("""/"に変えること)を入力し、OKボタンを押します。
(URL は file:///C:/repository/myproject となる)

すると、リポジトリブラウザが開きます。

ここに以下のフォルダを追加します。

  • trunk(メインとなる作業場)
  • branches(安定版や公開版など、問題のない状態のバージョンを入れる)
  • tags(その他の状態で入れる必要があったとき)

追加手順は、右側のリスト上で右クリックし、 フォルダを作成 を選択。

出てきたダイアログに作成するフォルダ名を入力し、OKボタンを押します。

これで作成されます。

ここで、三つのフォルダを作成すると、「リビジョン」と呼ばれる項目が増えていると思います。

これは、変更履歴の番号で、リポジトリを変更するたびに増えていきます。

作成が終わったらリポジトリブラウザを閉じてかまいません。

次に、このリポジトリにプロジェクトのデータを追加します。

まず、インポートするプロジェクトデータがあるディレクトリに移動します。
(このとき、管理しないファイル、コンパイル時に生成されるファイルなどはあらかじめディレクトリから取り除いてください)

そこで何も選択していない状態で右クリックし、 TortoiseSVN → インポート を選択します。

ダイアログが表示されます。ここの「リポジトリのURL:」には、先ほどのリポジトリのURLと同じように入力し、
かつ今回のレイアウトでは trunk に入れるので、 trunk を追加します。

下記のインポートメッセージには任意でコメントなどをいれ(入れなくてもよい)、OKを押します。

このとき、インポートされるファイルは、右クリックしたディレクトリ以下の全てのファイルとフォルダをインポートしますので注意(後で削除することはできますが)。

ログウインドウがでてきて、最後に完了が出ればOKです。

最後に、チェックアウトを行います。チェックアウトとは、リポジトリにあるデータを自分のところにコピーし、作業コピーとして準備をすることです。

再度右クリックをし、 SVN チェックアウト を選択。

「リポジトリのURL:」はインポートしたURL(そのまま付いているはず)、チェックアウトディレクトリは現在のディレクトリにしてください
(trunkとかが末尾についていたら取り除く)。

チェックアウトする深さを「再帰的」、リビジョンを「最新のリビジョン」になっていることを確認して、OKボタンを押します。
このとき、警告が出ますが、そのままOKを押してください。

ログウインドウがでてきて、最後に完了が出ればOKです。エラーが出た場合、インポートした時と、チェックアウトしたときのファイルが違う可能性があるので、削除するか、一旦退避させて再度行ってください。

これで準備が完了です。ファイルやフォルダにマークがつけられているのがわかるでしょう。このマークでそのファイルの状態がわかります。
また、SVN の作業データとして、各ディレクトリ内に “.svn” フォルダ(隠し)が作成されます。

代表的なものとして、緑色のマーク(チェック印)は最新のものと一致している状態、
赤色のマーク(!印)はファイル内容に変更があった状態、
?マークは管理外のファイルにつけられます。

(これらのアイコンは設定によって変更することができます)


更新方法

ある程度プロジェクトが進み、現在の状態を保存したい場合、そこでリポジトリにアップすれば、その状態を保存することが出来ます。
(過去の状態は永久に残されるので安心です)

プロジェクトのディレクトリで右クリックし、 SVN コミット (無い場合は TortoiseSVN のサブメニューにあります)を選択します。

コミットとは、リポジトリにアップすることをさします。

コミットするファイル一覧が出るので、確認をしてOKであれば、OKボタンを押して実行します。

ログウインドウがでてきて、最後に完了が出ればOKです。


更新方法(安定版・公開版)

ソフトとして公開できる、あるいは、動作上問題のないバージョンのソースの状態を保存する場合、今までどおりの方法では参照するときに確認しづらいです。

そこで、ここではそのリビジョンだけ別のところに保存する方法を書きます。

いつもどおりプロジェクトのディレクトリで右クリックし、 TortoiseSVN → ブランチ/タグ を選択します。

出てきたウインドウの先URLの末尾にある trunk を branches (任意にバージョン名などのフォルダ名を追加)に変え、「サーバー上でコピーを作成:」を、状況に合わせて指定し(通常はしなくて大丈夫です)、OKを押します。

ログウインドウがでてきて、完了が出ればOKです。注意書きが出ることが有りますが、問題ないので無視します。

この方法は、変更情報だけを branches にコピーするので、余分なスペースを取りません。

このコピーしたリビジョンをデータとして手に入れるには、チェックアウトの方法をとればOKです。


前バージョンとの比較

どう変更したのか確認したい場合は簡単で、確認したいファイルを右クリックし、 SVN 差分 を選択します。

左側には作業ベース(現在のリビジョンでのファイル)、右側には作業コピー(現在のファイル)の内容が表示されます。

ここで色が付いているところが変更点です。


変更の取り消し

変更したファイルを元に戻したい場合も簡単で、元に戻したいファイルを右クリックし、 TortoiseSVN → 元に戻す を選択します。

確認ダイアログが出るので、ファイルを確認してOKを押せば完了です。


ファイル(フォルダ)の追加

ファイル(フォルダ)をSVN に追加する(管理されるようにする)のも簡単です。追加したいファイル(フォルダ)を右クリックし、 TortoiseSVN → 追加 を選択します。

確認ダイアログで追加するファイルを確認し、OKを押します。

成功した後、ファイルには+マークがつきます。(次回コミット時まで)

追加したファイルを元に戻したい場合、元に戻したいファイルを右クリックし、 TortoiseSVN → 追加を元に戻す を選択します。

確認ダイアログが出るので、ファイルを確認してOKを押せば完了です。


ファイル(フォルダ)の名前変更・削除

SVN によって管理されているファイル(フォルダ)はエクスプローラ上で名前を変更したり、削除してはいけません。

紛失したファイル(フォルダ)として扱われ、リビジョンに残ったままになります。(更新を行ったときに復元されます)

対象のファイル(フォルダ)を右クリックし、 TortoiseSVN → 名前を変更(削除) を選択します。

このあと、名前を変更したファイルには+マークがつきます。(次回コミット時までそのまま)

削除を取り消す場合は、削除されたファイル(フォルダ)のあった、ディレクトリ上で、 TortoiseSVN → 元に戻す を選択します。

確認ダイアログが出る(チェックされていない状態)ので、元に戻すファイルを選択してOKを押せば完了です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

This blog is kept spam free by WP-SpamFree.

制作物とか日記とかプログラミングTipsとか。