从事编程开发的同学,绝大多数都会和版本控制系统打交道。
提到版本控制系统,目前比较主流的就是Git和SVN,尤其是Git,使用最为广泛。
关于Git和SVN之间关系不太清楚的同学可以看一下我的另外一篇作品,详细的介绍了这两款主流的版本控制系统。
https://www.zhihu.com/question/25491925/answer/2582045829
从关于Git的绝大多数反馈来看,目前的版本控制系统在可用性方面还存在很多不足之处,开发人员在维护代码库时会逐渐变得越来越复杂,经常不得不用一些复杂的命令来处理一件非常简单的事情。
而近期Meta(Facebook)开源了一款新的版本控制工具Sapling,这款工具已经构建并在内部开发10年,终于在近期开源,可以看得出来,最近Github Star数增长非常快。
前面提到目前Git的问题,对用户很不友好,尤其是初学者,需要花费大量的时间去了解Git的用法,往往为了处理一件简单的事情就要花费很多功夫,有时候如果对命令理解不够透彻还容易造成严重后果。
兼容Git
Sapling出现的主要目标就是为了解决这个问题,它能够兼容Git,很多基础命令和Git很相近,用过Git的同学会发现,像克隆、提交、修改等都会很熟悉,因为Samling的涉及之处的思想就是让命令变得简单易用,而且,它没有暂存区概念,本地分支名称可选,在周边使用方面也做了很多优化。
smartlog
smartlog是Sapling比较重要的命令之一,也是整个用户体验的核心,它通过简单执行Sapling命令,就可以看到所有本地提交。
- 你当前在哪里?
- 重要的远程分支在哪里?
- 哪些文件发生了变化?
- 那些提交是旧版本?哪些是新版本?
此外,smartlog 隐藏了所有你不关心的信息,例如,不重要的远程分支、不相关的提交。
视图模式
另外,清晰的视图对比现如今的版本控制系统是非常有价值的突破,通过视图能够直观地查看运行命令前后的效果,这样对于新手,能够 更加清楚自己操作的影响。
错误修复
除此之外,修改错误也变得简单很多,这也是目前主流版本控制系统的弱点和痛点。有时候想要从错误的修改中恢复会变得异常麻烦,需要理解很多复杂的命令,而Sapling的设计只需要一些简单的撤掉就可以恢复。
这就相当于Python之于C++,更加贴近我们自然语言的理解范畴,例如,通过sl undo、sl redo、sl uncommit 和 sl unamend 等命令可以轻松撤消许多操作。像 sl hide 和 sl unhide 这样的命令允许你简单而安全地隐藏提交并使它们恢复原来的样子。
上面提到的这些重点都集中在用户体验方面,除了这些之外,它在版本控制的底层也做了很多优化,例如,堆栈操作、数据压缩、代码审查,都做了很多改进,感兴趣的同学可以深入了解一下。
传送门
Github地址:https://github.com/facebook/sapling
使用文档:https://sapling-scm.com/docs/introduction/
建议大家有空可以多浏览Github,有很多好用的开源免费工具。但是,目前Github上项目多如牛毛,而且刷榜现在也非常严重,想要找到优质的项目变得越来越难。这里,给大家推荐Github上一个非常不错的项目《DevWeekly》,每周五晚上定期更新,这个项目每周都会精挑细选一些优质的开源项目,涵盖C++、JAVA、JavaScript、Python、Go等不同编程语言。此外,还有一些开源工具、优秀的技术文章:
网友评论