gpt4 book ai didi

svn - 使用 Subversion,如何从一个文件中剪切并粘贴到另一个保留历史记录

转载 作者:行者123 更新时间:2023-12-03 21:42:09 24 4
gpt4 key购买 nike

情况是我花了一些时间来处理一些实验代码。我现在想将该代码的一部分——大约 500 行——移动到另一个文件中,但我不想丢失历史记录,就像我做一个简单的文本编辑器剪切和粘贴一样。

我知道如何将代码从原始文件中分离出来 - svn copy,然后从两个副本中删除不需要的东西。但我不知道如何将该部分副本附加到现有文件中,同时保留两者的历史记录。

这很重要的原因基本上是代码只是非常专业的东西,以帮助实现一些更高级别的功能。我不希望它污染全局命名空间,所以我希望所有这些都在一个文件中,它将被使用并包装在一个匿名命名空间中。

我意识到这听起来像是将一个分支合并回主干。问题是,没有分支。实验代码并不是从任何东西的副本开始的——它只是一堆从头开始的代码。我想剪切的文件和我想粘贴的文件是完全独立的文件。

我主要使用 TortoiseSVN,但也安装了命令行 subversion。

最佳答案

您可以像这样将一个文件的所有修订(或特定修订)合并到另一个文件中

svn merge sourcefile targetfile -r 0:HEAD

起初我以为必须使用 --ignore-ancestry选项(因为这两个文件不共享任何共同的历史记录)但显然这不是必需的。我用 svn 1.6.3 测试过。

你当然很可能在合并结果中得到很多冲突标记。手动进行合并可能更容易(如您所说的复制和粘贴合并),然后使用 --record-only 运行上述合并命令告诉颠覆它。

合并后, targetfile会有 svn:mergeinfo指示从 sourcefile 提交的属性在哪里合并到它。当您检查 targetfile 的日志时,您可以使用 --use-merge-history 查看这两个文件的历史记录。选项。 TortoiseSVN 在日志表单中以复选框的形式具有相同的功能。

关于svn - 使用 Subversion,如何从一个文件中剪切并粘贴到另一个保留历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1557658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com