[[戻る>DoldoWorkz#subversion]] *SubversionをWindowsで使う [#s3545e22] Subversionを使った際のメモを書いていきます。 #hr #contents #hr *参考にした本 [#pa79299a] -[[Amazon-入門Subversion―Windows/Linux対応 (単行本):http://www.amazon.co.jp/dp/4798013730]]~ WindowsでSubversionを使うなら必ず欲しいおすすめの1冊です。~ *参考にしたページ [#h341eb0a] ~ *SubversionをWindowsへインストールする[#yee5dc1d] **「TortoiseSVN」をインストール [#e412a657] 本来「Subversion」はコマンドラインで使うものなのですが、それをWindowsのGUIで操作できるソフト…それが「TortoiseSVN」です。~ この中には既に必要最低限の「Subversion」のファイルが含まれていますので、これだけ入れれば使えるようになります。~ ~ &color(blue){''「TortoiseSVN」''};と&color(blue){''「Language packs(日本語化パッチ)」''};をダウンロードしてインストールする方法を説明していきます。~ -[[tortoisesvn.tigris.org:http://tortoisesvn.tigris.org/]]~ 「TortoiseSVN」と「Language packs」が置いてあるページです~ ここのページの左上にある「Download」を押します。~ #ref(TortoiseSVN_Download.jpg) ~ 出てくる以下のページでダウンロード出来ます。~ 私は32bit版WindowsVistaなので「&color(blue){''TortoiseSVN''};」の「&color(blue){''TortoiseSVN-1.5.0.13316-win32-svn-1.5.0.msi''};」をダウンロードします。 #ref(TortoiseSVN_DL.jpg) ~ さらに下にスクロールすると、日本語化するためのパッチがありますのでこちらをダウンロードします。~ 先ほど32bit版をダウンロードしたので、同じくこちらも32bit版の「&color(blue){''Language packs Japanese 32bit Setup''};」の「&color(blue){''LanguagePack_1.5.0.13316-win32-ja.msi''};」をダウンロードします。 #ref(Language packs_DL.jpg) ~ 以上の2つをインストールします。~ **TortoiseSVNに設定する [#zf540749] インストールが終わったら、デスクトップを右クリック→[TortoiseSVN]→[Settings]~ ~ 以下のような設定ウインドウが開きます。 #ref(Language.jpg) Languageを「日本語」に直します。~ ここで日本語に選択出来ない場合は前記の「LanguagePack」がインストールされていないのでインストールして下さい。~ [適用(A)]→[OK]を押して設定を一度終了します~ ~ デスクトップを右クリック→[TortoiseSVN]→[設定(S)]~ ~ 以下のような設定ウインドウが開きます(さっきの設定ウインドウの日本語化したもの)~ #ref(Settings.jpg) 「除外/無視するパターン(P)」でSubversionで無視する拡張子を指定します。~ ここで気をつけなければいけない事は、大文字・小文字を区別してしまう事です。~ 通常は「*.bak *.Bak *.BAK」を指定しておけば良いでしょう。~ ~ #ref(差分ビューア.jpg) 差分ビューアの設定は標準では「TortoiseMerge」がセットされています。~ 自分は差分ビューアに「WinMerge」を使っているので、それに設定してあります~ #ref(WinMarge.jpg) -[[WinMerge 日本語版:http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html]]~ テキストファイルの違いを表示する差分ビューア~ **「Subversionコマンドラインクライアント」をインストール [#jd7774ee] &color(red){''この項目は現在修正中です、まだインストールバージョンの1.5.0が出ていない模様''};~ &color(blue){''通常使っている分には「TortoiseSVN」があればひとまず必要ない''};が、以下の場合は必要となる。~ ~ &color(blue){''Subversionをコマンドラインで使いたい場合''};~ 特にリポジトリのバックアップや移行をしたい時には「svnadmin hotcopy」や「svnadmin dump」コマンドを使わないといけないが、これは「TortoiseSVN」では出来ない~ この場合はクライアントPCにインストールする。~ ~ 以下のページで「Subversion」をダウンロード出来ます。 -[[subversion.tigris.org:http://subversion.tigris.org/]]~ 「Subversion」が置いてあるページです~ ここのページの左上にある「Windows binaries」を押します。 #ref(SVN_Download.jpg) 出てくる以下のページでダウンロード出来ます。~ 私は「&color(blue){''Apache 2.0''};」の...~ #ref(コマンドライン1.jpg)~ 「&color(blue){''svn-1.5.0-setup.exe''};」をダウンロードしています~ &color(red){''上記ではこう書きましたが、まだインストールバージョンの1.5.0が出ていない模様…手動インストールはメンドクサそうなので待ち''};~ #ref(コマンドライン2.jpg) *「TortoiseSVN」の使い方 [#c51c46e6] **最初にやる事 [#sa3d81e3] ***リポジトリを作成する(ここにリポジトリを作成) [#g3dc083d] まずデータが格納される場所、「リポジトリ」というフォルダを作成しないといけません。~ &color(red){''この作業は新たなリポジトリを作成する時に1度しか行いません''};~ ~ 適当な名前のフォルダを作ります。~ 例として「D:\repo」というフォルダを作成しました。~ ~ 「repo」フォルダを右クリック→[TortoiseSVN]→[ここにリポジトリを作成(Y)]~ ~ そうすると以下のようなウインドウが開きます。 #ref(Repo_create.jpg) [Native filesystem(FSFS)]→[OK]~ ~ これでリポジトリが作成されます。~ 以後はこのフォルダの内容を直接いじることはありません。~ ***作業用フォルダの作成(SVN チェックアウト) [#bdb5e3cc] 次にSubversionで管理したいソースコードを置くためのフォルダを作成します。~ フォルダはリポジトリのフォルダと同じ名前でなくても構いません。~ ここでは例として「D:\proj」というフォルダを作成します。~ ~ 「proj」フォルダを右クリック→[SVN チェックアウト(T)]~ ~ 以下のようなウインドウが開きます~ #ref(チェックアウト.jpg) リポジトリのURLに先ほど登録したリポジトリのフォルダを登録します。~ これはプルダウンメニューで選べるはずです。&color(blue){''表記的には「file:///D:/repo」という感じになります''}; 最後に[OK]ボタンを押します。~ ~ 以下のようなウインドウが開きます。 #ref(チェックアウト終了.jpg) ~ フォルダに以下のようなマークが付き、フォルダ内には「.svn」というフォルダが作成されます。~ #ref(チェックアウトフォルダ.jpg)~ #ref(SvnFolder.jpg)~ これはこのフォルダがSubversionの管理下に置かれたことを意味します。~ 今後はこのフォルダの下位にファイルやフォルダを置いて管理していく事になります。~ -あれ?なんでここでインポートしないの?~ ここの説明では、リポジトリの作成後すぐに作業用フォルダの作成(SVN チェックアウト)しています。~ Subversionの本や、別のWebページを見ている方は「あれ?リポジトリの作成の後でインポートをしてから作業用フォルダの作成(SVN チェックアウト)をするんじゃないの?」とお思いでしょう。~ この「インポート」と後に出る「追加」は意味が似ていてとても分かりずらいため、ここでは「インポート」をしなくても良い様に説明しています。~ **頻繁にやる事 [#ke2e186f] ***ファイルとフォルダを追加する(追加) [#kb1d291a] 先ほど作成した作業用フォルダ「D:\proj」内に登録したいファイルやフォルダをコピーします。~ 自分で作ったソース以外にも、他からダウンロードしてきた使っているソースも一緒に置いておくと良いと思います。~ また、プロジェクトごと、あるいはライブラリごとにフォルダ分けする事をお勧めします。~ #ref(Folderdivision.jpg)~ ~ コピーが終わりましたら登録したいフォルダ又はファイルを右クリック→[TortoiseSVN]→[追加(A)]を押します。 ~ 追加ウインドウが出ますので、追加したいファイルを選んで[OK]ボタンを押します。~ #ref(SvnAdd.jpg) ~ フォルダ又はファイルに追加マークが付きます。~ エクスプローラの[表示(V)]→[最新の情報に表示(R)]をして表示を更新しないとマークが付かない場合があります。~ #ref(FolderAdd.jpg)~ ~ 追加の後は必ず&color(blue){''コミットをして''};、リポジトリ側に変更を登録する必要があります。~ ~ #ref(CommitIcon.jpg) ~ 間違って追加したフォルダやファイルは&color(blue){''コミット前であれば''};[右クリック]→[TortoiseSVN]→[元に戻す(V)]で解除する事が出来ます。~ ただし、この[元に戻す(V)]は&color(red){''不用意にフォルダ全体に対して行うと他の修正も全て元に戻してしまう''};ので注意してください。~ 私はこれで&color(red){''変更中のコミットしていないファイルが元に戻って''};泣きました。~ &color(blue){''追加を実行する前に一度全体をコミットして''};おく癖をつけておくと、上記のような悲劇に見舞われずに済むとおもいます。~ ~ ***ファイルとフォルダを削除する(削除) [#w4d244ce] 登録済みのファイルはSubversionの管理下のリポジトリに置かれます。~ そのため、普通に削除をしてもSubversionの管理上は削除になりません。~ 普通に削除をしてもリポジトリには情報が残っていますので、管理下のフォルダに対して右クリック→[SVN 更新(U)]をすると削除したファイルが復活してしまいます。~ ~ リポジトリ内の情報にもファイルの削除を知らせたい場合は~ 削除したいファイル・フォルダを選択後、右クリック→[TortoiseSVN]→[削除(D)]を押します。~ 削除ウインドウが出ますので、削除する対象が間違っていないか確認してから[OK]ボタンを押します。~ ~ #ref(DeleteIcon.jpg) フォルダは上記のように×マークが付きますが、ファイルについては削除をした直後にファイル自体が見えなくなります。~ ~ 追加の後は必ず&color(blue){''コミットをして''};、リポジトリ側に変更を登録する必要があります。~ ~ 間違って削除してしまったフォルダは&color(blue){''コミット前であれば''};[右クリック]→[TortoiseSVN]→[元に戻す(V)]で解除する事が出来ます。~ ファイルについては、削除をした直後にファイル自体が無くなってしまうので、上位フォルダに対して右クリック→[TortoiseSVN]→[元に戻す(V)]を行う事によって解除する事が出来ます。~ ただし、この[元に戻す(V)]は&color(red){''不用意にフォルダ全体に対して行うと他の修正も全て元に戻してしまう''};ので注意してください。~ 私はこれで&color(red){''変更中のコミットしていないファイルが元に戻って''};泣きました。~ &color(blue){''削除を実行する前に一度全体をコミットして''};おく癖をつけておくと、上記のような悲劇に見舞われずに済むとおもいます。~ ***ファイルとフォルダの名前の変更(名前を変更) [#c57c5174] 登録済みのファイルはSubversionの管理下に置かれます。~ そのため、普通に名前の変更をしてもSubversionの管理上は名前の変更をした事になりません。~ ~ 名前の変更をしたいファイル・フォルダを1つ選択後、右クリック→[TortoiseSVN]→[名前を変更(N)]を押します。 ~ #ref(名前の変更.jpg) 出てくるウインドウに変更したい名前を入力して[OK]ボタンを押します。 ~ #ref(RenameIcon.jpg) フォルダの場合はこのように古いフォルダ名に削除マークと、新しいフォルダ名に追加マークが見えます。~ ファイルの場合はただ単純に変更後のファイル名に追加マークが付きます。~ こういう見てくれでも、ただ単純に削除・追加をしたわけではなく&color(blue){''ちゃんと内部ではリネームしたという情報で記録されます''};のでご安心を。~ ~ この後は必ず&color(blue){''コミットをする必要''};があります。~ ***ファイルの内容を変更 [#qbda749e] ファイルの内容を変更すると、Subversionは自動的に変更を検知し、赤いマークのついたアイコンが表示されます。~ #ref(EditIcon.jpg)~ 記録したいタイミングで適度に&color(blue){''コミットをする必要''};があります。~ #ref(CommitIcon.jpg) ***ファイルとフォルダを記録する(SVN コミット) [#n16b1b97] コミットをする前はあくまでもリポジトリに保管する予約をしてるに過ぎませんので、ファイルやフォルダに何らかの変更を加えた後は必ずコミットする必要があります。~ コミットをしたいファイル・フォルダを選択後、右クリック→[SVN 更新]を押します。~ ウインドウが表示されますのでコミット内容を確認後、メッセージにどんな変更をしたかのメモを書いてから[OK]ボタンを押します。~ #ref(SvnCommit.jpg)~ ***ファイルとフォルダを取り出す(SVN 更新) [#v86a58aa] ファイルを誤って削除してしまったので記録した内容から復元したい場合や、他の人が記録した内容を自分の作業フォルダに反映させたい場合に更新を行います。~ 更新をしたいファイル・フォルダを選択後、右クリック→[SVN 更新]を押します。~ *** 「.svn」フォルダを抜いた状態でファイル・フォルダをコピーする(エクスポート) [#ge5b8618] CVSの管理下におかれたフォルダには必ず「.svn」という管理情報が入っているフォルダが作成されます。~ ソースコード公開等で管理下のファイル・フォルダをコピーする際に、この管理フォルダが逆に邪魔になる事でしょう。~ コピー後に手で一つ一つ消すのでも良いのですが、コピーしたいファイル・フォルダを選択後、右クリック→[TortoiseSVN]→[エクスポート]を押すと、管理情報のない状態でコピーを行う事が出来ます。~ ** さらに理解を深めるための説明 [#t393e5a6] *** Subversionのリポジトリ内の仮想フォルダと実際のフォルダの関係 [#i9512a30] Subversionのリポジトリ内の仮想フォルダ構成は、普通に表示をしても見る事が出来ません。~ 見るにはデスクトップを右クリック→[TortoiseSVN]→[リポジトリブラウザ]を押します。~ ウインドウが表示されますので、URLにポジトリのフォルダを登録します。~ これはプルダウンメニューで選べるはずです。&color(blue){''表記的には「file:///D:/repo」という感じになります''}; 最後に[OK]ボタンを押します。~ #ref(SVN仮想フォルダ構成.jpg)~ 作業用フォルダ構成はこのような状態になります。~ このフォルダ構成では「D:\proj」が作業用フォルダのルートにしています。~ #ref(作業用フォルダ構成.jpg)~ **困った時の対処(FAQ) [#j49a7d04] ***使い続けてるとアイコンが変になるんですけど… [#n339fa7f] 使っているうちに、チェックアイコンの表示がおかしくなる現象が起きます(Windows2000の場合は特に頻繁に起こります)~ これはアイコン表示をコロコロと変更するようなソフトの宿命で、修復をしてくれるソフトを入れておくと良いでしょう。~ 私は以下のソフトを使っています。~ -[[KH Software Factory-KH DeskKeeper2007:http://www.khsoft.gr.jp/]]~ 本来の使い方は、デスクトップアイコンの並びを記憶しておいて、誤って配置が崩れてしまったときに簡単に元の並び方に復元することができるソフトウェアです。~ 初期設定で解像度が変わるたびにアイコン位置を保存&配置を修復してくれるため、例えばフルスクリーン表示するゲームの後でアイコンの配列が変わってしまうのを元に戻してくれます。~ *「Subversionコマンドラインクライアント」の使い方 [#p1db0001] **リポジトリからリポジトリへの移行 [#w659f5c9] repoからrepo2に内容を移す場合のコマンド~ svnadmin dump D:\svn\repo > d:\repo.dump svnadmin load D:\svn\repo2 < d:\repo.dump -この場合、repo2は作りたてのリポジトリである必要があります。~ -これやんなくても、リポジトリフォルダのコピーだけで移行できる気がするけど(汗)~ *リポジトリをWeb上のレンタルサーバに置く [#p7a2dac1] 別ページにまとめてあります。~ -[[SubversionのリポジトリをWeb上のレンタルサーバに置く]]~