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

Dav*_*e A 14 mercurial visual-studio

在我的公司,我们有几个不同的网络应用程序,每个都共享一些公共库.Visual Studio设置如下所示.

Website 1 Solution
  Website 1
  Shared Library 1 Project
  Shared Library 2 Project

Website 2 Solution
  Website 2
  Shared Library 1 Project
  Shared Library 2 Project

Windows Service Solution
  Windows Service Project
  Shared Library 1 Project
  Shared Library 2 Project

Shared Library Solution
  Shared Library 1 Project
  Shared Library 2 Project

All Projects Solution
  Website 1
  Website 2
  Windows Service Project
  Shared Library 1 Project
  Shared Library 2 Project

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

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

理想情况下,使用共享库的项目应该都使用相同的版本,解决方案"All Projects Solution"应该构建没有错误,但有时我们需要分支共享库.执行此操作的最佳方法是什么,以及如何设置存储库?

当每个项目都在一个单独的存储库中时,如何获得Website 1解决方案的某个分支/标记的工作副本.我是否必须单独拉出每个,或者写一个脚本来一次完成所有操作?可以乌龟为我这样做吗?

还有其他提示让这个过程更容易吗?

Dan*_*Dan 1

理想情况下,我会使用Mercurial 子存​​储库来执行此操作。然后,您可以将“全部”解决方案放入主存储库中。然后,您的其余项目可以是该项目的子存储库。Mercurial 也递归地支持子存储库。

不幸的是,TortoiseHg 仅列出了对子存储库的基本支持,因此您可能必须对您希望如何设置进行一些选择。

如果子存储库负担太大,那么您应该可以将所有内容都放在一个存储库中。就 Mercurial 而言,它并不关心您是否在存储库中拆分了内容。唯一的限制是你的情况。例如,如果项目太大,或者提交太频繁,那么存储库管理就会变得非常痛苦。

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