我知道我应该在我自己的分支上工作,但我们中的一些人在同一个项目的分支上。其中一个开发人员提交了,我只是想用来自SVN的最新版本更新我的本地副本。运行'svn update‘,我得到以下输出:
Restored 'index.html'
U somescript.php
Conflict discovered in file.xml'.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options:
是否有覆盖本地更改并从subversion获取最新文件并忽略所有冲突的选项/方法?
我看过Stack上的其他一些帖子,它们都没有回答这个问题。他们说删除项目并重新结帐,我猜如果这是最好的方法,那就这样吧……但是我想要更多关于为什么我不能强制更新的细节。谢谢
编辑:
所以我选择了s 'show all options':
(s)显示所有选项:s
(e) edit - change merged file in an editor
(df) diff-full - show all changes made to merged file
(r) resolved - accept merged version of file
(dc) display-conflict - show all conflicts (ignoring merged version)
(mc) mine-conflict - accept my version for all conflicts (same)
(tc) theirs-conflict - accept their version for all conflicts (same)
(mf) mine-full - accept my version of entire file (even non-conflicts)
(tf) theirs-full - accept their version of entire file (same)
(p) postpone - mark the conflict to be resolved later
(l) launch - launch external tool to resolve conflict
(s) show all - show this list
我想我应该选择'tc'?
发布于 2012-10-08 21:07:17
我会这样做:
svn up --accept tf
或
svn up --accept theirs-full
也就是说,在工作副本的根目录中使用"svn revert -R“,然后使用"svn up”也可以做到这一点。在我的例子中,对于不同的项目,我有几个WCs,所以我运行一个shell脚本,在启动计算机时更新所有的WCs。我不使用accept,而是使用"--accept p“来推迟解决方案,因为它是一个自动化的过程,然后我会合并任何SVN不能自行自动合并的冲突(通常,这涉及到恢复,但这取决于)。
发布于 2012-05-27 14:16:49
tato的回答是绝对正确的,请注意他的谨慎。您将丢失所有更改。只是对语法和一些细微差别的澄清
svn revert在默认情况下是非递归的,需要一个路径才能工作。要使是递归的,请添加"-R“。如果您在当前目录中,请使用"./“作为下面的”路径“或使用绝对路径,如"/path_to_your_folder”
svn revert -R <path>
svn更新是递归的。如果您在目录中,则根本不需要路径
svn update
发布于 2013-09-26 23:38:13
使用svn 1.6.11 (由CentOS 6.4提供)Carnix的命令应该如下所示
svn up --accept theirs-full
(不能添加评论,因为我没有足够的声誉)
https://stackoverflow.com/questions/3709197
复制相似问题