SVN似乎没有恢复更改

时间:2016-01-27 19:43:57

标签: svn revert

我从一个仓库中撤出,对几个文件进行了更改,现在我想撤消它们。

我尝试了svn revert -R .svn revert --depth infinity .但是当我致电svn status时,我仍然看到所有标记为已修改的文件,它们似乎与它们相同在我试图恢复之前。

我在文档中看到了关于还原更改的this讨论,但它似乎涉及从一个提交到另一个提交,而不是撤消所有未提交的更改。

(我无法访问TortoiseSVN。)

我无法准确地给你一个status命令的转储,但看起来有点像这样:

>>svn status
?    dir/
?    dir/
X    dir/
?    dir/

Performing status on external item at [dir]
M    file

Performing status on external item at [dir]
?    dir/
?    dir/
?    file
?    file
X    dir/

1 个答案:

答案 0 :(得分:2)

根据svn:externals documentation,有一些命令将递归到由外部定义的目录中。这些命令是:

  • 结帐
  • 更新
  • 开关
  • export
  • 状态

其中大多数都有一个--ignore-externals标记,可以避免更新这些标记。

但是,使用svn:externals的方法是在定义它们的目录下创建独立工作副本。除了上面的一小组命令之外,完全如何处理外部目录。特别是在您的情况下,svn revert跳过外部目录,因为它们实际上不是此工作副本的一部分。

可悲的是,这似乎是svn:externals中剩余的粗糙点之一。你可能需要将目录更改为修改后的外部并恢复其中。

你可以很容易地编写脚本。