我已更正了当前有效的旧版代码中的错误。还有一些尚未经过测试的新版本。我希望能够将此修复程序提交到旧版本,并使更新一直持续到头版本。这可能吗?
答案 0 :(得分:2)
我认为你问的是“我可以让SVN更新我的所有代码,从修订版X到头部,我自动检查修订版X” - 答案不是我所知道的。
正常用法是使用修复程序更新Release分支,然后将错误修复程序移动(合并/提交/等)到trunk / in-development分支。这是为了确保rev X正确更新,测试等,然后确保您的主干/开发中分支也是如此。
答案 1 :(得分:1)
您可以将其提交到旧版本,然后将该特定修订合并到HEAD中。
答案 2 :(得分:1)
您无法更改历史记录。如果您在旧版本的Subversion中出错,则无法修改已提交的修订以修复此错误。你只需要做一个新的提交。
现在,当我说你不能改变历史时,我的意思是没有简单的方法。您可以执行svnadmin dump
,查看结果,然后有选择地执行svnadmin load
。
我不是100%确定如何去做。我已经使用转储和加载技术来删除其中包含专有信息的修订版本,该修订版本不应该存在于我们的存储库中。但是,我永远不会破坏历史来纠正一个老错误。
而且,你可能真的不想。想象一下,如果错误是在修订版#23中,你修复它。你的代码修订版#26的某个人试图弄清楚什么是错的,但是在源代码中找不到问题。最后,最好是说实话:我们制作了一个booboo,我们需要修复它。
我可以想象你的主干版本#24中有错误的地方,客户需要修订#28,你的主干现在是修订版#50。如果您修复了修订版#24中的错误,则可以为客户修订#28。在这种情况下,您应该为版本#28创建一个分支,并修复该分支中的错误。
您可以执行以下操作:修改commit语句以包含有关错误的注释,以便其他人收到警告。
答案 3 :(得分:0)
你为什么要那样做?为什么不进行更改并提交?
像Subversion这样的产品的全部意义在于它跟踪所做的所有更改,并允许您在任何时间点确切地查看代码的状态(或任何文本)。如果您可以返回并更改早期版本,则无法再说明何时进行了哪些更改。
通过更改早期版本可以获得什么?我想弄清楚为什么你甚至想要这样做。如果您更改1月1日的修订版10并且在2月12日进行了更改,这意味着什么?那么现在修订版10不再是以前的修订版10了吗?它现在是1月1日提交还是2月12日提交?如果有人想知道我们在1月2日部署一个版本时代码是什么样的,SVN会告诉他们什么?你想做的只是打破SVN的全部概念。