【问题标题】:Combine DVCS with Visual Source Safe将 DVCS 与 Visual Source Safe 相结合
【发布时间】:2009-05-01 16:00:54
【问题描述】:

我不得不在工作中使用 Visual Source Safe 2005。我想将它与 DVCS 结合起来,这样我就可以在本地签入文件,而不会在出现错误或无法编译时干扰我的同事。

在我对 Mercurial 的尝试中,它可以工作,但会导致一些奇怪的问题。也就是说,它认为其他人已经签出了我签出的文件。

以下是我应该如何管理它的想法:

  1. 禁用自动结帐。
  2. 在 Mercurial 本地工作
  3. 当我准备好推送我的更改时...
    1. 克隆我的 Mercurial 存储库。
    2. 更新我的 Visual Source Safe 存储库
    3. 使用 Mercurial 拉取并合并两个存储库。
    4. 将所有内容检查到 Visual Source Safe。

这听起来合理吗?我总是听到关于 VSS 的坏话,这只是想让我亲眼看到这些问题吗?

【问题讨论】:

  • 这个问题应该改写成一个更准确的问题:“如何让一个好的版本控制系统很烂?”
  • 我也处于同样的位置。但是你描述的过程听起来比单独使用 vss 更糟糕:-)
  • 我很少推送更改,所以不会太糟糕。
  • @Gabe - 我刚刚对 VSS 有一个奇怪的事情,它吃掉了我的几个文件(它们现在是空白的,它不会显示任何历史记录)。所以我会承担额外的工作,以保护自己不丢失东西。

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


【解决方案1】:

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 签入

干杯, 路易斯

【讨论】:

  • 好主意。你如何处理 VS 中的 VSS 绑定?如果我没记错的话,这些绑定存储在解决方案和项目文件中。因此,当您在“克隆”目录中工作时,VS 仍会认为解决方案绑定到 VSS。
  • @mlsteeves:我想如果你禁用自动结帐,就可以了。
  • 这行得通,谢谢。唯一不同的是,我保留了一个名为“VSS”的标签,它向我指示 vss\projectA 所在的位置。这样,我可以通过 hg status --ref xx:yy(其中 xx 和 yy 是修订号)来获取已修改文件的列表,然后只检查这些文件。
  • @mlsteeves:标签的好主意。至于绑定,我还没有在我必须使用的 VSS 存储库中找到它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多