Subversion

Ads

ディレクトリを再帰的に svn add したくないときはどうすればいいか?

svn add に -N (再帰的にaddしない) ってオプションがあるのでこれを使う。

例えば以下の手順で add すれば foo の中の foo/bar 以外の大量のファイルは add されない。

svn add -N foo
svn add foo/bar

.cvsignore的なのはSubversionではどうやるか?

以下のコマンドを実行するとエディタが起動して無視リストを設定できる。

svn pe svn:ignore <ディレクトリ>

/etcをsvnで管理したい

大体のいつもの手順(ケースバイケースだが)

  1. rootしかアクセス出来ないリポジトリを作成する
    svnadmin create --fs-type=fsfs /root/.svn_repo
  2. 適当な空ディレクトリをetc用にimportする
    mkdir /tmp/dummy-etc
    cd /tmp/dummy-etc
    svn import -m "etcをsvn管理する" file:///root/.svn_repo/etc
  3. その場にチェックアウト
    svn co file:///root/.svn_repo/etc .
  4. 無視リストを設定
    svn pe svn:ignore .
    ここで適当に ./etcでよく無視するファイル を設定する。
  5. .svn ディレクトリを本物の /etc 以下にコピー
    cp -ap .svn /etc
    rm -rf /tmp/dummy-etc
  6. 無視ファイル以外を管理下に追加
    cd /etc
    svn status|grep '^\?'|perl -pe's/^\? +//'|xargs svn add
  7. rc.dやselinuxなど配下のディレクトリに無視設定をするものを追加
    ## selinux と rc.d を管理下に置く
    svn add -N rc.d selinux
    # selinux の無視設定
    f="/tmp/.ignore.$$" && rm -f $f
    echo targeted > $f
    svn ps -F $f svn:ignore selinux && rm -f $f
    # rc.d の無視設定
    f="/tmp/.ignore.$$" && rm -f $f
    (
      echo 'rc'
      echo 'rc.sysinit'
      echo 'rc?.d'
    ) > $f
    svn ps -F $f svn:ignore rc.d && rm -f $f
    # selinux と rc.d 以下のファイルを管理下に追加
    svn status|grep '^\?'|perl -pe's/^\? +//'|xargs svn add
  8. 全部コミット
    svn commit -m "管理するファイルを追加" .

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-01-12 (金) 13:35:51 (5070d)