当您已经拥有分支/标签时重构SVN

时间:2010-02-24 17:52:10

标签: svn

我有一个像这样结构的项目:

project
  code
  art
  config

艺术超过1Gb,在切换分支时可能会造成痛苦,而且开发人员无论如何都不需要它。所以我想把它移到一个单独的顶级项目project-art中。这在主干中很好,但我已经有一些分支正在积极工作......所以实际的当前设置更像是:

project
  trunk
    code
    art
    config
  branches
    branch123
      code
      art
      config

当分支合并回来时,我怎样才能将艺术从概念结构中移出而不会搞砸?

我可以看到一个选项是从项目/主干移动它---> project-art / trunk然后简单地删除每个分支的艺术,但这看起来很糟糕。或者,当我从主干移动它时,它会自动从分支中移除,因为它们是懒惰副本吗?

3 个答案:

答案 0 :(得分:1)

对于最终将合并回主干的功能分支,通常会将所有最新的主干更改合并到分支中,然后再将分支重新集成回主干。因此,如果你现在将艺术从树干中移出并留下树枝,那么下次与树干同步时艺术应该从树枝上删除。

答案 1 :(得分:0)

我会独自离开树枝,在树干中移动项目艺术,然后单独合并艺术品。 Subversion很难跟踪重命名(它只是一个删除和删除),并没有合并它们。

  1. 使用svn:// repo / project-art
  2. 合并svn:// repo / project / branches / branch123 / art

    然后做其余的

    1. 使用svn:// repo / project / code
    2. 合并svn:// repo / project / branches / branch123 / code
    3. 使用svn:// repo / project / config
    4. 合并svn:// repo / project / branches / branch123 / code
        

      我可以看到一个选项是移动它   来自项目/主干--->   project-art / trunk然后简单   从每个分支删除艺术,但那   好像很讨厌。

      我想如果你把艺术中的所有内容合并回主干,那么可以删除它们。因为就像你说的那样程序员不会使用它们。

        

      或者,当我从中移动它时   trunk会自动删除   因为他们很懒,所以也来自树枝   副本?

      它不会自动从分支中删除。你必须将trunk合并到分支才能实现。

答案 2 :(得分:0)

如果'art'子目录不会在任何分支中修改,那么您不必担心合并。继续前进,将“艺术”带入新的位置。分支将合并回主干而不会发生冲突,因为它们没有对“艺术”进行任何更改。