チェックアウトした作業ディレクトリの中に、新たなSVN管理下のディレクトリfooを作る。
% svn mkdir foo次に、新たなディレクトリfooの中に新たなファイルをfoo.txt追加する。
% svn commit -m ‘made foo’
% echo foo > foo/foo.txtこの状態で、作業コピーの中のfooをbarにリネーム。
% svn add foo/foo.txt
% svn commit -m created foo.txt’
% svn mv foo barそして、このリネームをコミットしようとすると…
% svn commit -m renamed怒られる。怒られてコミットできない。
svn: Commit failed (details follow):
svn: Directory ‘xx/foo’ is out of date
結論から言うと、mvする前にupdateしておけば怒られない。
まず、コミットできなかったリネームは無かったことにしてから、アップデート。
% svn revert -R foo barそれから再びリネーム。
% rm -fr bar
% svn update
% svn mv foo bar今度は通る。
% svn commit -m renamed
要するに、何となくupdateしたら何とかなったのだけれど、そもそも駄目だった訳を理解していない。mvではなくcpなら問題は起こらないので、移動元の指定がおかしいことは無いと思うんだが…。
とりあえず対処療法的にupdateするか、mvするときはレポジトリのURLを指定しよう。
0 件のコメント:
コメントを投稿