我有一个包含多个项目的VS2010解决方案。文件夹结构如下所示:
C:\Dev\MyProduct
MyProduct.sln
UI
UI.csproj
SomeFile.cs
Model
Model.csproj
SomeModel.cs
我创建了代码的第一个生产版本的分支。事实证明我必须在该分支中进行一些修复,现在想要将该分支重新集成到主干中。我正在使用TortoiseSVN来做到这一点(我也尝试过类似结果的AnkhSVN。)
如果我选择文件夹
C:\开发\ myProduct的
右键单击并选择 TortoiseSVN / Merge 我被引导通过一个向导,允许我选择重新整合分支,输入我的分支的URL,然后运行合并。这导致
重新整合来源和目标都不能成为存储库的根
如果我用
重复相同的步骤C:\开发\ myProduct的\模型
合并成功。我想错误信息告诉我,我根本无法在根级别那样做。
问题
C:\Dev\MyProduct
下?答案 0 :(得分:2)
您可能希望以不同方式构建存储库。有两种方法可以做到这一点:
/project1/trunk
/project1/branches
/project1/tags
/project2/trunk
/project2/branches
/project2/tags
...
和
/trunk/project1
/trunk/project2
/branches
/tags
您选择哪一个取决于您是要分支和合并每个项目(第一个选项),还是将所有项目合并在一起(第二个选项)。
如果需要将存储库根目录中的现有项目文件移动到新的/ trunk目录中,则需要执行以下操作:
cd /path/to/repo
files=`eval "echo *"`
mkdir trunk branches tags
svn add trunk branches tags
svn commit -m "adding the proper subdirectories"
svn mv `echo $files | sed 's/^/^\//g' | sed 's/ / ^\//g'` ^/trunk/ -m "moving project files into trunk"
svn up
如果您手动执行此操作,那么“svn mv”行将如下所示:
svn mv ^/dir1 ^/dir2 ^/file1 ^/file2 ^/trunk/ -m "moving project files into trunk"