By | 2008年11月16日

svn のリポジトリに外部リポジトリを追加する

Subversionのsvn:externalsというプロパティ を参考にして、大元のリポジトリに違うリポジトリを追加(シンボリックリンクみたいなイメージ)してみた。

svn:externals 自体は簡単ですぐにできた。
これできれば Project 単位でリポジトリ作成しておいて、
自分用のリポジトリにもこれで同期できるし、これ便利。

というわけで、さっそく試してみた。

svn propset svn:external 'Hoge http://svn.example.com/hoge' .
svn propset svn:external   '[checkout 後のフォルダ名] [リポジトリ URL]' [checkout する場所]

上記の場合だと、カレントディレクトリに http://svn.example.com/hoge を Hoge という名前で checkout する。(正確には、この段階では checkout されない。登録のみ)
次に svn up とすれば、 Hoge がcheckout してくる。

登録されているかどうかの確認は以下のコマンドで確認できる。

svn proplist -v [path]

削除したい場合は

svn propdel svn:externals [path]

で、できる。

対象ファイルを svn の管理対象外にする

svn propedit svn:ignore [path]
 
#環境変数で EDITOR を指定していない場合
EDITOR=vi svn propedit svn:ignore [path]

これで EDITOR が開いて改行区切りでファイルをして指定してやれば
書いた分だけ管理対象外にできる。
一個ずつコマンドを打つ必要がなく editor で書けるので楽。

他にもファイルで読み込むやり方もある。

svn propset svn:ignore -F [ignore file list] [path]

対象ファイルに実行権限を与える

svn propset svn:executable ON [file]

実行権限の削除

svn propdel svn:executable [file]

確認

svn proplist -v [file]
 
'file name' の属性:
  svn:executable : *

おまけ

改行コードにも指定できるみたい。

svn propset svn:eol-style [native', 'LF', 'CR', 'CRLF'] [file]