SVN 似乎没有恢复更改
SVN does not appear to be reverting changes
我从一个存储库中提取,对多个文件进行了更改,现在我想撤消它们。
我尝试了 svn revert -R .
和 svn revert --depth infinity .
但是当我调用 svn status
时,我仍然看到所有标记为已修改的文件,它们似乎与它们相同在我试图恢复之前。
我在文档中看到 this 关于恢复更改的讨论,但它似乎处理从一个提交到另一个提交,而不是撤消所有未提交的更改。
(我没有访问 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/
根据 svn:externals documentation,有些命令会递归到外部定义的目录中。这些命令是:
- 结账
- 更新
- 切换
- 出口
- 状态
其中大部分都有一个 --ignore-externals
标志,让您避免更新它们。
但是,使用 svn:externals 通过在定义它们的目录下创建 独立工作副本 来工作。除了上面的一小部分命令之外,确切地 是如何处理外部目录的。特别是在您的情况下,svn revert
直接跳过外部目录,因为它们实际上不是此工作副本的一部分。
遗憾的是,这似乎是 svn:externals 中剩下的问题之一。您可能需要将目录更改为修改后的外部目录,然后也恢复到那里。
您可以很容易地编写脚本。
我从一个存储库中提取,对多个文件进行了更改,现在我想撤消它们。
我尝试了 svn revert -R .
和 svn revert --depth infinity .
但是当我调用 svn status
时,我仍然看到所有标记为已修改的文件,它们似乎与它们相同在我试图恢复之前。
我在文档中看到 this 关于恢复更改的讨论,但它似乎处理从一个提交到另一个提交,而不是撤消所有未提交的更改。
(我没有访问 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/
根据 svn:externals documentation,有些命令会递归到外部定义的目录中。这些命令是:
- 结账
- 更新
- 切换
- 出口
- 状态
其中大部分都有一个 --ignore-externals
标志,让您避免更新它们。
但是,使用 svn:externals 通过在定义它们的目录下创建 独立工作副本 来工作。除了上面的一小部分命令之外,确切地 是如何处理外部目录的。特别是在您的情况下,svn revert
直接跳过外部目录,因为它们实际上不是此工作副本的一部分。
遗憾的是,这似乎是 svn:externals 中剩下的问题之一。您可能需要将目录更改为修改后的外部目录,然后也恢复到那里。
您可以很容易地编写脚本。