实时 Git,在版本控制之前控制源码

h4cd
 h4cd
发布于 2019年07月09日
收藏 30

Git 用于源代码版本控制已经是一个很强大的神器了,但是有人在此基础上还开发了一个被认为是“实时 Git”的工具。

这个工具叫 Coactive,它以 Visual Studio 插件的形式存在,作者描述它的作用是让开发者实时查看队友正在处理哪些文件(如上图),并且在操作 commit 之前,都可以查看到文件版本与自己的版本之间的差异(如下图),这样可以让整个开发团队不同的成员在确定某一版本代码之前心理有数,写出的代码能够尽量避免合并冲突。

这样的功能,其实就是把 Git 的阶段性操作(版本)再微分到开发团队中每个人编写代码过程中的每个时刻,所以有人评论这是一个实时 Git,“它在源代码进行版本控制之前进行版本控制,怎么可能出错?”,表达了他们对于这一创造性设计的惊叹:

但是评论中也有不同的声音,有个 20 年经验的版本控制老司机认为这种方法存在问题,他的想法是这样的:

  • 这种类似锁定文件来防止合并冲突的方法其实早在 Git 和 SVN 之前就有了,但是文件级粒度的版本控制没有意义,许多代码库文件都有成千上万行代码,如果有人在同一个文件中工作,那会导致大量误报;
  • 并不是所有代码更改都要 commit,通常会对调试或原型进行本地更改,并计划丢弃,或将它们提交给新的分支。
  • 分支情况又怎么确定?通知纯粹是基于文件名吗?那你如果收到与其他工程师正在处理同一个文件的信息,但是这个文件是在同一个分支上吗?
  • Coactive 无法避免冲突,它只会减少冲突的数量,但会以其它方式增加成本。开发者必须思考一大堆问题才能知道如何解决冲突,比如“我是否要改变我的计划并等到 Bob 完成该文件?”、“我是否要发消息给 Bob,了解他的计划是什么?”、“我们要编辑相同的行吗?”、“怎样可以更快/更容易地处理冲突?”

老司机认为 Coactive 这个工具对于涉及到的文件很少的小团队会非常有用,但是文件多了就会适得其反,而沟通才是更重要的,他说:“我不认为插件可以取代传统的团队沟通。”。

下边的跟帖有人还据此提出了完善建议,他认为直接让该工具只给出冲突提示,而不是文件级的源码差异,这样就可以适用于大型团队:

你怎么看呢?

Coactive 运行环境需要:

  • Visual Studio 2017 或 2019
  • Git

项目主页:https://coactive.io

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:实时 Git,在版本控制之前控制源码
加载中

精彩评论

衷于栖
衷于栖
就是不停的检出然后rebase
TonyJian
TonyJian
总是觉得git合并没有svn方便
合肥华仔
合肥华仔
这个工具有什么意义?
orpherus
orpherus
一个draft分支搞定的事情
易山川
易山川
标题打错了,应该是“实时”

最新评论(15

Dandelion_
Dandelion_
小团队应该有用,大团队不适用
-
-喜头鱼-
这不是idea的changed files?
xiaoshiyue
xiaoshiyue
😯
久永
久永
可惜不是开源项目,爱莫能助了。
久永
久永
哇!好牛逼,又一个实现自己梦想的软件。
刘志汉
刘志汉
No bird
TonyJian
TonyJian
总是觉得git合并没有svn方便
合肥华仔
合肥华仔
这个工具有什么意义?
衷于栖
衷于栖
就是不停的检出然后rebase
blu10ph
blu10ph
并不是吧,检测的是队友正在编辑的文件~
霡霂
霡霂
我觉得就是一个客户端工具,其实和git代码托管没有多大关系。最多检测当前出在哪个分支上,在修改哪个文件。其实对于git本身没有任何影响
orpherus
orpherus
一个draft分支搞定的事情
久永
久永
怎么弄?能否给个资料?
返回顶部
顶部