如何svn合并分支到trunk,包括文件删除和文件添加?

时间:2013-04-22 22:19:35

标签: svn merge

使用“svn merge --reintegrate”成功地将分支合并回到主干,关于删除的分支文件也在主干上被删除。这就是我的期望和想要。好。

但是它没有将文件添加到分支上添加的主干。当“svn merge --reintegrate”复制添加的文件到trunk工作目录时,它们没有添加到svn,当然也没有提交。我没想到这一点。坏。

如何安全地合并分支到主干更改,包括文件删除和文件添加?

这就是我做的

my-bug-fix分支是从主干上的最后一个正式版本创建的。这是一个单一的开发人员项目,但我仍然设法弄乱了合并并打破了构建。

在合并之前,我将分支和主干检出到“staging”文件夹中,以便轻松实现差异化。我希望差异可以保证合并是我提出之前的预期。不幸的是,diff并不知道添加的文件没有添加到svn。

mkdir merge-staging
cd merge-staging
svn co https://myserver.com:8443/svn/myproject/branches/my-bug-fix/ branch
svn co https://myserver.com:8443/svn/myproject/trunk/ trunk
cd trunk
svn merge --reintegrate https://myserver.com:8443/svn/myproject/branches/my-bug-fix/
echo Perform diff between branch and trunk to verify the trunk now matches branch.
diff -r  --exclude=".svn" branch/ trunk/

svn --version
svn, version 1.6.15 (r1038135)
   compiled Nov 25 2010, 00:08:34

[esutton@esutton-vm-rhel merge]$ svn status trunk
X       trunk/common/externals
?       trunk/common/scripts/strip-dbg-sym.sh

提前感谢任何方向, -Ed

1 个答案:

答案 0 :(得分:1)

  1. 如果是merge --reintegrate,为什么我之前看不到合并后的trunk到my-bug-fix分支?
  2. 为什么我看不到命令​​的实际输出?
  3. 为什么我看不到您的svn --version
  4. 为什么我看不到'svn log -v -q'为您的回购提供转速问题?
  5. svn status代替差异将可用
  6. 回到问题:

    我无法确认或重现描述的效果

    >svn log -v file:///Z:/Repo
    ------------------------------------------------------------------------
    r9 | Badger | 2013-04-23 07:32:26 +0600 (Вт, 23 апр 2013) | 1 line
    Changed paths:
       M /trunk
       M /trunk/fleA.txt
       D /trunk/fleB.txt
       A /trunk/fleC.txt (from /branches/corrections/fleC.txt:8)
    
    Reintegrated branch to trunk
    ------------------------------------------------------------------------
    r8 | Badger | 2013-04-23 07:30:04 +0600 (Вт, 23 апр 2013) | 1 line
    Changed paths:
       M /branches/corrections
       M /branches/corrections/fleA.txt
    
    Merged trunk to branches/corrections
    ------------------------------------------------------------------------
    r7 | Badger | 2013-04-23 07:25:40 +0600 (Вт, 23 апр 2013) | 1 line
    Changed paths:
       D /branches/corrections/fleB.txt
    
    Deleted fleB.txt
    ------------------------------------------------------------------------
    r6 | Badger | 2013-04-23 07:24:57 +0600 (Вт, 23 апр 2013) | 1 line
    Changed paths:
       A /branches/corrections/fleC.txt
    
    Added fleC.txt
    ------------------------------------------------------------------------
    r5 | Badger | 2013-04-23 07:23:37 +0600 (Вт, 23 апр 2013) | 2 lines
    Changed paths:
       M /branches/corrections/fleA.txt
    
    Added string to fleA.txt
    
    ------------------------------------------------------------------------
    r4 | Badger | 2013-04-23 07:22:12 +0600 (Вт, 23 апр 2013) | 2 lines
    Changed paths:
       M /trunk/fleA.txt
    
    Edited fleA.txt
    
    ------------------------------------------------------------------------
    r3 | Badger | 2013-04-23 07:20:25 +0600 (Вт, 23 апр 2013) | 1 line
    Changed paths:
       A /branches/corrections (from /trunk:2)
    
    Branch for changes
    ------------------------------------------------------------------------
    r2 | Badger | 2013-04-23 07:17:25 +0600 (Вт, 23 апр 2013) | 1 line
    Changed paths:
       A /trunk/fleA.txt
       A /trunk/fleB.txt
    
    Starting point
    ------------------------------------------------------------------------
    r1 | Badger | 2013-04-23 07:15:06 +0600 (Вт, 23 апр 2013) | 1 line
    Changed paths:
       A /branches
       A /tags
       A /trunk
    
    Imported folder structure
    ------------------------------------------------------------------------
    

    >svn ls -v file:///Z:/Repo/trunk
          9 Badger                апр 23 07:32 ./
          9 Badger             52 апр 23 07:32 fleA.txt
          9 Badger             40 апр 23 07:32 fleC.txt