SVN 似乎没有恢复更改

5 svn revert

我从一个 repo 中提取,对多个文件进行了更改,现在我想撤消它们。

我试过了svn revert -R .svn revert --depth infinity .但是当我打电话时svn status,我仍然看到所有文件都被标记为已修改,而且它们似乎与我尝试恢复之前的一样。

我在关于恢复更改的文档中看到了这个讨论,但它似乎处理从一个提交到另一个提交,而不是撤消所有未提交的更改。

(我无权访问 TortoiseSVN。)

我不能给你一个确切的状态命令转储,但它看起来有点像这样:

>>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/
Run Code Online (Sandbox Code Playgroud)

Ben*_*Ben 3

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

  • 查看
  • 更新
  • 转变
  • 出口
  • 地位

其中大多数都有一个--ignore-externals标志,可以让您避免更新它们。

但是,使用 svn:externals 的工作原理是在定义它们的目录下创建独立的工作副本。除了上面的一小部分命令之外,这正是外部目录的处理方式特别是在您的情况下,svn revert直接跳过外部目录,因为这些目录实际上并不是此工作副本的一部分。

遗憾的是,这似乎是 svn:externals 中剩余的问题之一。您可能需要将目录更改为修改后的外部目录并恢复到那里。

您可能可以相当轻松地编写此脚本。