SVN-管理修订的部分合并

SVN-管理修订的部分合并,svn,branch,merge,Svn,Branch,Merge,所以我有一个问题,在颠覆中给我带来了很多悲伤。我在一个分支中工作,该分支应该保持活动状态,直到我的功能集在重新集成之前完成开发。不幸的是,我完成的一些工作现在被业务部门认为是“任务关键型”的,他们希望我从分支机构中挑选出该功能,并将其推到主干中,以便QA能够获取该功能 我遇到的问题是,我在一个单独的目录中开发了这个功能,而这个目录是我在处理其他完全不同的东西时创建的。因此,为了合并我的功能所需的其余代码,我首先需要拉入我之前创建的目录 以下是我需要进行的修订: 修订版20 A./项目_foo A

所以我有一个问题,在颠覆中给我带来了很多悲伤。我在一个分支中工作,该分支应该保持活动状态,直到我的功能集在重新集成之前完成开发。不幸的是,我完成的一些工作现在被业务部门认为是“任务关键型”的,他们希望我从分支机构中挑选出该功能,并将其推到主干中,以便QA能够获取该功能

我遇到的问题是,我在一个单独的目录中开发了这个功能,而这个目录是我在处理其他完全不同的东西时创建的。因此,为了合并我的功能所需的其余代码,我首先需要拉入我之前创建的目录

以下是我需要进行的修订:

修订版20
A./项目_foo
A./project\u foo/not\u required\u file.txt

修订版24
A./project\u foo/required\u file.txt

所以要把这个放进后备箱,我必须做以下工作:

svn merge-r20:21->这将获得目录以及非必需的文件.txt
svn revert project\u foo/not\u required\u file.txt->删除我不想要的文件
svn merge-r24:25->这将为我获取所需的文件

这很管用,把东西放进了我想要的主干中,但当我完成开发并运行svn merge——reintegrate时,我(显然)没有从修订版20中得到not_required_file.txt,因此在它上遇到了树冲突(来自我后来所做的进一步更改)

因此,我正在寻找一些关于在这些情况下该怎么做的指导

  • 是否有一种方法可以只合并特定修订版中我想要的特定更改
  • 当我重新集成整个分支时,有没有办法抓住我故意错过的更改
  • 我可以在主干中创建所需的目录结构,然后仅合并文件更改吗
  • 我可以创建另一个分支,将所需的更改移到那里,重新整合该分支,然后从主干拉到原始分支吗
谢谢。

问得好。:-)

看起来你的树枝有点乱。你有很好的解决方法。如果有效?尝试一下,有时候你永远不知道

我想你不需要合并rev。在你的例子中,21先于24。无论如何,将创建丢失的目录

如果您不能帮助自己进行分支/合并,请尝试手动移动文件(龟帮您)

通常,避免部分合并修订。多做些承诺,这样你就可以更干净地采摘樱桃了

有没有一种方法可以只在 我希望从一个 具体修订

如果您不想要完整的修订版,我会手动复制您想要的内容,方法是创建一个补丁文件并将其应用到另一个分支并提交。这样,subversion就不会在以后(当您重新集成分支时)跳过该修订,而是尝试合并它,您只需处理手动复制内容上的普通冲突,但它也会合并您最初想要跳过的部分

在创建/删除/添加文件的情况下,它将在重新整合时创建该文件,并避免树冲突,因为您想要的“部分修订”从未正式合并

在没有创建/删除/移动文件的情况下,可以避免忘记的可能性 以前合并修订时排除了部分修订

按照上述步骤,您将无法进行下一步操作:

有没有办法抓住那只猫 当我离开时,我故意错过的改变 重新整合整个分支

如果您不合并部分修订,subversion不会故意排除任何记录的内容,您只需在已复制的部分上处理普通冲突即可

在您的情况下,您可以告诉subversion再次合并该单独的修订,执行与以前相反的操作(解决冲突或恢复您最初想要的部分,同时保留您最初遗漏的部分),但我不确定一旦合并已被记录,这将如何工作

或者,如果您使用TortoiseSVN,您应该能够在日志中选择修订(在您的功能分支上),右键单击您关心的作为该修订一部分修改的文件,然后“将更改显示为差异”,保存该更改,并手动将其应用回主干(或重新整合分支的目标分支)

我可以创建目录结构吗 我需要在后备箱,然后合并 只对文件进行更改

试试看。最糟糕的情况是,您签出另一个工作区或手动修复文件的内容(如果文件跳过它)

我是否可以创建另一个分支,移动 需要在那边进行更改, 重新整合该分支,然后拉动 从主干到我原来的分支

现在你只是让我的头受伤:)手动修复对我来说似乎工作量减少了。我将修复您在主干上排除的部分,然后重试重新整合分支


希望这其中的某些部分是有帮助的。

只需将缺少的文件夹从分支递归地“svn复制”到主干。

对于您当前的问题,您可以研究SVK,它比svn具有更好的合并支持(或者上次我使用svn时,它的强度足以进行合并):

我注意到您提到了多个团队的技术能力水平不同的问题,因此SVK并不是最好的解决方案。实际上,我更喜欢git svn而不是SVK,因为它提供了类似的好处(甚至比svn或SVK更好的合并)

根据您的技能水平范围的低端,SVK可能与SVN足够接近,因此它可以实现这一点,但它确实添加了一些额外的步骤来推动更改,我不知道在Windows下它的支持程度如何(或如果it I