开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

孙以义开发的用于 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:593183
用户头像

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

关注

评论

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

阿里面试,一面就倒在了Java内存模型上?赶紧来看看

Seven七哥

面试 Java并发 内存模型

复用到何种程度

孙苏勇

Java 程序设计 复用 面向对象 抽象

如果明天没有恐惧——两小时看完余欢水后想到的……

伯薇

个人成长 心理学 小说 恐惧

程序员陪娃看绘本之启示

孙苏勇

程序员 生活 读书 成长 陪伴

Arduino 蓝牙遥控+超声避障小车

黄耗子皮

树莓派 极客

极客父母送给孩子的 ABC Book 就是这么 GEEK

魏彬(rockybean)

GEEK BOOK

像黑客一样思考

Fooying

黑客思维 黑客 安全攻防

公司大了,人多事杂,如何落地项目制?

树上

项目制 落地 公司管理 业务线 考核

Flink获取kafka中每条消息对应的topic

shengjk1

flink kafka flink 消费 kafka 获取 topic等信息

一文搞定 equals 和 hashCode

shengjk1

Java equals vs hashcode

国内10大前端团队网站

bigezhang

技术 大前端

Java中的Stream用还是不用

孙苏勇

Java 流计算 程序设计 性能

2020,这个世界会好吗?

IT民工大叔

读书笔记

你不必读完一本书

池建强

学习 读书

Scrum vs Kanban,如何选择

TerryLee

Scrum Kanban 敏捷开发 Worktile 研发管理

一个值得推荐的人才测量标准

Selina

一篇文章搞定 java 中的 path 和 classpath

shengjk1

Java classpath vs path classpath path

破解 Java Agent 探针黑科技!

谭建

Java JVMTI APM Profile

三点思考,判断一家公司是否值得加入

邓瑞恒Ryan

高效工作 个人成长 职业

当我们在说5G网络安全的时候,究竟在说什么?

石君

5G 5G网络安全 5G安全 网络安全

Windows环境MySql8.0忘记root密码重置

玏佾

MySQL

我从来不在朋友圈晒投资人合影,却融了很多钱

邓瑞恒Ryan

高效工作 人脉 职业规划

聊聊:Java

谢烟客

Java 编程 开发者 随笔杂谈 「Java 25周年」

给业务线的总经理多交代了几句

霍太稳@极客邦科技

创业 效率 团队管理

关于Iterator和Iterable

shengjk1

Java Iterator和Iterable

回“疫”录:开篇

小天同学

疫情 回忆录 现实纪录 纪实

机房运维需要了解东西

Spider man

Idea工程启动时报错:Command line is too long

玏佾

intellij-idea

死磕Java并发编程(1):探究Java并发机制的底层原理

Seven七哥

Java Java并发 并发编程

Fire Fast 再深一层的是什么?

树上

管理 考核 Fire Hire 用人

媒体的经营 01 | 媒体/内容行业投资分析的维度

邓瑞恒Ryan

创业 内容 重新理解创业 媒体 投资

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