将 DVCS 与 Visual Source Safe 相结合
我在工作中被迫使用 Visual Source Safe 2005。 我想将其与 DVCS 结合起来,这样我就可以在本地签入文件,而不会在出现错误或无法编译时打扰我的同事。
在我对 Mercurial 的尝试中,它有效,但会导致一些奇怪的问题。 也就是说,它认为其他人已经签出了我签出的文件。
以下是我应该如何管理它的想法:
- 禁用自动结账。
- 在 Mercurial 本地工作
- 当我准备好推动我的更改时......
- 克隆我的 Mercurial 存储库。
- 更新我的 Visual Source Safe 存储库
- 使用 Mercurial 拉取并合并两个存储库。
- 将所有内容检查到 Visual Source Safe。
这听起来合理吗? 我总是听到有关 VSS 的坏话,这是否只是要求我亲眼目睹这些问题?
I'm forced to use Visual Source Safe 2005 at work. I'd like to combine that with a DVCS, so that I can check in files locally without disrupting my co-workers if there's a bug or it doesn't compile.
In my attempts with Mercurial, it works, but causes a few weird issues. Namely, it thinks someone else has checked out the files I have checked out.
Here's my thoughts on how I should manage it:
- Disable auto-checkout.
- Work locally in Mercurial
- When I'm ready to push my changes...
- Clone my Mercurial repository.
- Update my Visual Source Safe repository
- Pull and merge the two repositories using Mercurial.
- Check everything into Visual Source Safe.
Does this sound reasonable? I'm always hearing bad things about VSS, is this just asking for me to see those problems firsthand?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
WBlasko
我也发现了同样的问题。 我想更改文件并在需要时合并它们,而不是等待其他开发人员解锁它。 对我有用的解决方案是:
1)获取最新版本的 VSS 项目(我将所有 VSS 项目放在 vss 下):
2A)使用 Mercurial 初始化
2B)将项目克隆到可以随意更改的位置
3)从 VSS 副本中获取最新更改(如果您来自 1 和 2,请跳过)
4) 随意使用克隆版本。 稍后,将您的工作推送到 vss 副本:
5) 现在,将所有文件检出到 VSS 项目
6) 在 VSS 项目上运行“hg update”,将您的更改合并到最新的 VSS 更改。
7) 提交更改
8) 执行 VSS 签入(将锁释放给其他人)
返回到步骤 3。然后永远重复步骤 3-8...;-)
这样您就可以使用良好的版本控制系统,同时仍然能够与遗留项目“对话”。 您还可以享受:
a) 锁定文件没有问题
b) 您可以与知道如何使用 Hg 的其他人共享您的存储库
c) 创建分支等
只需小心地首先更新/解决冲突,测试然后执行 VSS 签入
干杯,
路易斯
WBlasko
I've found the same problem. I wanted to change files and merge them when needed instead of waiting for some other developer to unlock it. The solution that worked for me was:
1) Get the latest version of a VSS project (I placed all VSS projects under vss):
2A) Initialize with Mercurial
2B) Clone the project to the place where it could be changed at will
3) Grab the latest changes from the VSS copy (skip if you came from 1 and 2)
4) Work at will with the cloned version. Later, push your work to the vss copy:
5) Now, perform a checkout of all files to the VSS project
6) Run "hg update" on the VSS project to merge your changes to the latest VSS changes.
7) Commit the changes
8) Perform a VSS checkin (releasing the locks to the other folks)
Go back to step 3. repeat steps 3-8 forever then... ;-)
This way you can work with a good version control system while still being able "talk" to legacy projects. You will be also be able to enjoy:
a) No problem with locked files
b) you can share your repository with others that know how to use Hg
c) make branches , etc
Just be carefull to first update/solve conflicts, test and then perform VSS checkin
Cheers,
Luis