2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

孙以义开发的用于 VS2008/2010 的 Git 源代码控制提供器

  • 2010-06-19
  • 本文字数:1398 字

    阅读完需:约 5 分钟

由于现在的很多开发团队变得越来越分散,类似微软的 Visual SourceSafe 和 Team Foundation Server 这样的集中式源代码控制系统很快就失去了吸引力。在这种情况下,很多开发人员转而使用分布式源代码控制系统。在.NET 开发人员当中,最流行的一款莫过于 Git ,它最初由 Linus Torvalds 为 Linux 内核开发而创建。

使用 Git 的一个问题就是,大部分功能要通过命令行来操作。而.NET 开发人员更习惯于使用用户界面,所以在进行日常任务的时候不得不离开 IDE 的界面,确实让人很不爽。这也就是为什么孙以义的 Git Source Control Provider(Git 源代码控制提供器)成为采用 Git 的一个重要条件的原因。孙以义写到:

作为一个 Visual Studio 用户,我希望在解决方案管理器中看到文件的源代码控制状态。否则我不会觉得这些文件正在被某个源代码管理系统所控制。在使用 SourceSafe、Team Foundation Server、Subversion 或甚至 Mercurial 的过程中,我们已经非常习惯这种方式了。在使用 Git 的时候,我们也希望得到类似的体验。在互联网上我没有找到任何有用的东西,所以只好决定自己弄一个。

基本想法就是显示 Git 文件状态,并让整个体验和 VSS 和 TFS 尽可能接近。我让已签入(已提交 / 已跟踪)的文件依旧显示蓝色的锁定图标,为已编辑的文件显示红色勾选图标。也添加了两种新图标,黄色的加号和“i”状图标。它们分别代表新建和登台(Staged)状态。这两个特殊类型的图标只是 Git 所独有。

使用这个插件打开 Git 所控制的解决方案,根据文件所处的是新建、已签入、已编辑和待登台的状态,而被清楚地进行不同标记。当前的 Git 分支名称也会显示出来,以便提醒你是否工作在正确的分支上。源代码控制的感觉又回来了。

对于 Visual Studio 用户而言,有两个源代码控制相关的功能是非常方便的,我也决定一并实现。它们是“和最后提交的版本进行文件比较”和“回滚文件变更(从最后提交的版本恢复文件)”。

这是一个令人激动的起点。我或许把它弄得有点花哨了。现在,我开始考虑,为什么我应该点右键来启动 Git 的命令行,并输入 git init 来创建新的本地代码库呢?我就不能仅仅点右键就选择初始化一个新代码库吗?

至少目前,这个插件还没有打算代替或重复 Git 本身或 Git Extensions 这样工具的功能。类似查看历史、签入 / 签出、转换分支将会依赖于 Git Bash 和 Git Extensions 的功能。最后,我将会很小心地添加一些常用的功能,比如 init 和 commit 等功能,不过通往 Git 和 Git Extensions 的大门就此打开了。

在问及 Git 是否可代替 TFS 来使用时,孙以义说这并无必要。“虽然 TFS 的源代码控制不如 Git 这样先进,但如若需要进行应用程序开发生命周期管理的话,TFS 还是应该采用的。TFS 对于包括开发人员、PM、BA 和 QA 的整个团队很有用处。”他继续谈到:

如果诸如灵活的分支、合并以及脱机开发这样的现代源代码控制特性确实需要的话,我当然就推荐大家使用 Git。不过要知道,用 TFS 来进行 ALM,而用 Git 来代替源代码控制功能,还没有办法保证源代码控制的签入和 WIT(TFS 工作项)集成在一起。同时,Visual Studio 对 Git 的工具支持也几乎是空白。

这个插件编译好的版本放在了 Visual Studio 资源库。这是一个基于微软公共许可协议(MPL,Microsoft Public License)的开源项目,可以在 CodePlex 获取它的源代码

查看英文原文: Introducing Sun Yiyi’s Git Source Control Provider for Visual Studio 2008/2010

2010-06-19 07:593324
用户头像

发布了 254 篇内容, 共 64.3 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

如何在面试中机智的展现架构能力?

非凸科技

rust 编程语言 量化 构架师 互联网大厂

未来的手机操作系统在智能化上会有哪些突破

InfoQ IT百科

netty系列之:netty中常用的字符串编码解码器

程序那些事

Java Netty 程序那些事 4月月更

RAM运行内存是什么

InfoQ IT百科

手机

Mini LED有哪些优势

InfoQ IT百科

未来手机操作系统有哪些发展趋势

InfoQ IT百科

【高并发】为何在32位多核CPU上执行long型变量的写操作会出现诡异的Bug问题?看完这篇我懂了!

冰河

并发编程 多线程 协程 异步编程 精通高并发系列

Android系统有哪些优缺点

InfoQ IT百科

开发手机操作系统的难度有多大

InfoQ IT百科

诚邀报名丨首期OpenHarmony开发者成长计划分享日

OpenHarmony开发者

OpenHarmony

手机硬件性能的发展主要受哪几方面制约

InfoQ IT百科

洞见科技首批通过央行国家金融科技测评中心「联邦学习」产品评测,实现「MPC+FL」金融应用双认证

洞见科技

联邦学习 隐私计算 多方安全计算

终于有人讲明白了!原来这才是全球低时延一张网技术

华为云开发者联盟

音视频 华为云 实时音视频 低时延

不同研发协作模式在云效中的应用

阿里云云效

云计算 阿里云 云原生 研发 研发协作

昊天旭辉签约长扬科技,携手共建工业互联网安全新生态

极客天地

手机里的NPU可以起到什么作用

InfoQ IT百科

4.25解锁OpenHarmony技术日!年度盛会,即将揭幕!

Anna

为什么手机操作系统开始向多端融合方向发展

InfoQ IT百科

手机硬件都有哪些

InfoQ IT百科

如何优化前端页面的LCP?

BUG侦探

前端 性能 网页指标

LAXCUS分布式操作系统冗余容错之节点篇

LAXCUS分布式操作系统

分布式系统 冗余 集群容灾

目前5G SoC 芯片技术成熟吗?

InfoQ IT百科

iOS开发面试攻略(KVO、KVC、多线程、锁、runloop、计时器)

iOSer

ios iOS面试 ios开发 iOS面试题

Oceanbase 和 TiDB 粗浅对比之 - 执行计划

TiDB 社区干货传送门

手机拍照算法和硬件哪个更重要

InfoQ IT百科

手机软硬件协同很重要吗?

InfoQ IT百科

18张图,详解SpringBoot解析yml全流程

码农参上

springboot 配置文件 4月月更

LCD和OLED屏幕有哪些异同

InfoQ IT百科

苹果A13处理器在技术上有哪些创新?

InfoQ IT百科

外包学生管理系统详细架构设计文档

dan629xy

手机处理器未来的发展趋势如何

InfoQ IT百科

孙以义开发的用于VS2008/2010的Git源代码控制提供器_.NET_Jonathan Allen_InfoQ精选文章