Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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
SVN工具以git样式重新设置分支的基础_Svn_Git_Version Control - Fatal编程技术网

SVN工具以git样式重新设置分支的基础

SVN工具以git样式重新设置分支的基础,svn,git,version-control,Svn,Git,Version Control,有没有可用的工具可以让我以git风格将SVN分支重新基址到新的父级上 因此,在下面的情况下,我创建了一个feature分支,并提交到主干 E---F---G Feature / A---B---C---D--H--I trunk 我正在寻找一种工具,它可以复制主干,并一个接一个地应用提交,允许我解决任何冲突(如果存在),但每个提交都保留相同的提交消息,并且仍然是一个单独的提交 E'---F'---G

有没有可用的工具可以让我以git风格将SVN分支重新基址到新的父级上

因此,在下面的情况下,我创建了一个feature分支,并提交到主干

              E---F---G  Feature
             /
A---B---C---D--H--I trunk
我正在寻找一种工具,它可以复制主干,并一个接一个地应用提交,允许我解决任何冲突(如果存在),但每个提交都保留相同的提交消息,并且仍然是一个单独的提交

                    E'---F'---G'  Feature
                   /
A---B---C---D--H--I trunk
因此,提交E’将是一个与E具有相同更改的提交,但E引起冲突的情况除外,在这种情况下,E’将不同于E,因为E’已解决冲突,并且提交消息与E相同


我在寻找这一点,因为它有助于使分支与主干保持最新-svnmerge.py/mergeinfo方法没有帮助,因为当您合并回主干时,仍然需要解决您的更改。

为了使分支与主干中的更改保持最新,您只需使用
svn merge
将主干合并到分支中

svn的实用程序中有一个。我从未使用过它,因为它创建了一个新的分支。

我是一个很长时间的SVN用户,但至少对我来说,在git中重新设置分支基础的能力似乎是它最重要的功能。不幸的是,所有光鲜亮丽的git营销手册似乎都把分布式存储库的“功能”作为重点——这对于我们的场景来说并不重要。

该工作流在git中有直接的等价物,
git merge
。他在问Subversion中是否有与git rebase相当的东西。是的,很可能是这样。当使用git时(我知道git甚至可以使用现有的SVN回购),这可能确实是最好的选择。然而,当使用SVN时,使现有SVN分支与主干中的最新更改保持同步的方法是按照我所写的操作-这就是我这样写的原因。@Ben我知道subversion中没有等效的工具,但我想知道是否有任何第三方工具可以有效地rebased@sbi我对合并trunk中的更改对我们的工作方式不满意。我们被困在一个预合并信息存储库中,当您从主干中合并分支时,您仍然可能会陷入冲突的地狱。正如我在文章中所描述的,与等待重新集成相比,使用rebase可以更易于管理地解决冲突。@sbi
git rebase
在git中不是“最好的选择”。这只是一种方法,Git是多功能的。问题是Subversion(没有这种多功能性)是否有任何第三方工具来添加这种多功能性。答案可能是“不”。SVN让这很难做到。作为一个post步骤,您可以删除预重定基址的分支,并将其替换为重定基址的版本。我认为只要有人试图更新本地更改,svn就会爆炸。