我如何将文件提交给我刚刚忘记提交的SVN(调整它的修订版号)

时间:2009-05-29 20:25:37

标签: svn tortoisesvn

所以我很高兴使用subversion定期提交与我的大量Visual Studio解决方案相关的项目堆栈中的文件。

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

当我去编译项目时,不知何故有10或3个文件在10月被忽略了。让我们说他们直到第99次复活才得到承诺,或者更好的是,他们仍然没有承诺。

有没有办法调整文件上的提交编号,以便它与你想要的正确的修订相匹配?因此,如果我重新导出修订版37,我将在Visual Studio中获得正确且可行的解决方案吗?

5 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:3)

这是可能的,但要求你不要胆怯,知道SVN存储库转储格式并且有稳定的手(和备份)。

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

不幸的是,格式不适合胆小的人(它类似于带有扩展名的HTTP,大多数字段都以其长度开头),并且打破它非常容易。

它也不是真的推荐;现在只提交文件,将来要小心。

答案 2 :(得分:1)

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

如果可以按照您的要求进行操作,则会破坏版本控制的整个概念:拥有可靠的提交历史记录。

答案 3 :(得分:0)

看起来似乎不可能。

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

答案 4 :(得分:0)

听起来你真的不在乎它是修订版37.相反,你试图重新导出一个具有特定真实世界属性的修订版(即rev 37碰巧是你给你的客户的那个)

正如Matt所说,你真的想要从rev 37创建一个分支。实际上,这意味着你要将rev 37复制到一个Subversion目录,其名称可以解释它是什么,例如/ branches / client-一个。然后,将缺少的文件添加到分支并提交。然后,您可以从/ branches / client-A导出以获得所需内容。