【问题标题】:SVN cherry pick issue - mergeSVN 樱桃挑选问题 - 合并
【发布时间】:2017-02-26 12:31:15
【问题描述】:

简介

我的问题部分基于 q/a @ TortoiseSVN cherrypicking 说明。 我可以毫无问题地在 git 中挑选,但在当前团队中,我们使用 SVN。

我在主干上有一个提交,我想复制到一个分支。我不想将一个分支合并到另一个分支中,或者将主干合并到分支中,或者将分支合并到主干中,或者任何包括将更改历史从一个复制到另一个的内容。

我正在使用trortise SVN

第 1 步:我转到处理更改文件的特定文件夹

第 2 步:我选择合并

第 3 步:从一系列修订中合并

第四步:合并选项

问题

假设发生了合并,但我看到目录中的实际单个 java 文件尚未使用主干的更改进行更新。

此外,唯一表明发生更改的迹象是当我提交时,表明文件夹的属性已更改。但是,我对提交这些内容不感兴趣,因为我被指示不要提交文件夹属性更改

这非常令人沮丧,一些使用 intelli-j 的同事似乎能够很容易地做到这一点......尤其是从 working code 提交特定文件/更改到另一个分支。

更新:我的解决方法是切换到Intelli-j

我不太喜欢tortoise svn对待selective merging 的方式。我切换到intelli J 并概述了我如何做我需要做的事情。我也意识到cherry picking 不如selectively merging 那么多。 这意味着也会出现冲突,需要解决。没有git那么大。

按照这两个步骤/屏幕,intelli-j 会要求您解决冲突(如果存在)。然后它会创建一个包含已合并的特定文件的更改列表。然后你提交。

【问题讨论】:

    标签: svn version-control merge tortoisesvn


    【解决方案1】:

    乌龟完全按照你的吩咐去做;它仅记录合并发生,但没有执行实际合并。这就是选项在第 4 步中图片中的作用(来自the command-line tool's description of the option):

    启用svn merge的特殊模式,其中指定的合并操作记录在本地合并跟踪信息中,但不实际执行。

    SVN 记录合并的方式是将有关源 URL 和版本的信息存储在该文件/文件夹的 svn:mergeinfo 属性中,这就是您看到文件夹属性修改的原因。

    如果您未选中此选项,则合并将按照您的预期进行。

    【讨论】:

    • 但是子树合并仍然是The Bad Idea (tm)
    • @Patrick Quirk 我认为这意味着它实际上会合并文件,但不会记录信息——所以我的理解正好相反。感谢您清除它!
    猜你喜欢
    • 2018-07-23
    • 2012-01-11
    • 2013-01-07
    • 2010-09-18
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多