将Git与Visual Source Safe 6.0一起使用

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会自动在未签出的文件上设置只读标志。这里可能需要一个解决办法。