開発メモ

Subversion

過去のバージョンに戻す

リビジョン番号の指定を降順にすることで,過去のバージョンへ逆行できる. 再コミットは必要.

$ cd rctools/librcsc
$ svn merge -r 200:198 https://svn..../repos/rctools/trunk/librcsc 

無視するファイルやディレクトリの指定

CVSにおける.cvsignoreのようなもの. svn status, svn add, svn commit などを実行しても,指定されたファイルへは反映されなくなる. svn:ignore属性によって設定する.

$ svn propset svn:ignore KEYWORD PATH

カレントディレクトリを設定したい場合,PATHは"."で良い.再帰的に設定したい場合は"-R"オプションを付ける

KEYWORDの代わりにファイルで一括指定することもできる.

$ svn propset svn:ignore -F FILE .

FILEのフォーマットは.cvsignoreと同じで,無視するパターンを一行ごとに列挙したもの.以下のように.cvsignoreをそのまま使うこともできる.

$ svn propset svn:ignore -R -F .cvsignore .

autotoolsを使っているなら,以下の内容を登録しておくと良い.

*~
*.a
*.la
*.lo
*.o
.deps
.libs
Doxyfile
INSTALL
Makefile
Makefile.in
aclocal.m4
autom4te.cache
autoscan.log
config.guess
config.sub
config.h
config.h.in
config.log
config.status
configure
configure.scan
depcomp
install-sh
libtool
ltmain.sh
missing
mkinstalldirs
stamp-h1
moc_*

バイナリ属性の解除

テキストファイルなのに,バイナリだと判断されたものがあった場合への対応.

$ svn propdel svn:executable FILELIST
$ svn propdel svn:mime-type FILELIST

ブランチ内のログ参照

ブランチを作成してから,そのブランチ内だけで行われた変更履歴を確認するには,

$ cd PATH/TO/BRANCH
$ svn log --stop-on-copy

ブランチとのdiff

$ cd PATH/TO/TRUNK
$ svn diff -r 198:200 PATH/TO/BRANCH

ブランチからのマージ

あるbranch上での変更内容をtrunkへマージする. 以下の例は,branch内でのリビジョン198から200までの変更内容をtrunkへマージする場合.

// 作業コピーのtrunkのディレクトリへ移動
$ cd trunk/librcsc
// 内容確認
$ svn diff -r 198:200 https://svn..../repos/rctools/branches/librcsc-1.2.x
// 内容確認 その2. 状態フラグが表示されるだけで,ファイルには変更が加えられない
$ svn merge --dry-run -r 198:200 https://svn..../repos/rctools/branches/librcsc-1.2.x
// 実行
$ svn merge -r 198:200 https://svn..../repos/rctools/branches/librcsc-1.2.x

リポジトリの参照先変更

リポジトリのURLが変更された場合,ローカルの作業コピーの内容はそのままで,参照先だけ変更すればよい.

$ svn switch --relocate svn+ssh://old/path/to/repos svn+ssh://new/path/to/repos

リポジトリの移動

ダンプファイルを新しい環境でロードする.

旧環境で実行
$ svnadmin dump /home/svnroot > svnroot-dump

新環境で実行
$ svnadmin load /home/new-svnroot < svnroot-dump

エラーへの対処

svn: Barkley DB error ...
こんなエラーが出たら,以下のコマンドを実行してみる

$ svnadmin recover svnroot/

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-03-14 (月) 14:51:37 (1281d)
SourceForge.JP
Creative Commons License
RoboCup tools by Hidehisa Akiyama is licensed under a Creative Commons 表示-非営利 2.1 日本 License.