当我尝试使用Google Test时,我遇到了一个问题.
有很多关于如何使用ExternalProject_Addgtest添加到项目中的手册,但是大多数这些手册描述了一种基于使用gtest下载zip存档并构建它的方法.
我们知道gtest是github托管和基于cmake的项目.所以我想找到原生的cmake方式.
如果这是一个仅限标题的项目,我会写一些类似于:
cmake_minimum_required(VERSION 2.8.8)
include(ExternalProject)
find_package(Git REQUIRED)
ExternalProject_Add(
gtest
PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/ext
GIT_REPOSITORY https://github.com/google/googletest.git
TIMEOUT 10
UPDATE_COMMAND ${GIT_EXECUTABLE} pull
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
LOG_DOWNLOAD ON
)
ExternalProject_Get_Property(gtest source_dir)
set(GTEST_INCLUDE_DIR ${source_dir}/googletest/include CACHE INTERNAL "Path to include folder for GTest")
set(GTEST_ROOT_DIR ${source_dir}/googletest CACHE INTERNAL "Path to source folder for GTest")
include_directories(${INCLUDE_DIRECTORIES} ${GTEST_INCLUDE_DIR} ${GTEST_ROOT_DIR})
message(${GTEST_INCLUDE_DIR})
Run Code Online (Sandbox Code Playgroud)
并从我的cmake项目添加此脚本,如:
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake.modules/")
include(AddGTest)
....
add_dependencies(${PROJECT_NAME} gtest)
Run Code Online (Sandbox Code Playgroud)
但是,这需要构建步骤.
该如何实施?
BUILD_COMMAND到ExternaProject_Add,并与生产库链接?add_subdirectory (${CMAKE_SOURCE_DIR}\ext\src\gtest\googletest\CMakeLists.txt)
这是不正确的方法,因为在项目加载的那一刻文件夹不存在.
什么是正确/偏好的方式?
想在智能git中撤消提交操作.无意中提交了错误的代码,现在无法恢复该代码.
提前致谢.
我错误地将现有文件的本地更改添加到了我的PR中.我想仅还原此文件而不在本地删除此文件.我只是希望它不会出现在Pull Request中.我不想创建新的分支,因为很多人对此PR中的其他文件进行了评论.
我正在尝试创建两个Jenkins作业,它们都利用GitHub Pull Request Builder插件来运行多个状态检查,但是我无法从我的下游作业中获取状态检查以显示在我的GitHub项目中.
以下是我想要设置的总结CI流程:
SUCCESS应该通过构建后操作调用下游作业第3步是我遇到问题的地方.下游正常运行,但它没有发布状态.在我的GitHub项目设置的分支部分下,状态甚至不可用.我不确定GHPRB如何初始创建状态检查,但是在控制台输出中有对上下文消息的引用:
14:58:23 Started by upstream project "upstream" build number 209
14:58:23 originally caused by:
14:58:23 GitHub pull request #114 of commit f1ff2819a5308f7819275e732cf44a2cc2ec31dc, no merge conflicts.
14:58:23 [EnvInject] - Loading node environment variables.
14:58:23 Building on master in workspace /store/jenkins/jobs/downstream/workspace
14:58:23 > git rev-parse --is-inside-work-tree # timeout=10
14:58:23 Fetching changes from the remote Git repository
14:58:23 > …Run Code Online (Sandbox Code Playgroud) 我刚从火星升级到Eclipse Neon.之前我可以从"团队"菜单中选择"提交",对话框将为我想要播放的文件提供复选框.我可以轻松点击"全选",所有文件都会上演.事实上,如果我没记错的话,已经在存储库中的文件已经被检查过了.
现在Eclipse Neon没有弹出对话框,但显示了"Git Staging"视图选项卡.修改后的文件列为"未分级更改".是的,我熟悉Git工作流程,但这似乎是Eclipse UI的倒退.我如何"暂存"文件?我是否必须选择它们并将它们拖放到"分阶段更改"?我是否必须右键单击它们并将它们添加到索引中?
无论发生什么,它都不会让我只是点击"提交"按钮---它会抱怨没有未分级的文件.我是否错过了一些提交方法,就像在Eclipse Mars中一样简单,自动暂存文件或至少是"全部显示"按钮?
注:类似的问题,因为这一个,但也有一些重要的变化.
在给定提交ID的情况下,我有以下函数来重写提交的日期:
rewrite-commit-date () {
local commit="$1"
local newdate="$2"
newdate="$(date -R --date "$newdate")"
echo ">>>> Rewriting commit $commit date: $newdate"
git filter-branch --env-filter \
"if test \$GIT_COMMIT = '$commit'
then
export GIT_AUTHOR_DATE
export GIT_COMMITTER_DATE
GIT_AUTHOR_DATE='$newdate'
GIT_COMMITTER_DATE='$newdate'
fi" &&
rm -fr "$(git rev-parse --git-dir)/refs/original/"
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试实现类似的功能rewrite-commit-message来更改提交消息.我想要的是:
rewrite-commit-message接受两个参数:和commit_id,和new_commit_messagecommit_id知道哪个提交更改git commit --amend,因为这与旧提交有关(不一定与最近的提交有关)git push -ffilter-branch它,但我不知道如何:
test在所使用的rewrite-commit-date功能是用来在env-filter,但我不会做env-filter在这里,因为我不希望改变有关提交环境中任何事物,但提交信息.有没有办法在Windows上更改git bash的根目录(/).
默认情况下,它设置为安装文件夹.将其设置为c:\而不是需要在所有绝对路径上键入驱动器号,例如/ c/some/path.
我已经调查了论坛,但没有运气.
要求:
运行GIT LOG(格式)命令并将结果写入Excel文件.
我见过一些例子,其中使用GIT Log命令,数据可以写入CSV,但格式化是两倍的努力.
任何实用程序或方法都会有所帮助.
谢谢米琳德
我正在使用Visual Studio 2015 Pro并使用Git repo.假设我做了拉动或应用隐藏的更改或做了一些导致我的分支发生冲突的事情.例如,在这种情况下,我只是应用了一个存储:
正如您所看到的,我有一些更改,但Web.config存在冲突.为什么始终存在冲突的XML文件?
现在,我进入Visual Studio并转到Team Explorer-> Changes:
在这里,我看到我的暂存的变更,但也有零个不分级的变化.我想知道为什么Web.config没有显示在这里,所以我可以解决冲突.
两件事情:
git config --global merge.tool已经vsdiffmerge所以如果我是运行git mergetool在命令行,那就再使用Visual Studio合并.但是,这样做会产生一个全新的Visual Studio实例,这个实例很慢而且很烦人,并且不允许我在项目的其余部分工作.有人对这个有任何见解吗?谢谢!
我使用Git处理一个项目.每隔一段时间我发现自己想要保存我的更改,而不是提交它们,只是作为备份,然后继续工作.我通常做的是git stash然后立即git stash apply将代码恢复到与存储之前相同的状态.我遇到的问题是git stash会恢复我的工作目录,所以即使我立即应用存储文件和项目也必须重建,因为它们似乎已经改变了.这非常令人讨厌,因为我们的一些项目需要很长时间才能构建.
所以我的问题是,有没有办法存储我的更改而不还原?如果stash不这样做,git中是否还有其他命令可以执行此操作?谢谢.