如果我这样理解正确:
user1> svn co file:///var/svn/repo
Checked out revision 29.
....
user2> svn co file:///var/svn/repo
Checked out revision 29.
....
user1> svn mv foo ./dir/
A dir/foo
D foo
user1> echo 'some more work' >> dir/foo
...
user2> svn rm foo
D foo
user2> svn ci -m'we don not need foo anymore'
Deleting foo
Committed revision 30.
...
user1> svn ci -m'refactoring of foo has worked'
Adding dir/foo
Deleting foo
svn: Commit failed (details follow):
svn: '/foo' is out of date
user1> svn up
C foo
At revision 30.
Summary of conflicts:
Tree conflicts: 1
user1> svn stat
! C foo
> local delete, incoming delete upon update
A + dir/foo
现在,用户1 & user2的去喝酒一杯咖啡对方,并决定究竟是什么做的。如果他们决定FOO应该留下,什么应该发生(但我真的不明白出了什么错在这里):
user1> svn resolve --accept=working foo
Resolved conflicted state of 'foo'
user1> svn stat
A + dir/foo
user1> svn ci -m'Shiny & glorious reintroduction of foo, all brand new, but with a history'
Adding dir/foo
Transmitting file data .
Committed revision 31.
....
user2> svn up
A dir/foo
Updated to revision 5.
user2> svn log dir/foo
user2> tail --lines=1 dir/foo
some more work
所以一切都应该没问题。问题是:问题中出了什么问题/没有在场景中工作?我怀疑有人想到一个不幸的合并。
至于第二部分:
“如何执行更新之前,当用户执行一个自动提交?”
不自动做任何事情,它应该是直至项目中的开发人员定期更新自己的结帐。自动化只会让事情变得更糟。他们应该能够处理这些类型的冲突&根据需要解决它们。
将其翻译成英文或发生不幸事情发生在你身上。 – 2010-07-20 19:43:50
[Vocêpode falar emInglês?](http://translate.google.com/#auto|pt|Can%20you%20speak%20in%20English%3F) – kennytm 2010-07-20 19:44:03
欢迎来到SO。对不起,这是一个英语社区。继续尝试翻译! – 2010-07-20 19:45:04