visual-studio - 我应该如何在 Mercurial 存储库中设置我的 Visual Studio 项目/解决方案?

标签 visual-studio mercurial

在我的公司,我们有几个不同的 Web 应用程序,每个应用程序都共享一些公共(public)库。 Visual Studio 设置如下所示。

网站 1 解决方案
网站 1
共享库 1 项目
共享库 2 项目

网站 2 解决方案
网站 2
共享库 1 项目
共享库 2 项目

window 服务解决方案
Windows 服务项目
共享库 1 项目
共享库 2 项目

共享库解决方案
共享库 1 项目
共享库 2 项目

所有项目解决方案
网站 1
网站 2
Windows 服务项目
共享库 1 项目
共享库 2 项目

我们想开始使用 Mercurial 进行源代码控制,但我仍然不确定最好的方法。

从我读过的内容来看,您应该为每个项目使用一个单独的存储库。那里没问题,但是 Visual Studio 解决方案文件 (.sln) 去哪里了?是否应该有一个仅包含 .sln 文件的单独存储库?

理想情况下,使用共享库的项目应该都使用相同的版本,并且解决方案“所有项目解决方案”应该构建没有错误,但有时我们需要分支共享库。最好的方法是什么?如何设置存储库?

当每个项目都在单独的存储库中时,如何获取网站 1 解决方案的某个分支/标签的工作副本。我必须单独拉每个,还是编写一个脚本一次完成所有操作?乌龟 hg 可以帮我做吗?

还有其他技巧可以使此过程更容易吗?

最佳答案

理想情况下,我会使用 mercurial subrepositories去做这个。然后,您可以将“全部”解决方案放在主存储库中。然后,您的其余项目可以成为该项目的子存储库。 Mercurial 也递归地支持子存储库。

不幸的是 TortoiseHg 只列出 rudimentary support for subrepositories ,因此您可能需要对自己喜欢的设置方式做出一些选择。

如果子存储库负担过重,那么将所有内容都放在一个存储库中应该没问题。就 Mercurial 而言,它不关心您是否将内容拆分到存储库中。唯一的限制是你的情况。例如,如果项目被证明是如此之大,或者提交过于频繁,那么存储库管理就太痛苦了。

或者将所有内容拆分为单独的存储库并编写脚本。这完全取决于你。

关于visual-studio - 我应该如何在 Mercurial 存储库中设置我的 Visual Studio 项目/解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2886263/

相关文章:

mysql - 使用mysql数据库的visual basic中的 Crystal 报表无法登录加载报表

javascript - 用于 Javascript、HTML 和 CSS 网站的具有调试功能的 Visual Studio 项目

c# - Environment.SpecialFolder.MyDocuments 有效但 SpecialFolder.MyComputer 无效?

Mercurial Hg Mv不会移动所有文件

visual-studio - 有谁知道如何修复 "Could not load file or assembly ' Microsoft.WindowsAzure.Storage.Emulator.Controller,版本=3.0.0.0”?

visual-studio - 调试时如何配置 Visual Studio 以将整数显示为小数?

security - 如何使用 ssl/security 设置 Mercurial

mercurial - 使用提交消息 mercurial 查找变更集

svn - 为什么在 Mercurial 中分支和 merge 比在 Subversion 中更容易?

mercurial - tortoisehg 和预状态 Hook