我们有一些公司中间件,有时很难找到正在寻找的正确版本,所以我经常需要更新到不同的版本来测试它们。
我通常结帐:
svn co svn+ssh://(username)@(ip)/srv/svn/intranet/trunk/PYTHON/<application> <local-application>
然后我可以更新到其他版本
svn update (path) -r (rev)
经过几次尝试后大部分时间都会导致错误节点仍然存在冲突
如果我删除该文件夹并尝试重新结帐,它只会恢复我所拥有的内容。我想要做的就是检查修订版,我没有做任何更改,但仍然认为存在冲突。
我试图解决它们,但似乎没有任何效果:
svn update -r 1586
Skipped 'inm/inm' -- Node remains in conflict
D inm/fabfile.py
D inm/test.db.bak
D inm/tests
D inm/test.db
D inm/doc
D inm/test.ini
D inm/test.sql
U inm/setup.py
A inm/inm.egg-info
A inm/inm.egg-info/SOURCES.txt
A inm/inm.egg-info/top_level.txt
A inm/inm.egg-info/PKG-INFO
A inm/inm.egg-info/entry_points.txt
A inm/inm.egg-info/dependency_links.txt
A inm/inm.egg-info/not-zip-safe
A inm/inm.egg-info/paster_plugins.txt
A inm/inm.egg-info/requires.txt
U inm/setup.cfg
Updated to revision 1586.
Killed by signal 15.
Summary of conflicts:
Skipped paths: 1
svn resolved inm/inm
Resolved conflicted state of 'inm/inm'
(venv)
svn update inm/inm -r 1586
Updating 'inm/inm':
Password:
Skipped 'inm/inm/templates' -- Node remains in conflict
At revision 1586.
Killed by signal 15.
Summary of conflicts:
Skipped paths: 1
答案 0 :(得分:17)
我认为我在这里寻找的答案是
svn revert --depth=infinity inm
我不关心保留本地更改,只关心更新到新版本。我现在已经使用过几次这个命令了,似乎可以解决这个问题
修改强>
再次查看我的错误后,我可以看到很多文件可能会被测试或构建更改。我应该将它们添加到一个忽略文件中,以便svn没有检测到它们的更改。
答案 1 :(得分:1)
所以:
trunk
退房并更新,或者您是否有时从分行退房?svn status
该怎么办?你有结帐的原始副本吗?冲突可能由于多种原因而发生。
想象一下,您已经修改了Subversion存储库中的文件,然后对早期版本或更高版本进行了更新。根据您的操作方式,Subversion可能会尝试合并您所做的和您要检查的内容之间的更改。有时,如果您没有从修订版的头部更新,Subversion将不会。在这种情况下,Subversion将报告该文件存在冲突。
另一个原因是您在工作目录中创建了一个不在Subversion版本中的文件。当您使用该文件更新Subversion版本时,Subversion将报告冲突。
然后,也许你的系统出了问题。我们现在根本没有足够的信息。
下次执行此操作时,请在执行svn status
之前在工作目录中执行svn update
。事实上,这总是一个好主意。当您进行更新时,这将警告您与Subversion可能存在任何冲突。
我在Subversion中错过了CVS所拥有的一件事(我不会错过很多关于CVS的)是一个假装执行命令的选项。这将允许您在进行实际更新之前假装进行更新并警告冲突。唉,Subversion目前没有这样的选择(虽然它已被大量要求)。