这个例子来自 SVN 1.8。
我们使用带有主干和特征分支的通用技术。通常,功能分支是通过分支主干创建的。通过合并从主干到功能分支(变基)的更改,功能分支不断与主干保持同步。当功能分支中的开发完成后,内容将合并回主干。
当功能分支合并回主干时,对功能分支的所有更改,包括由 rebase 创建的更改,都记录在主干文件/文件夹的 svn:mergeinfo 属性中。这样做的一个后果是,当功能分支合并回主干时,功能分支中尚未更新的文件和文件夹(通过变基除外)被标记为已更改(仅限属性)。
为什么这是必要的?主干日志显示,当功能分支合并回主干时,这些文件夹/文件发生了更改,尽管功能分支中相对于主干没有文件夹/文件内容发生更改。这对我们的开发人员来说是相当混乱的,因为 TortoiseSVN 显示很多他们没有更改的文件夹/文件已经更新。这真的是理想的行为吗?