我想在分支中提交我的更改,并使用 Android Studio 中的内置 svn 工具将这些更改添加到主干版本。我该怎么做?
我应该期待这个内置工具的这种功能,还是应该使用像 TurtoiseSVN 这样的外部工具?
我想在分支中提交我的更改,并使用 Android Studio 中的内置 svn 工具将这些更改添加到主干版本。我该怎么做?
我应该期待这个内置工具的这种功能,还是应该使用像 TurtoiseSVN 这样的外部工具?
5年后...
我正在使用 Android Studio 3.1.5 和 SVN。
要将分支合并回其主干:
-> TortoiseSVN -> Switch
。Version Control -> Subversion Working Copies Information -> Refresh
。查看URL字段是否指向您的主干。Version Control -> Subversion Working Copies Information -> Merge From...
。在小弹出窗口中,选择要合并到主干的分支。它还可能会询问您要合并所述分支中的哪个目录或文件。做出适当的选择。Select Merge Variant
窗口中,大多数时候我选择全部合并,因为这通常是目标。单击确定。注意:我更喜欢先将主干合并到我的分支。解决分支中的冲突,最后合并回主干。
我个人的做法与官方文档略有不同。但基本上创建一个分支只是复制我理解的文件夹。另一方面,合并似乎有点复杂,因为每个变化的参考都必须存在。例如删除或移动文件夹必须是提交的更改,它不能在没有 SVN 中的引用的情况下完成。
他们的方法也是保持主文件夹的当前名称,但使一些子文件夹名称表明它是一个分支。
正如 IntelliJ Doc 的这个链接上所说(Android Studio 和 IntelliJ IDEA 的 Android 插件是由相同的代码构建的)
要将分支更改合并回主干,您应该打开主干工作副本并执行与从主干更改到分支时相同的步骤(在弹出窗口中选择源分支)。此外,您将被警告:
合并信息收集规则 为了能够将更改合并回主干(使用 Subversion “--reintegrate”),您不应该在工作副本根目录的其他目标上进行任何合并,即您不应该有任何 svn:mergeinfo在工作副本子树中设置的属性。这就是为什么在检查哪些修订被合并时,默认情况下,IntelliJ IDEA 不会检查子树中的合并信息。但是如果你不知何故需要检查子树,你应该去“设置| 版本控制 | VCS | Subversion”并设置“在准备合并时检查目标子树中的 svn:mergeinfo”。
更多信息和完整文档位于:https ://devnet.jetbrains.com/docs/DOC-1203
编辑:
回答错误:svn:E195016:缺少子树时不允许合并跟踪:
当有人在不使用 Subversion 命令的情况下删除某些内容时,就会出现该错误。如果您要在该工作副本上运行 svn status,Subversion 抱怨的相同路径应该!
在输出的第一列中显示为 a。尝试使用svn rm
而不是操作系统命令。