没有恢复的SVN结账

时间:2012-08-02 09:42:56

标签: svn conflict resolve svn-checkout

我们有一些公司中间件,有时很难找到正在寻找的正确版本,所以我经常需要更新到不同的版本来测试它们。

我通常结帐:

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

2 个答案:

答案 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目前没有这样的选择(虽然它已被大量要求)。