【问题标题】:Odd SVN reverse merge error messages奇怪的 SVN 反向合并错误信息
【发布时间】:2012-01-24 00:38:22
【问题描述】:

尝试反向合并以恢复 1 个特定文件。我相信我理解它应该如何工作,但会出现奇怪的错误。

我重读了svn book、google和stack等

问题:

我想指定 1 个要恢复的特定文件。

SVN不喜欢本地文件引用,因为该文件不存在,但网上的例子似乎使用本地文件名。

它也不喜欢完整的 http 路径,因为它不存在于存储库中。我知道它现在不存在,但它就在那里。即使使用@peg 语法仍然会报错。

例子:

  • 在修订版 100 中,我删除了一堆文件,因此 r99 是它存在的最后一个时间点。
  • 我们现在处于修订版本 150,我只想要一个文件。
  • 假设文件名为 .myFile(带有前导点,不要认为这很重要)
  • 项目 URL 和“工作目录”是http://server/repo/Project/trunk
  • 文件的 URL 应该是 http://server/repo/Project/trunk/.myFile
  • 假设我在等效的文件系统目录中,没有挂起的更新或提交,换句话说 svn status --show-updates 。 表明我是最新的。
  • 我可以做 svn cat http://server/repo/Project/trunk/.myFile@99

尝试失败:

svn merge -c -100 .myFile
Error: .myFile not under version control

svn merge -c -100 http://server/repo/Project/trunk/.myFile
Error: svn: '/repo/!svn/bc/120/Project/.myFile' path not found
Note that rev 120 is between the delete (r100) and now (r150)

svn merge -c -100 http://server/repo/Project/trunk/.myFile@99
Error: svn: File not found: revision 100, path '/Project/trunk/.myFile'

svn merge -c -100 . .myFile
Don't recall specific error.

svn merge -c -100 . http://server/repo/Project/trunk/.myFile@99
Error: svn: Cannot specify a revision range with two URLs

...以及其他各种组合....

我真的很难过。我相信我了解反向合并,以及为什么有时需要@pegs,但是这种特殊的组合非常令人烦恼。

我有解决方法:我可以恢复所有文件然后进行清理。或者只是复制并粘贴旧版本,我可以使用 svn cat 命令来完成。

但我想了解“正确”的方式。

【问题讨论】:

    标签: svn merge restore revert


    【解决方案1】:

    今天处理一个稍微不同的问题,我相信我终于找到了答案。

    我正在合并单个文件的更改,而不是恢复已删除的副本,所以不完全相同。

    我做了一个关键的改变:

    • 我使用了明确的 -r FROM : TO 范围,而不是仅使用 -c 快捷方式。

    其他要点:

    • 来源应采用 URL 形式
    • 目标应该是本地的 ./filename 格式

    假设的示例修订回顾:

    • 目前系统为r150
    • 在 r100 中删除了文件
    • 文件最后出现在 r99 中(尽管没有修改)
    • 文件最后一次添加/更新是在 r85 中
    • 注意:我的示例文件名是一个 Unix 隐藏文件,因此它以点开头 - 大多数文件都没有。

    撤消删除,我想应该是:

    cd localWorkDir/Project/trunk
    svn update
    svn merge -r100:85 http://server/repo/Project/trunk/.myFile ./.myFile
    svn commit -m "restoring files"
    (message saying committed r151)
    

    所以我认为 -c 语法在合并单个文件时是有问题的。

    【讨论】:

      猜你喜欢
      • 2012-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-27
      • 2010-12-28
      • 2011-01-01
      相关资源
      最近更新 更多