Using Git with Visual Source Safe 6.0
抱歉,这个可怕的问题……但我不可能不使用VSS。
我希望能够在本地使用Git进行分支开发等,同时使用VisualSourceSafe6。目前,我对Git的所有进进出出的了解都很有限,因为我是最近的一个皈依者。
问题:
我希望能够在Git存储库中工作。我想这样做,并得到所有的好东西,这将允许与分支等,在我的一天结束时,或在其他需要的时刻,我想能够采取任何我正在做的工作,并把它放在主存储库,然后我会放在VSS。
理想情况下,在工作日开始时,我会得到最新版本的VSS。把这个交给Git。然后在另一个分支上工作,在需要提交到VSS时将更改放回master。
既然我是一个相对的Git新手,那么最好的方法是什么呢?以及发出/设置此设置的最佳命令。
*注意:我认为源安全需要先签出文件,然后才能对其进行更改。也许我可以使用一些工具/脚本来帮助自动将更改推回到VSS中?
你正在考虑的设置应该可以正常工作。对于git命令,只需查看教程。
我使用的工作流(不与VSS一起使用,但概念相同)类似于:
- 从主服务器(即VSS)签出
- 保持一个与VSS同步的"中继"分支
- 会一直保持清洁
- 在"树干"分支中发育
- 从VSS更新:
- 切换到"行李箱"
- 使用VSS更新
- Git提交更改
- 重新固定从树干分支的树枝
- 要将更改推送到VSS,请执行以下操作:
- 将开发分支的更改推到"主干"
- 切换到"行李箱"
- VSS提交更改
如果您必须处理分支,任何使用VSS的人都可能会发现以下帖子很有用:
http://timwise.blogspot.com/2011/11/multiple-working-folders-for-git-on.html
它基本上详细介绍了使用SysInternals的连接在Windows中获得symlink支持,然后通过复制.git文件夹中的文件和sym链接文件夹,在vss强制您使用的物理分支文件夹之间共享git repo。
下面是自动共享的脚本
- https://gist.github.com/1373136-创建
- https://gist.github.com/1373142-删除
我也陷入了这种困境,我这样做的方式是不让其他人接触我的VSS,让所有的文件一直被检查出来,这意味着没有其他人可以贡献,所以这自然不是一个可行的解决方案为每个人。我建议的解决方案是:
- 来自VSS的Chekout
- 创建一个分支以使用您的功能
- 完成你的功能
- 切换到主分支
- 更新最新的VSS
- 如果做了任何更改,请重新设置分支
- 使用
$ git diff --name-status master..branchName 查看哪些文件发生了更改(请参阅显示两次修订之间哪些文件发生了更改,以了解其来源) - 使用vss检查更改的文件
- 将分支合并到主控形状(最好删除功能分支)
- 提交到VSS
其中一些您可能可以编写脚本,但由于您最可能使用m$(因为您使用的是vss),这不是我可以帮助您的。
对于vss的工作方式,我认为最好将签出vss的文件花费的时间最小化,因此这是一种更好的方法。
请注意,更新文件时可能会出现一些问题,因为VSS会自动在未签出的文件上设置只读标志。这里可能需要一个解决办法。