*Subversion - Install [#vd7b5bc3]
**■ 各ツール等の配付先 [#h4dbc31a]
#contents

** 最低限入れた方が良いアプリケーション [#ba5001b9]
''入手先、詳細は後述''
- TortoiseSVN
- WinMerge
- xdocdiff

** 各ツール等の概要と配布先 [#h4dbc31a]
-[[公式>http://subversion.tigris.org/]]
-- 公式に配付されているSubversionの管理ツール
-[[TortoiseSVN>http://tortoisesvn.tigris.org/]]
--WindowsのエクスプローラにSubversionのメニューを表示するクライアント。
--ビギナー向け。
--ビギナー向けですが、エクスプローラが重くなるなどの弊害もあり、嫌がる人もいる。
--[[xdocdiff>http://freemind.s57.xrea.com/xdocdiff/]]
---TortoiseSVNにdoc、xls、pdfなどの差分が見れるようにするプラグイン
---XLSなどをTXTに変換しての差分なので、''書式や罫線などの差分は見れないので注意''
---Ver1.5以降は、TortoiesSVNインストール初期からTortoiseSVNのツールが割当られている
---xdocはOfficeのインストール不要、動作も軽い
-[[SmartSVN>http://www.syntevo.com/smartsvn/index.html]]
--Javaで作られたSubversionのクライアント。
--エクスプローラでの操作を嫌う人向け。
-[[AnkhSVN>http://ankhsvn.tigris.org/]]
--VisualStudioにSubversionのメニューを表示するアドイン
--よくVisualSVNが例として出されるが有料なので、無料のAnkhSVNを使用した方が良い。
--Express Editionはアドインを組み込めないので注意
--Express Editionはアドインを組み込めないので使用出来ない。
-[[CommitMonitor>http://tools.tortoisesvn.net/CommitMonitorDownload]]
--レポジトリのコミットを監視し、ポップアップ表示で知らせてくれるツール
--管理対象が「file://」である場合は動作しない
-[[WinMerge>http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html]]
--差分表示、マージのツール
--TortoiseSVNがインストールされている状態でインストーラーを動かすと、TortoiseSVNのDiffツールにWinMergeを追加してくれる。
--''TortoiseSVNインストール後にインストールすると良いです''
---TortoiseSVNがインストールされている状態でインストーラーを動かすと、TortoiseSVNのDiffツールにWinMergeを追加してくれる。
--[[xdocdiff WinMerge Plugin>http://freemind.s57.xrea.com/xdocdiffPlugin/index.html]]
---WinMergeにxls、doc、pdfなどの差分を表示可能にするプラグイン
---SVNに限らずに使用したい人は入れておくといいかもしれません
---xdocはOfficeのインストール不要、動作も軽い
---前述したxdocdiffはTortoiseSVNに組み込まれるので、SVN以外の用途にも使用したい場合は、入れておくといいかもしれません
---''xdocはOfficeのインストール不要、動作も軽い''
---WinMerge公式で配布されているxls等のプラグインはOfficeのインストールがされていないと動作せず、また動作が重いのでxdocを使用した方が良い
~
**■ 解説 [#e02b89bf]

** TortoiseSVNのインストール後の設定項目 [#lccde3c4]
+ フォントをMSゴシックなどの日本語表記可能なものに変更する
-- 設定しないとコメント入力時に文字が化けます
+ 必要なら、''ファイルの日付を"最後にコミットした日付"に設定する'' のチェックを入れる
-- チェックされていない場合、svn co、update時に更新されたファイルの日付がsvnコマンドを実行した日付になってしまいます
-- cygwinなどでコンパイルする際の考慮がデフォルト設定となっているようです
+ 必要なら、global-ignoresなどの設定を行う
 %AppData%\Subversion/config
-- 保存する際には保存形式に注意すること
-- 以下、global-ignoresの設定例
 global-ignores = *.[Ss][Uu][Oo] *.[Bb][Aa][Kk] *.[Ll][Oo][Gg] *.[Nn][Cc][Bb] 
 *.[Pp][Ll][Gg] *.[Tt][Mm][Pp] *.[Oo][Ll][Dd] *.[Ss][Cc][Cc] [Dd]ebug
 [Rr]elease [Oo][Bb][Jj] [Bb][Ii][Nn] *.vbproj.user *.csproj.user
 *.vbproj.webinfo *.csproj.webinfo
---カット&ペーストで貼り付ける場合、一行に全て書いて下さい。改行しないで下さい。
-- 以下、Tracでエクセル等をブラウザ上で表示する場合の設定例
 *.rtf = svn:mime-type=application/rtf
 *.doc = svn:mime-type=application/msword
 *.xdoc = svn:mime-type=application/msword
 *.xls = svn:mime-type=application/vnd.ms-excel
 *.xlsx = svn:mime-type=application/vnd.ms-excel
 *.ppt = svn:mime-type=application/vnd.ms-powerpoint
 *.pptx = svn:mime-type=application/vnd.ms-powerpoint
 *.pdf = svn:mime-type=application/pdf
---最下行に追加すればOKです。

** TortoiseSVNの注意点と便利なこと [#s6cce3ea]
- Subversionにタイムスタンプの概念はありません
-- 全てのファイル、ディレクトリはチェックアウト、更新した時点の自PCのタイムスタンプになります。
-- TortoiseSVNには、コミット時の時刻に合わせる機能がありますので、それを使うと、違和感も少しは抑えられると思います。
-- 但し、コミットを行った人のファイルはそのまま残るので、コミットした人とタイムスタンプはずれる事になります。
-- コミットしたファイルを一度削除し、更新コマンドで再取得すると、周りの人とタイムスタンプが同じになりますが、Subversionで管理されたソースを見る場合、タイムスタンプを信用すると混乱の元となるので注意して下さい。
-- お客さんに納品するモジュールに関しては、タイムスタンプを気にする必要があるので、その点も注意して下さい。
- リポジトリ管理を行っているPCのシステム日付に注意して下さい。
-- コミット時の日付、時刻はサーバの時刻が適用されます
-- http:// snv:// で管理している場合は、そのWeb、SVNサーバのシステム日付
-- file:// で管理している場合は、それぞれのPCのシステム日付
--- ''アクセスされるPC、それぞれがサーバとなるのでfile:// の場合は特に注意が必要です。''
--テスト環境がサーバを兼ねている場合、サーバの日付を変えていると、その変えた日付でコミットされてしまい、全員に影響を及ぼします。
- ファイルを追加する時、英文字のファイル名、ディレクトリ名の時は大文字、小文字に注意して下さい。
-- Windowsでは大文字、小文字を区別しませんが、Subversionは、元々Unix系で動かす事を想定していますので、大文字、小文字を区別します。
-- 例えば、大文字のファイルを小文字に変えてコミットした場合、それをチェックアウトすると、必ずコンフリクトしてしまいますので、それを防ぐためにTortoiseSVNでは、大文字、小文字の違いのみになるリネームはエラーを発生させ、リネームする事はできません。
- ファイルやディレクトリの名前を変更する場合は、TortoiseSVNのメニューからリネームし、コミットして下さい。
-- エクスプローラからリネームすると管理外になります。
-- さらにそれを追加、コミットされると、新しいファイルとして扱われるので履歴が失われます。
- 大文字⇔小文字のリネームに注意して下さい。
-- Windowsでは大文字、小文字を区別しませんが、Subversionは、元々Unix系で動かす事を想定していますので、大文字、小文字を区別します。
-- %%大文字のファイルを小文字に変えてコミットした場合、それをチェックアウトすると、必ずコンフリクトしてしまいます。%%
--- 旧バージョンの仕様で、今のバージョンではブロックされるようになりました。
- ディレクトリの移動は、右クリックでドラッグし、移動先で右クリックを離す事で、SVNの移動コマンド等が表示されます。
-- 削除→追加という手順で移動すると、履歴などが失われてしまいますので知っておいて下さい。
-- あまりないと思いますが、コピーする場合も同様の操作で行います。
- エクセルやワードのドキュメントは開いてる間はSVNのステータスが更新になります
-- この状態で更新を行うと、コンフリクトする場合があります
-- そのドキュメントを参照するだけの場合、ファイルの属性を読み取り専用にするとコンフリクトを防げます
- エクスプローラの詳細表示に出る項目に、SVN関連の情報を表示する事が出来ます。
-- 例えば、SVN 状態を表示するようにしておくと、状態でソートする事が出来るので重宝します。
- 検索結果からSVNの削除や追加などが行える
-- 不要なファイルをリポジトリ全体から削除したい時などに、知っておくと役に立ちます。
-- 例えば、objというディレクトリをリポジトリ全体から削除したい、binというディレクトリを一斉に追加したい・・等


** 各解説サイトへのリンク [#e02b89bf]
--[[svn book PDF版>http://psyto.s26.xrea.com/misc/svnbook/]]
--[[TortoiseSVNユーザガイド>http://tortoisesvn.bluegate.org/Help/dailyuseguide.html]]
--[[Wiki for Subversion>http://wiki.machband.org/svn/]]
--[[Subversionメモ>http://terai.s55.xrea.com/Subversion.html]]
--[[Subversion(Saisse's Wiki):>http://www.saisse.jp/pukiwiki/pukiwiki.php?Subversion]]