在阅读Git pre-commit hook:更改/添加文件后,出现以下问题:
鉴于我有一个包含分阶段和非分阶段更改的文件,如何在分段后显示文件内容的预览?
例:
echo "foo" >> file
git add file
echo "bar" >> file
Run Code Online (Sandbox Code Playgroud)
通缉输出:
[previous contents of file]
foo
Run Code Online (Sandbox Code Playgroud) 我最近开始使用git,并开始进行单元测试(使用Python的unittest模块).我想在每次提交时运行我的测试,并且只有在它们通过时才提交.
我猜我需要用pre-commit的/hooks,我已经成功地使它运行测试,但我似乎无法找到一种方法来阻止,如果他们失败测试的承诺.我正在运行测试make test,而后者正在运行python3.1 foo.py --test.似乎我没有得到不同的退出条件,无论测试通过还是失败,但我可能在错误的地方寻找.
编辑:我想在这里做一些不寻常的事吗?我原以为这是一个常见的要求......
编辑2:万一人们无法阅读评论,问题是unittest.TextTestRunner不会以非零状态退出,测试套件是否成功.要抓住它,我做了:
result = runner.run(allTests)
if not result.wasSuccessful():
sys.exit(1)
Run Code Online (Sandbox Code Playgroud) dpkg --list |grep linux-image |grep "ii " | while read line
do
arr=(${line})
let i=i+1
_constr+="${arr[2]} "
done
echo $i
echo ${_constr}
Run Code Online (Sandbox Code Playgroud)
循环外部的echo语句不显示预期变量.
我应该如何使变量的内容在循环外传播?
好吧,这就是场景:开发团队希望确保所有新代码都符合定义的编码标准,并且所有单元测试都在接受提交之前通过.这是诀窍,所有测试都需要在专用测试机器上运行,我们无权修改git服务器,因此必须使用每台开发机器上的本地提交挂钩来完成.
虽然规格非常严格(例如我们没有切换到Windows或颠覆),但这是一个现实问题,所以如果你有一个几乎适合的解决方案,那就有一些灵活性.
--no-verify选项绕过测试.问题:让测试服务器与本地环境同步以运行测试的最佳方法是什么?某种与新提交的git补丁的hash-to-hash匹配?完全跳过Git并做一个rsync吗?还有别的吗?
2013年7月7日更新:即使提到远程回购,我还是自己站了起来.关键是不要阻止代码被推送到共享/远程仓库,以防止本地提交发生.在这种情况下,这是否被认为是最佳实践并不是真正的重点,因为这是针对所有想要这些功能的小型开发团队所特有的.问题是关于实现目标的最佳方式.
我们有一个使用Hp Unified Functional Testing的测试团队.测试和开发团队都共享相同的Git存储库.测试团队中没有人使用HP-UFT中的Git功能,文件被提交并推送到工具之外.
尽管如此,HP-UFT(自动)创建并执行.gitignore文件的提交,如下所示.提交似乎是基于每个项目,并且混乱了git日志.
#UFT ignore section
*.lck
/Res*
#end UFT ignore section
提交不会自动推送.
所有提交的提交消息都是相同的(并且信息量不大):
UFT承诺
如何在Hp Unified Functional Testing(版本12.51)中禁用这种奇怪的行为?为了更清楚,我正在寻找的是一种使工具不执行这些提交的方法.我知道应该忽略这些文件和文件夹,但我宁愿在文件夹层次结构中进一步管理一个.gitignore文件.
谷歌搜索或阅读用户指南没有任何帮助.
我对这个问题表示赞赏,并指出我想要一个包含以下内容的答案:
在赏金到期后,没有答案符合这些条件,因此我试图澄清我想要的答案.
我有一个从源文件生成文档文件的钩子,用pre-commit.com 框架构建。在该钩子中调用的函数没有文件参数,因此它只是为目录中的所有源文件创建文档。钩子是一个system挂钩,即只是一个 bash 脚本,我在其中调用该函数来创建文档。然而,在 pre-commit.com 框架中,文件被传递给钩子,逻辑是在每个文件上执行一个钩子,这在大多数情况下是有意义的(例如分别对每个文件进行 lint)。所以我的问题是:如果有任何源文件更改,我如何确保文档挂钩运行一次,而不是在单个文件上多次(并行或顺序)运行?具体来说,我的钩子正在生成 R 文档,roxygen2::roxygenize()可以在这里找到。