标签: branching-and-merging

当SVN无法合并且Mercurial成功时

在它出现之前,我已经看过这个主题的几个主题,包括:

我正在寻找为我们的开发小组切换到Mercurial(来自Subversion).在我这样做之前,我正在做通常的利弊列表.

我的"优点"之一是Mercurial的合并优势,但到目前为止,我没有找到令人信服的证据.也就是说,在HgInit.com上发表声明,我无法核实:

例如,如果我稍微更改一个函数,然后将其移动到其他地方,Subversion就不会真正记住这些步骤,所以当合并的时候,它可能会认为一个新的函数只是出现了蓝色.Mercurial将分别记住这些事情:功能已更改,功能已移动,这意味着如果您稍微更改了该功能,则Mercurial更有可能成功合并我们的更改.

这将是非常引人注目的功能,但据我所知,这只是热空气.我一直无法验证上述声明.

我创建了一个Mercurial存储库,做了一个Hello World,然后克隆了它.在一个我修改了函数,提交它然后移动它,然后提交它.在另一个中,我只是在函数中添加了另一个输出行并提交了.

当我合并时,我得到的基本相同的合并冲突我将使用Subversion.

我知道mercurial可以更好地跟踪文件重命名,除了合并之外DVCS还有其他优点,但我对这个例子很感兴趣.乔尔斯波尔斯基在这里偏离基地,还是我错过了什么?

我在这方面没有经验,但看起来确实如此,因为Mercurial保留了更多的信息,理论上它可以更好地合并(如果开发人员也经常进行签名).例如,我认为Mercurial可以通过比较多个更改来获取上下文更改,例如,我修改函数,签入,移动函数,签入,以及Mercurial将这两个部分关联起来.

但是,Mercurial的合并似乎并没有真正利用添加的信息,并且似乎与Subversion的操作方式相同.它是否正确?

svn merge mercurial branching-and-merging

19
推荐指数
1
解决办法
1188
查看次数

在git merge上覆盖作者

是否有像git-commit的git-merge这样的选项?

我们维护一个必须执行某些更改的暂存环境.一些限制使我们只使用一个Linux用户来访问登台环境.

无论如何,我们是一个有合作倡议的小团队,我们在做提交时告诉,哪一个是使用--author git-commit选项的作者.但是,有时我们需要从其他分支合并,这会导致非ff合并.这意味着在执行此合并时会执行提交.

在这种情况下,哪个是手动为合并提交指定作者的最佳方法?

git version-control git-merge branching-and-merging git-branch

19
推荐指数
3
解决办法
5719
查看次数

SVN策略使用分支,并将变化从主干合并到分支

这么长时间的SVN用户,但在分支/标记方面相当缺乏经验,当我怀疑我没有真正正确使用它或充分发挥其潜力.

我有我的主干,我正在努力添加新的功能等.这个代码库用于多个网站,我们在每个项目的基础上创建一个分支机构.

每个分支通常都有特定于该项目的修改,我们认为可重复使用的任何内容都会添加到主干中,并且可以在各种项目上打开和关闭功能.

目前,当我们对主干进行更改,并希望在预先设置的分支中进行修改时,我必须通过手动将某些修订合并到分支中并重新发布它们.不理想,容易错过的东西.

所以,我的问题......有没有办法用中继的所有更改来更新我的分支,并处理它们就好像它是冲突的标准主干更新?

我已经看到将分支重新集成到主干,但由于我在这种情况下使用分支的方式,这不是我想要做的事情.

svn branch svn-merge svn-update branching-and-merging

19
推荐指数
1
解决办法
1万
查看次数

Github - 合并被阻止(令人困惑/误导性的错误消息)

我创建了一个拉取请求,我的审批者请求进行一些更改,我将这些更改标记为已解决并单击re-request按钮,但没有查看合并是否被阻止或解除阻止。那么现在要解除合并阻止,审批者是否需要再次审核更改并批准它?因为下面的消息并没有说需要审稿人批准。

一旦请求的更改得到解决,合并就可以自动执行。

合并被阻止

git github branching-and-merging git-branch

18
推荐指数
2
解决办法
2万
查看次数

颠覆 - 干线真的是主要发展的最佳位置吗?

在SVN中,trunk是主要开发的推荐位置,我将这个约定用于我的所有项目.但是,这意味着行李箱有时不稳定,甚至破损.例如,这发生在

  • 我犯错了
  • 由于SVN的工作方式,主干只需要断开.规范示例是文件重命名 - 您必须先提交任何文件重命名,然后再进行任何进一步修改; 但是,文件重命名可能需要代码重构以反映命名空间或类名更改,因此您基本上需要分两步提交单个逻辑操作.并且在步骤1和2之间打破了构建.

我可以想象会有工具来防止错误地提交某些东西(例如TeamCity和延迟提交),但你真的可以克服第二个问题吗?如果没有,那么在某些分支上进行"狂野开发"会不会更好/branch/dev,只有当构建相当稳固时才合并到主干?

svn branching-and-merging

17
推荐指数
4
解决办法
5567
查看次数

Mercurial - 关闭默认分支并将命名分支替换为新默认分支

在一个mercurial repo中,"默认"分支已经过时了,以至于在"开发"(一个具有应用程序的最新部署版本的命名分支)的变化中合并不再有意义.

不是将develop合并到默认值,而是如何关闭当前的默认分支,然后使用develop的head创建一个新的默认分支?

我已经看到了一些类似的问题和答案,也许是相同的,但我仍然无法理解这应该如何工作.

