我知道要让 git 在提交之前检查提交消息,您可以实施hooks/commit-msg. 但现在想象一下您想让hooks/pre-commit脚本根据提交消息表现不同的情况?
例如(在非常宽松的环境中)您可能想检查[nocheck]提交消息中是否有一个始终让提交检查通过的标签。
或者 - 在更严格的环境中 - 您可能希望对每个文件进行注释(因此单独列出)。
或者您可能想根据相关文件检查票证 ID。
ETC...
除了在 commit-msg 中进行实际检查(这似乎违反直觉)之外,还有其他方法可以实现此目的吗?
编辑:接受的答案还不能解决我的问题,但是它回答了我所提出的问题-如果您可以通过下面描述的实际问题帮助我,您可以回答此问题。
我有一个CMake项目,该项目使用的框架需要设置变量(即https://github.com/queezythegreat/arduino-cmake,需要使用ARDUINO_SDK_PATH)
奇怪的是,我在命令行上设置了该变量后,它首先具有一个值,但是看起来它会在一段时间后消失。
我在跑
cmake -DARDUINO_SDK_PATH=/path/to/sdk ..
Run Code Online (Sandbox Code Playgroud)
..并收到一条错误消息,告诉我未设置。在我的顶部CMakeLists.txt以及在该框架的检查变量的内部深处输出值,可以得到如下信息:
>>> ARDUINO_SDK_PATH (beginning): '/home/me/project/arduino-1.8.2'
>>> ARDUINO_SDK_PATH (before check): '/home/me/project/arduino-1.8.2'
-- The C compiler identification is GNU 6.2.0
-- The CXX compiler identification is GNU 6.2.0
-- Check for working C compiler: /usr/bin/avr-gcc
>>> ARDUINO_SDK_PATH (before check): ''
CMake Error at /home/me/project/arduino-cmake/cmake/ArduinoToolchain.cmake:84 (message):
Could not find Arduino SDK (set ARDUINO_SDK_PATH)!
Call Stack (most recent call first):
/home/me/project/build/CMakeFiles/3.6.2/CMakeSystem.cmake:6 (include)
/home/me/project/build/CMakeFiles/CMakeTmp/CMakeLists.txt:3 (project)
CMake Error: Internal CMake …Run Code Online (Sandbox Code Playgroud) 给定一个列表[a, b, c, d]我想调用一个foo()返回数字并乘以返回值的函数:
result = foo(a, b) * foo(b, c) * foo(c, d)
Run Code Online (Sandbox Code Playgroud)
这个pythonic单线程是什么?我内心的C程序员会开始摆弄索引和循环,但我知道必须有更好的方法..
我知道有用于性能测试和 py.test 分析的插件,但是有没有办法生成在测试后报告或以某种方式访问的任意值?
想象一下我有一个这样的测试
def test_minimum_learning_rate():
"""Make some fancy stuff and generate a learning performance value"""
learning_rate = fancy_learning_function().rate
pytest.report("rate", learning_rate)
assert learning_rate > 0.5
Run Code Online (Sandbox Code Playgroud)
这pytest.report(..)条线就是我想要的(但不存在,不是吗?)
现在我想要将minimum_learning_rate[rate]实际测试结果与报告一起写入(或者至少在屏幕上)。
Jenkins 的一些插件真的很好,它可以根据这些数据创建一个漂亮的图表。
这有典型的措辞吗?我一直在寻找kpi,arbitrary values但user defined values还没有任何运气..
我目前正在开发基于 PyQt5 的应用程序,我可以使用(嵌入式)编辑器为 YAML(可能还有 JSON)提供一些语法突出显示。
我希望 Qt 有一些内置的功能,但我发现的只是一些讨论和一些像这样的手工实现。
是否有一种简单的方法可以在现有小部件上激活语法突出显示?或者我可能会使用一个紧凑的 3rd 方小部件?
我想“分解”一个Image(即split()),通过将其中一个通道与另一个通道组合来修改它,然后再次重新“组合”(即merge())它们。
此示例应使用我希望存在的功能将边缘映射到红色通道来突出显示边缘:
from PIL import Image, ImageFilter
base = Image.open("example.jpg")
base.show()
Run Code Online (Sandbox Code Playgroud)
edges = (base
.convert("L")
.filter(ImageFilter.Kernel((3, 3), (-1, -1, -1, -1, 8,-1, -1, -1, -1), 1, 0))
.point(lambda p: 255 if p > 10 else 0))
edges.show()
Run Code Online (Sandbox Code Playgroud)
r, g, b = base.split()
# now I want the blue channel/band for each pixel to be whatever respective
# pixel is brighter on a given set of bands
# this is what I want …Run Code Online (Sandbox Code Playgroud) 请考虑以下代码段:
线程1:
while (true) {
task = fetch_task();
{
lock_guard<mutex> lock(my_mutex);
// modify content of my_list
my_list.push_back(task);
}
}
Run Code Online (Sandbox Code Playgroud)
线程2:
while (true) {
if (!my_list.empty()) {
{
lock_guard<mutex> lock(my_mutex);
// modify content of my_list
if (!my_list.empty()) {
task = my_list.pop_front();
}
}
if (taks) {
handle_taks(task);
}
}
do_some_other_stuff();
}
Run Code Online (Sandbox Code Playgroud)
我知道这个代码在很多层面都很差(比如异常处理),而且在任务处理方面还有更好的方法 - 我只对一个方面感兴趣:
我my_list.empty()在互斥范围之外调用(可能是为了避免锁定my_mutex性能危急情况).
闻起来很糟糕,我不打算这样做 - 但我想知道真正发生了什么.empty()返回bool- 我可以假设至少这个电话是安全的吗?
当然,在我打电话后内容可能已经改变,empty()所以我必须通过再次检查empty()互斥范围内来避免竞争条件.
所以我的问题是 - …