Meta开源新工具啊,Git地位危险了?

157 阅读3分钟

程序员宝藏库gitee.com/sharetech_l…

从事编程开发的同学,绝大多数都会和版本控制系统打交道。

提到版本控制系统,目前比较主流的就是Git和SVN,尤其是Git,使用最为广泛。

关于Git和SVN之间关系不太清楚的同学可以看一下我的另外一篇作品,详细的介绍了这两款主流的版本控制系统。

www.zhihu.com/question/25…

从关于Git的绝大多数反馈来看,目前的版本控制系统在可用性方面还存在很多不足之处,开发人员在维护代码库时会逐渐变得越来越复杂,经常不得不用一些复杂的命令来处理一件非常简单的事情。

而近期Meta(Facebook)开源了一款新的版本控制工具Sapling,这款工具已经构建并在内部开发10年,终于在近期开源,可以看得出来,最近Github Star数增长非常快。

img

前面提到目前Git的问题,对用户很不友好,尤其是初学者,需要花费大量的时间去了解Git的用法,往往为了处理一件简单的事情就要花费很多功夫,有时候如果对命令理解不够透彻还容易造成严重后果。

兼容Git

img

Sapling出现的主要目标就是为了解决这个问题,它能够兼容Git,很多基础命令和Git很相近,用过Git的同学会发现,像克隆、提交、修改等都会很熟悉,因为Samling的涉及之处的思想就是让命令变得简单易用,而且,它没有暂存区概念,本地分支名称可选,在周边使用方面也做了很多优化。

smartlog

img

smartlog是Sapling比较重要的命令之一,也是整个用户体验的核心,它通过简单执行Sapling命令,就可以看到所有本地提交。

  • 你当前在哪里?
  • 重要的远程分支在哪里?
  • 哪些文件发生了变化?
  • 那些提交是旧版本?哪些是新版本?

此外,smartlog 隐藏了所有你不关心的信息,例如,不重要的远程分支、不相关的提交。

视图模式

img

另外,清晰的视图对比现如今的版本控制系统是非常有价值的突破,通过视图能够直观地查看运行命令前后的效果,这样对于新手,能够 更加清楚自己操作的影响。

错误修复

除此之外,修改错误也变得简单很多,这也是目前主流版本控制系统的弱点和痛点。有时候想要从错误的修改中恢复会变得异常麻烦,需要理解很多复杂的命令,而Sapling的设计只需要一些简单的撤掉就可以恢复。

img

这就相当于Python之于C++,更加贴近我们自然语言的理解范畴,例如,通过sl undo、sl redo、sl uncommit 和 sl unamend 等命令可以轻松撤消许多操作。像 sl hide 和 sl unhide 这样的命令允许你简单而安全地隐藏提交并使它们恢复原来的样子。

上面提到的这些重点都集中在用户体验方面,除了这些之外,它在版本控制的底层也做了很多优化,例如,堆栈操作、数据压缩、代码审查,都做了很多改进,感兴趣的同学可以深入了解一下。

传送门

Github地址:github.com/facebook/sa…

使用文档:sapling-scm.com/docs/introd…

建议大家有空可以多浏览Github,有很多好用的开源免费工具。但是,目前Github上项目多如牛毛,而且刷榜现在也非常严重,想要找到优质的项目变得越来越难。这里,给大家推荐Github上一个非常不错的项目《DevWeekly》,每周五晚上定期更新,这个项目每周都会精挑细选一些优质的开源项目,涵盖C++、JAVA、JavaScript、Python、Go等不同编程语言。此外,还有一些开源工具、优秀的技术文章

github.com/Jackpopc/De…