繁体   English   中英

使用冒号后 SVN 存储库在 Windows 上损坏

[英]SVN repository broken on Windows after using colon

我们在多操作系统环境中使用 svn。 我犯了一个错误,提交了一个包含冒号的文件,即bar:foobaa:foo 在 linux 下,这当然不是问题,但在 Windows 下:不是文件系统允许的字符。 在意识到我的错误后,使用svn mv重命名了来自 linux 的文件。

问题是当检出包含:的版本时,Windows 上的 svn 会卡住。 考虑以下过程:

  1. 以最新状态检出存储库(即使用固定文件名)

  2. 签出包含带冒号的文件名的提交。 这导致以下情况:

添加了 foo

跳过阻碍工作副本 foo

警告! 一个或多个文件处于冲突状态。`

  1. 现在尝试使用svn co返回到更正后的版本会出现错误:

错误 'bar:foo' 不是目录文件夹中的有效文件名`

  1. 没有工作再试一次svn co

错误 XML 响应包含无效的 XML

错误格式错误的 XML:找不到元素`

现在存储库卡住了,即无法再签出,因为您将始终收到最后一个错误。 请注意,这会创建一个不在存储库中的文件foo 我试图删除文件和/或使用svn cleanup 但是没有任何成功,因为文件总是在svn尝试执行实际更新之前恢复。

有没有办法修复本地svn? 或者是不惜一切代价进行新结帐并避免Windows下受影响的修订的唯一方法?

所以我想了一个办法来解决它。 基本思想是更新到最新版本,但只更新目录本身,而不更新目录中的文件。 这样,所有文件都被删除,而不是尝试更新/恢复。 现在该目录位于正确的修订版上,我们也可以获取当前修订版的其余文件。

使用乌龟 svn:

  1. 转到受影响的目录

  2. 更新版本...

    1. 选择最新版本

    2. 选择更新深度“仅此项目”

    3. 按确定

  3. 更新版本...

    1. 选择最新版本

    2. 选择更新深度“完全递归”

    3. 按确定

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM