我们有一个项目,其中包含许多子项目,其中包含对其主干外部文件的相对链接,以及包含共享代码的并行项目,例如:
shared/trunk/functions.sh
subproject1/trunk/main.sh
subproject2/trunk/main.sh
..
subproject99/trunk/main.sh
子项目* / trunk / main.sh总是包含这样的代码:
# subprojectXX/trunk/main.sh
#!/bin/sh
source ../../shared/trunk/functions.sh
在这个项目的生命周期中,我们为每个子项目制作了发布标签,例如:
subproject1/tags/1.0.0
subproject1/tags/2.0.0
现在,我需要根据1.0.0标签创建一个分支,但如果我这样做
svn cp subproject1/tags/1.0.0 subproject1/branches/1.0.1
然后,共享功能的相对路径不再有效。
我很想做:
svn cp subproject1/tags/1.0.0 subproject1/trunk
然后在trunk中完成我的工作,然后在完成后将其复制到新标签,例如:
svn cp subproject1/trunk subproject1/tags/1.0.1
但是我担心这会引起各种各样的问题。我的直觉是否正确?
感谢有关svn:externals的建议,但我一直在寻找一种对(大)现有代码库不那么具有干扰性的解决方案。
谢谢,
PIX