会社の人が苦しんでいた問題。
$ svn --version | head -n 2 svn, version 1.6.3 (r38063) compiled Jul 15 2009, 05:45:30 $ svnadmin create repository $ svn checkout file://$PWD/repository working-copy Checked out revision 0. $ cd working-copy $ echo test > file $ svn add file A file $ svn commit -m 'log' Adding file Transmitting file data . Committed revision 1. $ svn update At revision 1. $ svn status -v . 1 1 nov . 1 1 nov file
準備完了。さて、
$ echo test >> file $ svn status -v . 1 1 nov . M 1 1 nov file $ svn diff Index: file =================================================================== --- file (revision 1) +++ file (working copy) @@ -1 +1,2 @@ test +test $ svn update -r0 C file At revision 0. Summary of conflicts: Tree conflicts: 1 $ svn status -v . 0 0 nov . A + C - 1 nov file > local edit, incoming delete upon update $ svn update Skipped 'file' At revision 1. Summary of conflicts: Skipped paths: 1 $ svn status -v . 1 1 nov . A + C - 1 nov file > local edit, incoming delete upon update $ svn revert file Reverted 'file' $ svn update At revision 1. $ svn status -v . 1 1 nov . ? file $ svn log -v ------------------------------------------------------------------------ r1 | nov | 2009-07-27 22:48:38 +0900 (Mon, 27 Jul 2009) | 1 line Changed paths: A /file log ------------------------------------------------------------------------ $ cat file test test $ rm -f file $ svn status -v 1 1 nov . $ svn status -v . 1 1 nov . $ svnversion 1
file スルーされすぎだろ。
$ svn update file A file Updated to revision 1. $ cat file test
ファイル名を指定すると戻ってくる。どの時点でどうすればこれに気づくでしょう?
とりあえず、Dealing with Structural Conflictsを読むか。
一方ソ連はgitを使った
個人的にはソ連よろしく git-svn なんで問題ないんですけどね。