我在命令行上使用Git.我经常在git分支中开发新功能,这些功能以与它们相关的Jira问题(维基百科:JIRA)命名,例如,用于Jira票证"NEW-123"的分支"new-123".
我有一个本地git prepare-commit-msg钩子,它将通过从Jira获取Jira票证的主题来创建提交消息.例如"完成#NEW-123:酷新功能".
但是,我更喜欢直接从命令行提交:
git commit -m "Finished #NEW-123: Cool new feature".
我想仅通过按[TAB]来创建引用的提交消息.
我知道bash完成机制(Bash:可编程完成简介).但是如何将它与现有的命令完成一起使用(git在bash中有其他优秀的完成)?我可以"完成"链接吗?
或者我是否需要重新编程git完成函数(可能通过在我的自定义函数中添加一个钩子)?
我们使用 CMake 和普通的 Unix makefile 进行构建。有一些静态分析检查,例如Cppcheck,我们在项目中的每个 C/C++ 文件上运行以在编译时捕获错误。
我为 cppcheck 创建了一个自定义目标并将其附加到“all”目标中。这会检查项目中的所有 *.c 和 *.cpp 文件。
我们希望每次更改和重新编译文件时都运行检查,并且仅针对该文件。检查应该自动运行,用户无需在 CMake 中添加额外的命令。本质上,检查应该“附加/挂钩”到正常的 CMake 命令add_library()和add_executable(). 在 CMake 中有什么办法可以做到这一点吗?
我的系统中同时存在 1.2 和 2.2 版本的 ExternalProject。ExternalProject 是一个 CMake 项目,当我要求它们时,CMake 可以毫无问题地找到这两个版本。命令find_package(ExternalProject 1.2 EXACT)查找版本 1.2 并find_package(ExternalProject 2.2 EXACT)查找版本 2.2。
版本 1 和 2 彼此不兼容。API 完全不同。
我有一个 CMake 项目 MyProject,它有两个目标,targetOne 和 targetTwo。TargetOne 使用 ExternalProject 1.2,TargetTwo 使用 ExternalProject 2.2。
下面的代码没有做我想要的。相同的外部依赖项不会被查找两次。TargetTwo 的编译失败。CMake 是否以任何方式支持这种情况?(除非重命名 ExternalProject 版本 2 并在不同的位置编译它)。
project(MyProject)
find_package(ExternalProject 1.2 EXACT)
add_executable(targetOne target_one.c)
target_link_libraries(targetOne ExternalProject::externalProject)
find_package(ExternalProject 2.2 EXACT)
add_executable(targetTwo target_two.c)
target_link_libraries(targetTwo ExternalProject::externalProject)
Run Code Online (Sandbox Code Playgroud)