将DVCS与Visual Source Safe结合使用

时间:2009-05-01 16:00:55

标签: mercurial visual-sourcesafe dvcs visual-sourcesafe-2005

我被迫在工作中使用Visual Source Safe 2005。我想将它与DVCS结合起来,这样我就可以在本地签入文件而不会中断我的同事,如果有错误或者没有编译。

在我对Mercurial的尝试中,它有效,但会引起一些奇怪的问题。也就是说,它认为其他人已经检查了我签出的文件。

以下是关于如何管理它的想法:

  1. 禁用自动结帐。
  2. 在Mercurial本地工作
  3. 当我准备推动我的改变时......
    1. 克隆我的Mercurial存储库。
    2. 更新我的Visual Source Safe存储库
    3. 使用Mercurial拉动并合并两个存储库。
    4. 将所有内容检查到Visual Source Safe。
  4. 听起来合理吗?我总是听到有关VSS的坏话,这只是要求我亲眼看到这些问题吗?

1 个答案:

答案 0 :(得分:13)

WBlasko

我发现了同样的问题。我想在需要时更改文件并合并它们,而不是等待其他开发人员解锁它。对我有用的解决方案是:

1)获取最新版本的VSS项目(我将所有VSS项目置于vss下):

c:\vss\projectA

2A)使用Mercurial初始化

cd vss\projectA
C:\vss\projectA>hg init

2B)将项目克隆到可随意更改的位置

hg clone vss\projectA myProjects\projectA

3)从VSS副本中获取最新更改(如果您来自1和2则跳过)

C:\myProjects\projectA>hg pull
C:\myProjects\projectA>hg update
(solve conflicts if any)

4)随意使用克隆版本。稍后,将您的工作推送到vss副本:

C:\myProjects\projectA>hg push
(don't run hg update yet, wait for VSS latestes version)

5)现在,执行检查VSS项目的所有文件

6)在VSS项目上运行“hg update”,将您的更改合并到最新的VSS更改中。

C:\vss\projectA>hg update
(if there are conflicts, resolve them)

7)提交更改

C:\vss\projectA>hg commit

8)执行VSS签入(将锁释放给其他人) 返回步骤3.永远重复步骤3-8然后......; - )

通过这种方式,您可以使用良好的版本控制系统,同时仍然能够与遗留项目“对话”。您还可以享受: a)锁定文件没问题 b)您可以与知道如何使用Hg的其他人共享您的存储库 c)制作分支等

小心首先更新/解决冲突,测试然后执行VSS签入

干杯, 路易斯