用自己的修订预测“冲突”?

时间:2011-01-12 16:17:07

标签: svn

我从我的SVN存储库中检出了特定“库”的多个副本 - 每个使用相同代码的工作相关项目的副本。我已经对我已经提交到存储库的一个进行了修改,我想更新其余项目中的副本以反映这些更改。

但是,我想保留拒绝对我正在进行的项目进行少量更改的权利,因此如果有某种方式我可以收到有关文件冲突的警告named as filename.minefilename.rOLDREVfilename.rNEWREV,好像其他用户已提交了这些更改(但这些更改已由我提交到存储库),而不是自动更新所有受影响的文件(使用svn update)。

这可能吗?

2 个答案:

答案 0 :(得分:1)

您应该使用分支而不是多次检查同一个项目。

想象一下这个回购:

repos
  |-- trunk/
  |-- branches/
        |-- projectX
        |-- projectY
        `-- projectZ

假设您开发了一项功能,并希望仅将其添加到projectY中,您可以将merge代码从主干添加到branches/projectY

如果要在projectXprojectZ中添加其他功能,则将功能合并到这两个分支。

这样,您可以控制每个项目中的内容,并在每个项目中跟踪历史记录。

答案 1 :(得分:1)

如果您的项目A需要保留在依赖关系B的旧版本中,那么您可以在项目A中设置一个svn:externals property,其中指向具有明确修订号的B。例如,项目A的trunk文件夹将具有svn:externals属性,其内容为:

-r148 http://svn.example.com/projects/B/trunk B

当您签出项目A时,这将导致出现包含项目B主干的修订版148的文件夹B。在明确更改{{中的修订号之前,对项目B的更改不会影响A 1}}属性。