目前我们使用Source Safe并开始迁移到Subversion。 所有外部SDK(> 500 MB)现在都保存在Source Safe中,我想方设法从VSS移动它们 到一些存储库。
我们有C ++(主要是),C#(很多),Java(很少)项目。数百个项目。只有Windows平台。
我有几个依赖管理员,但不满意:
第一个问题:我还能检查一下吗?它应该很容易被最终开发人员使用。最佳案例 - 在IDE中简单构建。
目前我倾向于下一个解决方案:
分配一些很少使用的驱动器,例如S:并将其声明为'DEV HOME'。
然后把外部放在这里:
S:\SDK\boost\1.30\...
S:\SDK\boost\1.45\...
S:\SDK\oracle\agile_9.0.0.0\...
S:\SDK\IBM\lotus_8.0\...
S:\SDK\IBM\lotus_9.0\...
S:\Tools\NuGet\nuget.exe
S:\Tools\clr\gacutil.exe
Autobuild机器将保存此“DEV HOME”的主屏幕。每个开发人员都应将必要的SDK从autobuild机器复制到本地,并使用 subst 创建磁盘。
我找不到这个解决方案的大问题:
小问题:
第二个问题:此解决方案可能存在哪些问题?
更新1 :为什么不是相对路径。
externals/...
branch-root-1.0/project_collection_1/project1/...
branch-root-2.0/project_collection_2/...
这里所有项目应该在一个地方或重复的外部。似乎与绝对路径的解决方案没什么不同。
branch-root-1.0/externals/...
branch-root-1.0/project_collection_1/project1/...
branch-root-1.0/project_collection_2/...
branch-root-2.0/externals/...
然后在每个已检查的分支中重复外部。这为每个分支结账+ 500MB +设置它们的一些额外工作。
嗯,这看起来可以接受,但我不知道它是绝对的路径。真的,我想知道相对路径的优点,因为我对绝对路径也是无法实现的。
答案 0 :(得分:1)
我走了你的道路......它可以工作。但是我建议你制作所有相对路径并花时间让你的项目按相对路径排序。
任何固定目录系统和源代码控制的问题是您可以分支或多次检查项目。
此外,虽然颠覆是好的,但值得考虑Mercurial或Git。它们允许颠覆不具备的许多不同类型的工作流程。考虑如何构建存储库需要更多的工作,但这是值得的。这是源安全的大跳跃,根据我的经验,许多来自sourcesafe的人最初都在努力/不喜欢颠覆/ git / mercurial。它们都需要您更详细地了解版本控制,但这是一件好事,因为它是一个非常好的工具。
答案 1 :(得分:1)
我认为,如果你的平台只有Windows而Visual Studio那么NuGet是最好的。我喜欢Nuget几乎没有配置。例如,在将Boost Nuget package安装到项目后,可以立即使用Boost库。
我不知道这个问题有什么好的跨平台解决方案。