【问题标题】:svn merging specific files within revision rangesvn合并修订范围内的特定文件
【发布时间】:2012-05-22 00:55:39
【问题描述】:

我正在为具有 DEV 代码库和 PROD 代码库的现有环境设置 SVN。 DEV 有大量待定更改,因此代码库存在很大差异。

我建立了一个基于 prod 的 TRUNK repo。然后,我将该 repo 签出到 DEV 并提交到一个新的 DEV 分支。

所以 TRUNK 看起来像: REV 1 - 初始代码导入

和 DEV 看起来像: REV 1 - 初始代码导入 REV 2 - 添加开发更改

我的问题是我希望能够合并从 DEV 到 TRUNK 的特定文件集的更改,这些文件是 REV 2 的一部分,仅用于这些文件。

换句话说,假设开发人员完成了一个项目并将 FILE1 作为 REV3 提交给 DEV。但当我创建存储库时,他也在处理 FILE1,因此它包含在 REV2 中。当他从 DEV 合并到 TRUNK 并选择修订范围时,如果他选择 只是 REV3,他不会得到他所有的变化。但如果他选择 REV2 和 REV3,他将获得尚未准备好用于 PROD 的其他文件的所有 DEV 更改。

希望我在这里有点意思。如何仅指定某些文件进行合并?或者还有其他更好的方法吗?

谢谢

【问题讨论】:

    标签: svn merge


    【解决方案1】:

    如果您合并修订,它们会采用其中包含的所有更改,因此您没有直接的方法来做您正在寻找的事情。

    你可以

    1. 从主干创建一个新分支,
    2. 将 Rev3 合并到该分支的工作目录中,
    3. 还原您不想包含的文件,
    4. 提交对该分支的更改
    5. 合并到主干

    如果您按照上述步骤操作,那么稍后当您尝试将 Dev 分支完全合并回主干时,您很可能需要处理树冲突。

    【讨论】:

    • 谢谢。那讲得通。我最终创建了一个与 prod 同步的 dev 分支,提交了历史性的 dev 更改,然后将它们还原,以便它们在 repo 中。然后将它们作为未提交的更改留在一个独立的工作副本中。做这项工作......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    • 2017-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多