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

来源: OSCHINA
编辑: h4cd
2019-07-09 07:51:00

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

展开阅读全文
点击加入讨论🔥(15) 发布并加入讨论🔥
本篇精彩评论
总是觉得git合并没有svn方便
2019-07-09 09:21
1
举报
这个工具有什么意义?
2019-07-09 09:08
1
举报
一个draft分支搞定的事情
2019-07-09 08:33
1
举报
标题打错了,应该是“实时”
2019-07-09 08:30
1
举报
15 评论
29 收藏
分享
返回顶部
顶部