Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在不使用Tortoise SVN提取源的情况下合并主干和分支?_Svn_Merge_Tortoisesvn - Fatal编程技术网

是否可以在不使用Tortoise SVN提取源的情况下合并主干和分支?

是否可以在不使用Tortoise SVN提取源的情况下合并主干和分支?,svn,merge,tortoisesvn,Svn,Merge,Tortoisesvn,我在分支中找到了包含一些特性的最新源代码。我想将它们合并到主干源 1我无法在本地提取源。因为,我必须在不同的位置合并近30多个源。 2我无法使用“复制到”选项删除中继源位置并移动分支源 因此,我只想通过单独提供源和目标位置来合并源,而不在本地拖动源。或者有没有自动化的方法 我在网上看到很多与此相关的帖子。没有一个能说明我要找的背景 我认为这是不可能的,但这是件好事。您真的希望通过提交完成所有这些源的无意识、自动合并吗?在本地副本中进行合并的意义在于,您可以对其进行全面检查,并解决在多个分支中的同

我在分支中找到了包含一些特性的最新源代码。我想将它们合并到主干源

1我无法在本地提取源。因为,我必须在不同的位置合并近30多个源。 2我无法使用“复制到”选项删除中继源位置并移动分支源

因此,我只想通过单独提供源和目标位置来合并源,而不在本地拖动源。或者有没有自动化的方法


我在网上看到很多与此相关的帖子。没有一个能说明我要找的背景

我认为这是不可能的,但这是件好事。您真的希望通过提交完成所有这些源的无意识、自动合并吗?在本地副本中进行合并的意义在于,您可以对其进行全面检查,并解决在多个分支中的同一位置发生更改时可能遇到的所有冲突。…

正如tortoise svn文章中指出的那样

... merging always takes place within a working copy.
您可以使用svn merge-accept他们的完整URL1 URL2 WCPATH来解决与给定URL中的版本的所有冲突


使用svn delete删除的源仍将是历史记录的一部分。

不,您所要求的是不可能的。合并发生在您的工作副本中。保持这种状态是个好主意,有几个原因:

可能会出现冲突,必须加以处理。 用户通常在提交新代码之前进行构建和测试,也应该在合并之后进行。 如果合并失败或者你做了一些愚蠢的事情,在你真正提交之前,你不会把事情搞砸。 如果您必须合并30多个源,那么最好的选择是使用命令行客户机实现自动化。这就是我在bash中的做法,您必须将其转换为.bat或任何您喜欢的格式:

REPOS= \
    http://... \
    http://...

for f in REPO; do
    svn co REPO/target      
    svn merge REPO/source target
    svn commit -m "Merged target into source" target
    rm -r target
done
小贴士:

使用svn帮助查看如何调用每个svn命令。 使用svn merge-在没有svn commit的情况下先干运行,以确保可以在没有任何冲突的情况下进行合并svn commit将失败,除非您先解决冲突。
我希望它更像是一个绝对的替代品。但是,如果我删除旧源并使用“复制到”选项。然后,我将丢失旧的修订详细信息。我想要旧源的修订详细信息,以便跟踪修订。我不熟悉svn。或者可以保留旧版本的详细信息,删除旧版本并移动新版本吗?嘿,不知道我帮了多少忙,但我很高兴你在最后一次整理好了,戴夫。