代码之家  ›  专栏  ›  技术社区  ›  Bkwdesign

如何将一个文件提交给SVN,而我不久前忘记提交(调整了它的修订号)

  •  1
  • Bkwdesign  · 技术社区  · 16 年前

    因此,我一直很高兴地使用Subversion定期提交与我的大型Visual Studio解决方案相关的项目堆栈中的文件。

    我决定有一天做一个SVN导出,并且决定我需要看看我的项目在2008年10月是如何工作的。所以,我导出到我的本地文件系统,版本37。

    当我去编译这个项目时,不知何故有2到3个文件在10月份被忽略了。比如说,他们直到99版才被授权,或者更好的是,他们仍然没有被授权。

    有没有方法可以调整文件上的提交编号,使其与正确的修订版相匹配? 你的意思是 ?因此,如果我重新导出版本37,我将在Visual Studio中得到一个正确且有效的解决方案?

    5 回复  |  直到 16 年前
        1
  •  4
  •   Matt Brunell    16 年前

    不是真的。Subversion修订号适用于整个源代码树。如果您能够对提交的修订进行更改,这将破坏变更管理的思想。

    您可以做的是创建一个版本37的分支,并对此进行更改。这将创建一个新的修订,比如100。然后您可以提交它,您将得到您正在寻找的修改版本37。

        2
  •  3
  •   ASk    16 年前

    这是有可能的,但要求你不要灰心丧气,了解SVN存储库转储格式并有一个稳定的手(和备份)。

    过程将是在文本版本中转储整个存储库,找到要查找的修订的条目并添加信息,然后重新加载转储(覆盖现有存储库)。

    不幸的是,这种格式不适合胆小的人(它类似于带有扩展名的HTTP,大多数字段的前面都有其长度),破坏它相当容易。

    也不建议这样做;现在就提交文件,以后要更加小心。

        3
  •  1
  •   Stefan    16 年前

    不,那是不可能的。你不能改变历史。

    如果可以按您的要求执行,那么这将打破版本控制的整个概念:拥有可靠的提交历史。

        4
  •  0
  •   Peter Stuifzand    16 年前

    看起来是不可能的。

    您可以尝试从以后的版本中获取这两个文件,并使用它们(使用版本37中的文件)。

        5
  •  0
  •   runako    16 年前

    听起来你不太在乎它是第37版。相反,您正试图重新导出具有特定现实世界属性的修订版(即,您给客户的修订版恰好是第37版)。

    正如马特所说,你真的想从Rev 37中创建一个分支。实际上,这意味着您将把Rev 37复制到一个Subversion目录中,该目录的名称解释了它是什么,例如/branches/client-a。然后,将丢失的文件添加到分支并提交。然后,您可以从/branches/client-a导出以获得所需的内容。