【问题标题】:modify SVN change log修改SVN变更日志
【发布时间】:2010-12-06 17:37:13
【问题描述】:

我正在使用 VisualSVN 和 tortoise 来处理 SVN 存储库。有人需要将一些文件夹从一个位置移动到同一存储库中的新位置。不过我搞砸了,只是将旧文件夹复制/粘贴到新位置(没有得到更改历史记录等)。从那时起,他们更新了一堆文件。旧文件(来自以前的位置)没有被删除或任何东西。有没有办法从旧文件中获取更改历史并将其与新位置相关联?我需要添加修订号、日志消息等。

【问题讨论】:

    标签: svn tortoisesvn changelog


    【解决方案1】:

    您可以返回并重新复制旧文件,起初您不会有与新文件关联的更改。但是,您可以将更改合并到。

    所以,是的,您可以通过移动或删除新文件,然后将旧文件(带有历史记录)复制到新位置,然后合并您想要的更改来获得所需的内容。

    【讨论】:

      【解决方案2】:

      不,你不能。在移动/重命名已知的 SVN 故障时不跟踪文件的完整历史记录。如果你真的需要这种类型的功能,你最好使用 git 或 Mercurial 之类的东西。

      是的,我知道很多时候迁移到新的 VCS 并不是一个真正的选择。不幸的是,这意味着当你遇到这样的事情时,你几乎陷入了困境。

      【讨论】:

      • -1:该问题并未表明使用了 svn move 或 svn rename。
      • -1:从什么时候开始不跟踪文件历史记录是已知的 SVN 故障?也许您正在考虑其他一些 VCS?
      • 这个问题清楚地暗示了海报通过使用复制/粘贴而不是 svn move / svn 重命名来“搞砸”。如果文件被操作系统重命名或移动,而不是通过相应的 Subversion 命令,Subversion 会丢失文件历史记录。
      • 答案暗示跨移动/重命名跟踪文件是 SVN 不做的事情,与 Mercurial 和 Git 不同。我很确定 Mercurial 至少像 SVN 一样,需要在文件被移动或复制时被告知,并且不会自行推断。我不确定它在这里对 SVN 有什么优势。 Git 可以,因为它有自己的算法来计算文件历史记录。
      猜你喜欢
      • 1970-01-01
      • 2011-01-14
      • 2013-01-30
      • 2012-03-16
      • 2012-10-10
      • 1970-01-01
      • 2017-09-16
      • 2017-12-03
      • 1970-01-01
      相关资源
      最近更新 更多