我被迫在工作中使用Visual Source Safe 2005。我想将其与DVCS结合使用,这样我就可以在本地检入文件,而不会打扰我的同事,无论是存在错误还是无法编译。

在我尝试使用Mercurial的过程中,它有效,但是会引起一些奇怪的问题。即,它认为其他人已经签出了我签出的文件。

这是我应该如何管理的想法:


禁用自动结帐。
在Mercurial本地工作
当我准备推动更改时...


克隆我的Mercurial存储库。
更新我的Visual Source Safe存储库
使用Mercurial拉并合并两个存储库。
将所有内容检入Visual Source Safe。



听起来合理吗?我总是听到关于VSS的坏消息,这是否只是要求我亲眼看看那些问题?

最佳答案

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)您可以与知道如何使用汞的其他人共享您的存储库
c)建立分支等

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

干杯,
路易斯

关于mercurial - 将DVCS与Visual Source Safe结合使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/811999/

10-13 09:14