SVN-如何将主干中所做的更改应用于所有分支

SVN-如何将主干中所做的更改应用于所有分支,svn,merge,Svn,Merge,我是SVN的初学者。我的SVN目录结构如下: |-trunk |-file1.php |-file2.php |-branches |-branch_1 |-file1.php |-file2.php |-branch_2 |-file1.php |-file2.php svn merge -r 31:32 http://mysvnserver.com/project/branches/branch_1 在主干中,我有我的应用程序的主版本。我有

我是SVN的初学者。我的SVN目录结构如下:

|-trunk
  |-file1.php
  |-file2.php
|-branches
  |-branch_1
    |-file1.php
    |-file2.php
  |-branch_2
    |-file1.php
    |-file2.php
svn merge -r 31:32 http://mysvnserver.com/project/branches/branch_1
在主干中,我有我的应用程序的主版本。我有两个不同客户的分支,它们只在一些文件中进行了修改。当我发现一些核心bug时,我会在主干中修复它。例如,我修改了
trunk
目录中的
file1.php
。我想对所有分支中名为
file1.php
的文件应用更改

我有点困惑。在本文中,我找到了以下解释

Subversion的存储库有一个特殊的 设计。当您复制目录时,您 不必担心这个问题 巨大的颠覆 实际上不会复制任何数据。 相反,它会创建一个新目录 指向现有树的条目

因此,我认为当我在文件
trunk\file1.php
中提交更改时,它将自动应用于其他
file1.php
文件,因为我没有对
分支
目录中的文件进行任何更改

如何将更改从主干目录应用到所有分支?我尝试使用
svn merge
如下:

|-trunk
  |-file1.php
  |-file2.php
|-branches
  |-branch_1
    |-file1.php
    |-file2.php
  |-branch_2
    |-file1.php
    |-file2.php
svn merge -r 31:32 http://mysvnserver.com/project/branches/branch_1

但是我没有做任何更改(
svn diff-r 31:32
返回我所做的所有更改。)

如果要将更改从主干应用到分支,merge命令需要指定从何处获取差异,然后指定要将合并应用到的目标:

cd branch_1
svn merge -r 31:32 http://mysvnserver.com/project/trunk .
svn diff   # confirm that the only diff is your change to file1.php
svn commit
尝试:


其中
branch_1
是分支机构的本地工作目录。也就是说,首先是源地址,然后是目标地址,必须是本地地址。

谢谢。这就是我需要的。
cd workingcopy
svn merge -r 31:32 http://mysvnserver.com/project/trunk branches/branch_1
svn merge -r 31:32 http://mysvnserver.com/project/trunk branches/branch_2
svn commit -m "Merged r32 into branches"