谢谢!

mercurial branching-and-merging

17
推荐指数
1
解决办法
4180
查看次数

如何查找master中所有未合并的提交按照创建的分支分组?

我必须从未合并的分支机构创建一些代码审查.

在寻找解决方案时,我们不要去本地分支上下文问题,因为这将在服务器上运行; 只有原点远程,我会在其他命令之前运行git fetch origin命令,当我们谈论分支时,我们将引用origin/branch-name.

如果设置很简单,并且每个源自master的分支继续以自己的方式继续,我们可以运行:

git rev-list origin/branch-name --not origin/master --no-merges
Run Code Online (Sandbox Code Playgroud)

对于每个未合并的分支,并将结果提交添加到每个分支的每个审阅.

当2-3个分支之间存在合并并且其中一些分支继续工作时会出现问题.正如我所说,对于每个分支,我想创建程序化的代码审查,我不想在多个评论中包含提交.

主要是每次提交找到原始分支时出现问题.
或者更简单一点......找到所有未创建的提交,这些提交按照他们最有可能创建的分支进行分组.

让我们关注一个简​​单的例子:

      *    b4 - branch2's head
   *  |    a4 - branch1's head
   |  *    b3
   *  |    merge branch2 into branch1
*  |\ |    m3 - master's head
|  * \|    a3
|  |  |
|  |  *    b2
|  *  |    merge master into branch1
* /|  |    m2
|/ |  *    merge branch1 into …
Run Code Online (Sandbox Code Playgroud)

git branch commit branching-and-merging

17
推荐指数
1
解决办法
5216
查看次数

Android Studio - 无法从SVN分支合并

我们已决定为我们添加到移动应用程序中的每个新功能创建新的SVN分支.这背后的最终目标是保留每个代码更改的历史记录(当我们手动将项目文件夹复制到SVN而不是创建和合并分支时,这不会发生).

我的问题是,到目前为止,我无法将更改从一个分支合并到另一个分支.

我已经提到以下帖子但没有成功:

这是我到目前为止所尝试的:

我有两个功能分支,如下面Tortoise SVN中所示:

在此输入图像描述

我想将分支Feature_A3中的更改合并到分支Feature_A2中.为此,我Merge from在A2工作副本中使用Android Studio的VCS中的选项:

在此输入图像描述

然后它要求我选择要从(A3)合并的分支或配置其他分支:

在此输入图像描述

我点击配置分支,只是为了显示现有的分支配置:

在此输入图像描述

如您所见,A2是Trunk,A3是分支.它是否正确?

然后它问我想要合并到A2的A3部分.我选择/src目录(存在相关更改的位置):

在此输入图像描述

然后它慷慨地给了我三种不同的方式来执行合并操作:

在此输入图像描述

我选择了第三个选项,因为它直接给了我需要合并的更改:

在此输入图像描述

我点击Merge SelectedBAM!我每次都会收到此错误:

在此输入图像描述

关于"未解决的冲突"或"跳过的项目"是什么,没有任何线索.为什么我会收到此错误,如何将A3中的更改合并到A2中?有人可以帮忙吗?所有答案将不胜感激.谢谢 ...

我一直在关注以下官方的Intellij IDEA文档:

请注意:

  • 目前我使用的是Subversion,而不是Git.

  • 我本地工作副本的目录结构与SVN repos的目录结构不完全相同.这可能是错误的原因吗?

答案 ...

感谢Peter Parker,尤其是Yoav Aharoni的宝贵意见.正如Yoav正确指出的那样,确实是指定分支位置文件夹的方式.它需要是包含分支的文件夹,而不是分支文件夹本身:正如Peter正确地说的那样,选中"Include merged revisions"会显示合并的历史记录.我现在能够从IDE本身合并,并在TortoiseSVN中查看合并的历史记录.没有命令行!好极了!!! …

svn android intellij-idea branching-and-merging android-studio

17
推荐指数
1
解决办法
4349
查看次数

SVN分支与本地修改

我一直在对行李箱做一些小修理,但是我希望我能够为我现在正在做的事情进行扩展.现在在Tortoise SVN中最简单的方法是什么?

我认为这是分支时"工作副本"选项的用途,但我看到以下说明:

工作副本 - 新分支是本地工作副本的相同副本.如果您已将某些文件更新为WC中的旧版本,或者您已进行了本地更改,那么这正是副本中的内容.当然,这种复杂的标记可能涉及将数据从WC传输回存储库(如果它已经不存在).

它让我想知道粗体部分是指更新主干或您即将创建的新分支.我会想到后者,但只是想在我做之前检查一下.或者如果还有其他方法我应该这样做,请告诉我.谢谢!

svn tortoisesvn branching-and-merging

16
推荐指数
2
解决办法
7257
查看次数

我的git分支在Sourcetree中显示'origin/master'和'origin/HEAD',我不知道如何合并这两个

我最近合并了一个我正在与'master'分支合作的分支.我必须(仍然是一种git n00b)在推或拉时创造了一个origin/master和一个origin/HEAD分支.不幸的是,我没有记录我运行的命令.目前,我的团队在他们的主副本中有一堆代码,当我签出项目时,我没有得到这些代码(即使我clone到了新的位置).

这是Sourcetree显示的屏幕截图:

2个分支

我真的需要解决这个问题,所以我可以继续工作,所以任何帮助都将不胜感激.

git branching-and-merging

16
推荐指数
2
解决办法
2万
查看次数