Android Studio-无法从SVN分支合并

Android Studio-无法从SVN分支合并,android,svn,android-studio,intellij-idea,branching-and-merging,Android,Svn,Android Studio,Intellij Idea,Branching And Merging,我们已经决定为我们添加到移动应用程序中的每个新功能创建一个新的SVN分支。这背后的最终目标是保存每个代码更改的历史记录(当我们手动将项目文件夹复制到SVN中而不是创建和合并分支时,不会发生这种情况) 我的问题是,到目前为止,我无法将更改从一个分支合并到另一个分支 我已经引用了以下帖子,但没有成功: 以下是我到目前为止所做的尝试: 我有两个功能分支,如下所示: 我想将分支功能_A3中的更改合并到分支功能_A2中。为此,我在Android Studio的VCS中使用A2工作副本中的合并

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

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

我已经引用了以下帖子,但没有成功:

以下是我到目前为止所做的尝试:

我有两个功能分支,如下所示:

我想将分支功能_A3中的更改合并到分支功能_A2中。为此,我在Android Studio的VCS中使用A2工作副本中的
合并自
选项:

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

我单击配置分支,只是向您显示现有的分支配置:

如你所见,A2是主干,A3是分支这是否正确?

然后它问我A3的哪一部分要合并到A2中。我选择
/src
目录(其中存在相关更改):

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

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

我点击合并选中的BAM我每次都会遇到此错误:

关于“未解决的冲突”或“跳过的项目”是什么,没有任何线索。为什么会出现这个错误,我应该如何将A3中的更改合并到A2???有人能帮忙吗?所有答案将不胜感激。谢谢

我一直遵循以下Intellij IDEA官方文档:

请注意:

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

  • 本地工作副本的目录结构不完全相同 与SVN回购协议相同。这可能是错误的原因吗

答案…

感谢,尤其是他们的宝贵反馈。正如Yoav正确指出的,这确实是指定branch locations文件夹的方式。它需要包含分支的文件夹,而不是分支文件夹本身:正如Peter正确地说的,选中“包含合并的修订”将显示合并的历史记录。现在,我可以从IDE本身中进行合并,并在OrtoiseSVN中查看合并的历史。 没有命令行<强>耶


然而,最后一个问题是,我无法在Android Studio(Intellij IDEA)中查看合并的历史记录,如中所述。有人知道如何在Android Studio中实现这一点吗?

我不是SVN专家,但我认为您需要更改目录结构。我相信,尽管这只是一种约定,svn还是使用目录结构来合并分支。因此,您的目录结构应该是:

SVN
   /Android
      /branches
         /production
         /featureA2
         /featureA3
      /tags 
      /trunk
  /IOS
      /branches
         /production
         /featureA2
         /featureA3
      /tags 
      /trunk

尽管TortoiseSVN Repo浏览器允许您移动目录,但每个目录上都存储了大量元数据,用于处理合并过程,因此您可能需要重新启动Repo。有关如何设置回购协议的更多详细信息,请参阅和。综上所述,我不太愿意依靠Android Studio的svn集成来完成繁重的工作,比如合并分支(尽管JetBrains工具中的大多数东西都非常棒),因为它对svn的处理还有很多需要改进的地方。

Phew,有一段时间没有使用svn了……:)

但据我记忆所及,分支机构的位置应该是包含分支机构文件夹(而不是每个分支机构文件夹)的文件夹

您可以看到,通常SVN回购遵循标准命名约定和文件夹结构:

trunk/
branches/
  Feature_A2/
  Feature_A3/
tags/
  v1.01/
  v1.02/

and so on...
主干
是进行主要开发的地方,
分支
用于功能、长期或风险项目,或用于不同阶段(如QA和预生产)

所以,据我所知,Android Studio希望您将
分支位置设置为
分支
文件夹。在你的情况下,我认为应该是
http://192.168.0.64/svn/.../Android/Feature

此外,您的
中继线
不是
Feature\u A2
——Feature\u A2只是另一个分支。
虽然我看不到内容,但我认为
http://192.168.0.64/svn/.../Android/Development
可能是您的行李箱

这应该不会给您带来太多麻烦,因为您不必合并到主干,您也可以在分支之间合并(例如,将功能_A3合并到功能_A2)

因此,总结一下:

  • 虽然不是强制性的,但我建议重命名你的文件夹以符合约定(你可以通过右键单击龟甲SVN轻松做到,但只有在所有队友都提交后,否则合并对他们来说将是一个地狱)
  • 尝试将分支位置设置为
    http://192.168.0.64/svn/.../Android/Feature
  • Trunk
    to
    http://192.168.0.64/svn/.../Android/Development
    (仅当它确实包含源时,类似于功能_A2/3)
  • 考虑在
    tags
    文件夹中“标记”您的发行版(这几乎只是将主干/分支文件夹复制到标记中,但您有一个用于标记的命令)

    如果这样做,您还可以将
    标记
    文件夹添加到
    分支位置
    ,这样您就可以将当前源代码与任何以前的版本进行比较(这很方便)

  • 注意:
    “未解决的冲突”错误也可能意味着您有未解决的冲突(duh:)。冲突是