GitLab 8.15中引入了自动部署和Web终端
作者 | Sergio De Simone
译者 | Rays
最新的GitLab 8.15版提供了新的持续集成和持续部署(CI/CD)特性,目的在于自动化不同平台上的部署,并使用命令行界面让试机(Staging)或产品部署更加便捷。
GitLab的自动部署(Auto Deploy)特性采用Docker将应用自动部署到容器调度器,例如Docker Swarm、Google Kubernetes和Apache Mesos等。为适合不同的基础架构提供商,自动部署使用了预定义的模板。模板中描述了如何打包应用、设置基础架构、调用所需的任意服务等。GitLab当前提供了一个参考模板,用于创建一个Docker镜像并将其部署到Open Shift平台上的Kubernetes中。GitLab将所有可用的模板存放于特定的代码库中。
自动部署可与Review Apps完全集成。Review Apps是GitLab的另一个特性,它允许创建短生命周期的应用环境,其生命周期绑定于特定的分支。使用Review Apps就可以不设置专用的开发服务器就实现在类生产环境中测试分支。组合使用自动部署与Review Apps可在分支合并前就将分支部署到走查(Review)环境中。
GitLab的Web终端(Web Terminal)特性让用户可以通过SSH连接到走查环境等应用环境中,并在Shell提示符下使用。Web终端的最大好处在于提供了对走查、试机或产品环境的便捷直接访问,这可快速测试变更对系统所产生的影响。
GitLab的其它显著特性包括:
- 改进了BitBucket的导入工具,其中涵盖了缺陷跟踪(Issue)及评论、合并采纳请求(Pull Request)及评论、里程碑(Milestone),以及Wiki。
- 可跨代码库使用Git钩的全局Git钩(Global Git Hooks)。Git钩是一种代码库特定的动作,由推送(push)、提交(commit)和归并(merge)等操作触发。
- 与Slack的集成,这使得软件缺陷问题可以直接由Slack创建、展示和搜索。最后一点,也同样重要的是,GitLab 8.15中还做了不少界面上的改进,包括新的字体、易于辨识的标签、对构建的滚动和加载的改进等。
Git 2.11改进SHA-1名称处理、性能以及更多方面
作者 | Rags Srinivas
译者 | 刘嘉洋
Git 2.11于最近发布,这次发布中有超过650次代码提交,对于SHA-1名称处理、性能改进等方面都有改善。
缩写的SHA-1名称是从160位(或40位十六进制字符)签名衍生而来的缩写。开发者使用缩写的4个字符,代替了原来一些不方便的方法,例如说原来40个字符的哈希。虽然使用起来方便但会导致名称冲突。
比如使用以前的版本,git show命令会产生一条消息提醒这个缩写的名称含义模糊。
现在相同的命令也会产生。
可以通过手动提供更多字符,或是通过git config命令来消除名称中的歧义。
默认情况下也会显示较长的缩写名称。例如,以下的命令产生九个字符的缩写名称,而不是以前版本中显示的七个字符的缩写名称。
Git 2.11对于Delta Chains和包文件中的对象查找做了较多性能提升。该版本中加速了补丁ID的计算速率,可以通过命令git rebase使用,并且含有一个过滤机制可以加速本地文件系统表示之间的转换。
在博客上还列举了其他地方的改进,包括:
- 由于对diff算法的改进,使得结果(--compaction-heuristic选项)易于阅读,通过改进该选项在未来可能会成为默认选项。
- 通过对git log的改进实现对给定父级的排除。
- contrib/中的证书助手,使用GNOME libsecret存储Git密码。
- git diff命令将显示子模块的更改,作为两个子模块状态之间的实际补丁。
- git status给出一种更有助于机器可读的输出格式。
- 将Git的shell脚本转换到C程序的整体性能也得到了提升。
想要了解更多Git 2.11的功能可以阅读发行说明。