会社の人が苦しんでいた問題。
$ 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 なんで問題ないんですけどね。