我是SVN的初学者.我有这样的SVN目录结构:
|-trunk
|-file1.php
|-file2.php
|-branches
|-branch_1
|-file1.php
|-file2.php
|-branch_2
|-file1.php
|-file2.php
Run Code Online (Sandbox Code Playgroud)
在后台我有我的应用程序的主要版本.我有两个分支用于不同的客户端,仅在某些文件中有修改.当我发现一些核心错误时,我将它固定在trunk中.比如我修改了file1.php在trunk目录中.我想对file1.php所有分支中指定的文件应用更改.
我有点困惑.在使用Subversion的版本控制中,我找到了以下解释.
Subversion的存储库有一个特殊的设计.复制目录时,您不必担心存储库增长巨大 - Subversion实际上并不复制任何数据.相反,它会创建一个指向现有树的新目录条目.
所以我虽然当我在文件中提交更改时,trunk\file1.php它将自动应用于其他file1.php文件,因为我没有对branches目录中的文件进行任何更改.
如何将trunk目录中的更改应用到所有分支?我试图这样使用svn merge:
svn merge -r 31:32 http://mysvnserver.com/project/branches/branch_1
Run Code Online (Sandbox Code Playgroud)
但我没有做任何更改(svn diff -r 31:32返回我所做的所有更改.)
Eth*_*her 10
如果你想申请从主干到branch_1变更,合并命令需要指定要得到DIFF 从,然后指定一个目标应用合并到:
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
Run Code Online (Sandbox Code Playgroud)