SVN-如何将主干中所做的更改应用于所有分支
我是SVN的初学者。我的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 在主干中,我有我的应用程序的主版本。我有
|-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"