git-diff手册页说git diff用于
显示工作树与索引或树之间的更改,索引与树之间的更改,两个树之间的更改或磁盘上两个文件之间的更改.
但是,如果要显示HEAD之前的提交和工作目录之间的区别呢?那可能吗?
我已经在网上阅读了很多帖子和文章,但我找不到明确的答案.
我有一些具有类似用途的功能,我想要超出全局范围.其中一些需要公开,另一些应该是私有的(因为它们只是"公共"功能的辅助功能).另外,我不仅有函数,还有变量.它们只需要"私人"帮助函数,也应该是私有的.
现在有三种方式:
对我采取什么方式?结合其中一些方法的可能方法?
我想到了类似的东西:
谢谢.
我见过git命令使用的语法如此HEAD~,但我无法在Git 参考手册中找到这种语法.
这是我所理解的:<commit>~<n>指的是<commit>之前的提交<n>步骤(其中<n>是一个整数),并且只是意味着相同而且<n>隐含地是一个.commit~
现在,这是对的吗?在那种情况下,这总是有效吗?如果<commit>是两个分支之间合并的结果,那么提交将<commit>~引用什么?是否有一些相应的语法用于引用下一个提交或稍后提交<n>步骤?
我想检查串口上的传入数据包,使用boost.asio.每个数据包将以一个字节长的标头开始,并指定已发送的消息类型.每种不同类型的消息都有自己的长度.我想写的函数应该不断地监听新的传入消息,当它找到它时应该读取它,并调用其他函数来解析它.我目前的代码如下:
void check_for_incoming_messages()
{
boost::asio::streambuf response;
boost::system::error_code error;
std::string s1, s2;
if (boost::asio::read(port, response, boost::asio::transfer_at_least(0), error)) {
s1 = streambuf_to_string(response);
int msg_code = s1[0];
if (msg_code < 0 || msg_code >= NUM_MESSAGES) {
// Handle error, invalid message header
}
if (boost::asio::read(port, response, boost::asio::transfer_at_least(message_lengths[msg_code]-s1.length()), error)) {
s2 = streambuf_to_string(response);
// Handle the content of s1 and s2
}
else if (error != boost::asio::error::eof) {
throw boost::system::system_error(error);
}
}
else if (error != boost::asio::error::eof) {
throw boost::system::system_error(error);
}
} …Run Code Online (Sandbox Code Playgroud) 首先,我有一套
std::set<int*> my_set;
Run Code Online (Sandbox Code Playgroud)
然后,我有一个函数来检查一个特定的int指针是否p存在my_set,只有true当指针存在于其中时才会返回,false否则.
由于引用的函数不会修改int,很自然地把指针作为const int*,那就是
bool exists_in_my_set(const int* p)
{
return my_set.find(p) != my_set.end();
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试编译代码时,我收到以下错误:
error: invalid conversion from 'const int*' to 'std::set<int*>::key_type {aka int*}' [-fpermissive]
Run Code Online (Sandbox Code Playgroud)
换句话说,编译器会在我调用时尝试将其const int*转换为.int*find
不管怎样,我的问题是:我如何才能找到p的my_set,或至少找出是否p存在my_set与否,使用的现有定义p和my_set?
我正在尝试使用Qt Creator,在Windows 7 64位和英特尔SDK for OpenCL Applications 2013上编译以下C++代码:
#include <utility>
#define __NO_STD_VECTOR // Use cl::vector instead of STL version
#include <CL/cl.hpp>
int main()
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是我的.pro文件:
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.cpp
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/C:/Program1/Intel/OpenCL_SDK/3.0/lib/x64/ -lOpenCL
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/C:/Program1/Intel/OpenCL_SDK/3.0/lib/x64/ -lOpenCLd
else:unix: LIBS += -L$$PWD/C:/Program1/Intel/OpenCL_SDK/3.0/lib/x64/ -lOpenCL
INCLUDEPATH += C:/Program1/Intel/OpenCL_SDK/3.0/include
DEPENDPATH += $$PWD/C:/Program1/Intel/OpenCL_SDK/3.0/include
Run Code Online (Sandbox Code Playgroud)
我不得不删除$$PWD/(由于某些未知原因将Qt Creator添加到每个路径的开头)INCLUDEPATH,否则编译器将找不到CL/cl.cpp.
无论如何,在尝试编译时,我收到以下错误消息:
In file included from ..\opencl_test\main.cpp:3:0: …Run Code Online (Sandbox Code Playgroud) 由于GNU Octave自3.8.0版以来就带有GUI,我想我应该检查一下.
所以,因为我运行Windows和只能找到八度3.8 Cygwin的,我安装了Cygwin和包装octave,xinit,xlaunch和gnuplot(根据该页面,但如果需要所有这些软件包我不知道).
然后,当尝试使用来自Cygwin的GUI启动Octave时octave --force-gui,我最初得到了错误消息
octave: X11 DISPLAY environment variable not set
Run Code Online (Sandbox Code Playgroud)
和Octave将以控制台模式启动.所以我找到了这个页面,告诉我要运行
echo "export DISPLAY=:0.0" >>~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
从Cygwin,永久摆脱错误信息,这是有效的.但是,然后我得到此错误消息:
octave: unable to open X11 DISPLAY
Run Code Online (Sandbox Code Playgroud)
同一页面还说你必须通过转到Start - > Cygwin-X - > XWin Server来运行X Server.这工作,但由于我不希望xterm终端启动,因为它不需要,我发现这个页面告诉我运行
touch ~/.startxwinrc
Run Code Online (Sandbox Code Playgroud)
从Cygwin创建一个空.startxwinrc文件,以防止xtrem终端默认启动,这有效.同一页面还提到可以使用该命令直接从Cygwin启动X Server startxwin.
所以,现在我可以使用Cygwin的GUI启动Octave,只需运行即可
startxwin
octave --force-gui
Run Code Online (Sandbox Code Playgroud)
但是,我希望能够双击桌面图标以启动并运行所有内容.
所以,对于我的问题: 我可以以某种方式把它放在一个脚本文件中,当我运行它时,将在Cygwin中打开,以便脚本文件中的命令将在Cygwin中运行?在Octave终止后,有没有办法自动关闭X服务器?我已经尝试编写一个文件octave.bat,它启动Cygwin并提供第二个批处理文件作为参数,而后者又包含我想要执行的命令.但是当我运行第一个脚本时,我只是被命令提示(而不是Cygwin提示)轰炸,而且所有人都说
'startxwin' is not recognized as an internal or external command, operable program …Run Code Online (Sandbox Code Playgroud) 我在使用 pickle 加载 pkl 文件时遇到一些问题。我使用的是 Windows 7 和 Python 3.5.1 64 位。pkl 文件是从这里下载的。
这是我的代码:
import pickle
# Load model weights and metadata
weightFile = open('vgg16.pkl', 'rb')
d = pickle.load(weightFile)
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到输出
"C:\Program Files\Python35\python.exe" C:/work/lasagne/tutorial/lasagne-tutorial2.py
Traceback (most recent call last):
File "C:/work/lasagne/tutorial/lasagne-tutorial2.py", line 5, in <module>
d = pickle.load(weightFile)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xbc in position 1: ordinal not in range(128)
Process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)
这个错误信息是什么意思?它说有一个 acsii 编解码器无法解码的字节,但是 pkl 文件不应该是二进制的(因此不包含 ascii 字符)吗?
我加载文件时做错了什么吗?我可以做什么来修复该错误?
当我运行 cmake (为了在 Windows 上构建 TensorFlow)时,我收到错误消息
\n\nCMake Error at C:/Program Files/CMake/share/cmake-3.8/Modules/ExternalProject.cmake:1811 (message):\n error: git version 1.6.5 or later required for \'git submodule update\n --recursive\': GIT_VERSION_STRING=\'\'\nRun Code Online (Sandbox Code Playgroud)\n\n在第 1810\xe2\x80\x931812 行,ExternalProject.cmake我有以下几行:
if(GIT_VERSION_STRING VERSION_LESS 1.6.5)\n message(FATAL_ERROR "error: git version 1.6.5 or later required for \'git submodule update --recursive\': GIT_VERSION_STRING=\'${GIT_VERSION_STRING}\'")\n endif()\nRun Code Online (Sandbox Code Playgroud)\n\n但我看不到GIT_VERSION_STRING分配到哪里。无论如何,它似乎GIT_VERSION_STRING未分配或分配了空字符串或类似的东西。这使得 CMake 无法检测我的 Git 版本。
我有 Git 并且git --version给出了
git version 2.12.2.windows.2\nRun Code Online (Sandbox Code Playgroud)\n\n任何人都知道对此错误可以采取什么措施?
\nc++ ×3
git ×2
batch-file ×1
boost-asio ×1
cmake ×1
commit ×1
const ×1
cygwin ×1
find ×1
git-diff ×1
intel ×1
namespaces ×1
node.js ×1
octave ×1
opencl ×1
pickle ×1
pointers ×1
python-3.5 ×1
qt-creator ×1
reveal.js ×1
serial-port ×1
singleton ×1
static ×1
streambuf ×1
templates ×1
windows ×1
windows-7 ×1