我一直在使用TFS中的持续集成(CI)构建.但是,在我上一个项目中,我们开始使用门控签入触发器.
使用门禁办理登机手续有什么不利之处吗?因为如果它阻止团队检查损坏的代码,那么CI触发器的目的是什么?
我想确保我推送的每个提交都通过测试。
我想在我的(客户端)端检查这一点,即在提交之前进行检查(所以我不想依赖 CI 工具)。
目前,我已经实现了一个pre-commit运行测试的钩子,因此我什至无法提交损坏的状态。
然而,我的测试套件运行需要花费几秒钟的时间。在编写提交消息之前我需要等待很多时间。这使得日常使用变得不切实际;两者都是因为我经常提交,而且我有时故意想要提交一个损坏的状态以供稍后粉碎(我知道git commit --no-verify,但这不是重点)。
因此,我不想一次(在创建时)检查每个提交,而是想在推送之前对它们进行批量测试。
如何实现一个钩子来为每个要推送的新提交pre-push运行我的测试套件?
(为了简单起见,假设通过测试意味着test/run_tests.sh返回0。)
我正在制作一个预先提交的脚本.它看起来像这样:
function presubmit() {
gradle test android
gradle test ios
gradle test server
git push origin master
}
Run Code Online (Sandbox Code Playgroud)
我希望函数退出,如果任何测试失败,那么它不会将bug推送到git.怎么样?
我已经开始使用Github来托管我的大部分代码,包括我的Matlab代码.事实证明,Github语法根据其扩展而不是文件内容突出显示代码.这对于Matlab m文件来说并不是那么好.它们被识别为Objective-C文件,也是.m,并且未正确识别/突出显示.如果它们具有.matlab扩展名,Github会突出显示Matlab m文件,但问题是Matlab似乎拒绝运行没有.m扩展名的文件.我无法提出解决方案,因为我希望我的matlab文件能够与Github和Matlab很好地配合使用.所以这里有几个问题:
有没有办法在推送到Github时将所有.m文件转换为.matlab扩展名?在从Github获取或克隆时,还需要将.matlab文件转换为.m扩展名吗?
如果1.不可能,有没有办法让Matlab运行具有.matlab扩展名的文件?
如果是1或2,我会喜欢一些提示或如何做到这一点的例子.
如何创建分支别名,使其可以被推拉而不被视为单独的分支。一些背景:
我们有一个名为Production. 由于各种原因,我不能只是重命名分支。
$ git branch --all
* master
remotes/origin/HEAD -> origin/master
remotes/origin/Production
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
有时我会git checkout production错误地没有注意到它是一个新分支。没有远程分支production。也没有 ref origin/production。
$ git checkout production
Branch production set up to track remote branch production from origin.
Switched to a new branch 'production'
$ git status
On branch production
Your branch is up-to-date with 'origin/production'.
nothing to commit, working directory clean
$ git branch --all
master
* production
remotes/origin/HEAD -> origin/master
remotes/origin/Production
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
Git 创建了一个本地分支 …
当我安装 npm 包jsonlines时,它被解析为镜像注册表registry.npm.taobao.org而不是registry.npmjs.org. 它仅针对 执行此操作jsonlines。这是什么原因造成的?
这是我的 package-lock.json 的差异。原始的“已解析”值是在另一个开发人员安装该包时创建的:
"jsonlines": {
"version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsonlines/-/jsonlines-0.1.1.tgz",
+ "resolved": "https://registry.npm.taobao.org/jsonlines/download/jsonlines-0.1.1.tgz",
"integrity": "sha1-T80kbcXQ44aRkHxEqwAveC0dlMw="
},
Run Code Online (Sandbox Code Playgroud)
我确认我配置的注册表是 npmjs.org:
$ npm config get registry
https://registry.npmjs.org/
Run Code Online (Sandbox Code Playgroud) 在将更改推送到远程(位于bitbucket上)之前,我想有一个钩子来运行我的测试.
我通常分支主人,当功能完成后我将它合并回主人和推,这就是我寻找预推钩的原因.相反,我使用了限制和主提前限制的预提交.我已经看到为Git 1.6完成的补丁和另一个问题,它提出了我提出的解决方案的问题.
我想知道的是为什么 git不支持pre-push hook(特别是如果一个补丁已被接受过一次)?(顺便说一句 - 我是最新的git版本)