我从我的SVN存储库中检出了特定“库”的多个副本 - 每个使用相同代码的工作相关项目的副本。我已经对我已经提交到存储库的一个进行了修改,我想更新其余项目中的副本以反映这些更改。
但是,我想保留拒绝对我正在进行的项目进行少量更改的权利,因此如果有某种方式我可以收到有关文件冲突的警告named as filename.mine
,filename.rOLDREV
和filename.rNEWREV
,好像其他用户已提交了这些更改(但这些更改已由我提交到存储库),而不是自动更新所有受影响的文件(使用svn update
)。
这可能吗?
答案 0 :(得分:1)
您应该使用分支而不是多次检查同一个项目。
想象一下这个回购:
repos
|-- trunk/
|-- branches/
|-- projectX
|-- projectY
`-- projectZ
假设您开发了一项功能,并希望仅将其添加到projectY中,您可以将merge代码从主干添加到branches/projectY
。
如果要在projectX
和projectZ
中添加其他功能,则将功能合并到这两个分支。
这样,您可以控制每个项目中的内容,并在每个项目中跟踪历史记录。
答案 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}}属性。