操纵 SVN 历史
Manipulate SVN history
是否可以通过在最后一个提交之前添加一个提交来强制执行 SVN 提交历史记录?例如,我会 "create" 某个历史点的软件版本,其中仅包含以后提交中出现的部分功能。有办法吗?
谢谢
如果您可以直接访问存储库 (svnadmin dump
/svnadmin load
),可能有一种方法可以做到这一点,但这样做可能会破坏从您的存储库检出的每个工作副本,修订号与. 修订日期无法正确跟踪,和 它会质疑存储库历史记录的完整性 - 如果您操纵了它,您还能操纵什么?
寻找其他方法来执行此操作,例如从您需要的修订分支或在您需要修改的点之后恢复所有更改,然后重新应用它们。
您考虑的过程不应该在使用 SVN 的正常日常工作流程中使用,因为 Subversion 中的存储库历史是不可变的。您不应更改现有修订,而应提交新修订。我不完全理解你的情况,但在我看来你想从一个新的 release branch.
开始
I cannot use branches in this case. But I could accept to change every version number that come after the extra commit
创建分支并将这些更改记录为一系列提交而不是单个提交应该非常简单。这应该是最简单最正确的方法了。
PS 如果您对服务器上的存储库具有完全访问权限,则可以使用管理工具对旧版本进行手术。但是,此任务并非微不足道,如果您不考虑所有注意事项,则可能有害。例如,在现有版本之间添加修订后,您打算如何处理 svn:mergeinfo
?
是否可以通过在最后一个提交之前添加一个提交来强制执行 SVN 提交历史记录?例如,我会 "create" 某个历史点的软件版本,其中仅包含以后提交中出现的部分功能。有办法吗?
谢谢
如果您可以直接访问存储库 (svnadmin dump
/svnadmin load
),可能有一种方法可以做到这一点,但这样做可能会破坏从您的存储库检出的每个工作副本,修订号与. 修订日期无法正确跟踪,和 它会质疑存储库历史记录的完整性 - 如果您操纵了它,您还能操纵什么?
寻找其他方法来执行此操作,例如从您需要的修订分支或在您需要修改的点之后恢复所有更改,然后重新应用它们。
您考虑的过程不应该在使用 SVN 的正常日常工作流程中使用,因为 Subversion 中的存储库历史是不可变的。您不应更改现有修订,而应提交新修订。我不完全理解你的情况,但在我看来你想从一个新的 release branch.
开始I cannot use branches in this case. But I could accept to change every version number that come after the extra commit
创建分支并将这些更改记录为一系列提交而不是单个提交应该非常简单。这应该是最简单最正确的方法了。
PS 如果您对服务器上的存储库具有完全访问权限,则可以使用管理工具对旧版本进行手术。但是,此任务并非微不足道,如果您不考虑所有注意事项,则可能有害。例如,在现有版本之间添加修订后,您打算如何处理 svn:mergeinfo
?