小编inf*_*ged的帖子

git clone 浅层子模块

我添加了一些 git 子模块,它们在 .gitmodules 中配置。我对子模块的特定提交感兴趣。因此,我提交了这些提交,并且可以在 git 子模块状态中看到。说是为了

[submodule "pcl"]
        path = libs/pcl
        url = https://github.com/PointCloudLibrary/pcl.git
Run Code Online (Sandbox Code Playgroud)

子模块状态显示757e28a75a0c6c0413085a2af070670828a48527libs/pcl。这意味着运行后将检查上述 SHA1git submodule update --init

但是,我的问题是我不想完全克隆子模块 pcl,因为我只对 757e28a75a0c6c0413085a2af070670828a48527 以后的提交感兴趣。有没有办法通过在 .gitmodules 文件中写入深度参数等来实现此目的?

我看过几篇文章,但大多数都建议做一个 git add 子模块。既然我已经这样做了,有没有办法用每个子模块的深度参数来编辑 .gitmodule 文件。

git clone --depth 10 --shallow-submodules <repo>
Run Code Online (Sandbox Code Playgroud)

在我看来,会拉取主分支的 10 次提交,然后拉取所有子模块的主分支的提示。我的理解正确吗?

git git-submodules

3
推荐指数
1
解决办法
4829
查看次数

响应中的 Http 版本 BaseHttp 模块 python

我正在使用带有 Python 的 BaseHttp 运行服务器。

我收到来自基于 HTTP/1.1 的客户端的请求

但是,当我用我的回复回复客户时,客户拒绝接受我的回复。在进一步分析中,我看到我发送的 HTTP 版本是 HTTP/1.0。但是,我不知道它是如何设置的。

客户端的错误是。

Original message: not well-formed (invalid token): line 2, column 4 
Response 
HTTP/1.0 200 OK
Server: BaseHTTP/0.3 Python/2.7.5
Date: Wed, 30 Jul 2014 15:11:42 GMT
Content-type: application/soap+xml; charset=utf-8
Content-length: 823
Run Code Online (Sandbox Code Playgroud)

我按以下方式设置标题:

self.send_response(200)
self.send_header("Content-type", "application/soap+xml; charset=utf-8")
self.send_header("Content-length", content_length)
self.end_headers()
Run Code Online (Sandbox Code Playgroud)

python basehttpserver

2
推荐指数
1
解决办法
1656
查看次数

CMake安装头文件并维护目录层次结构

使用cmake 2.8

我想在将头文件从源目录复制到目标目录时维护目录层次结构.例如,需要复制的头文件是abc/1.h,def/2.h,它们也应该直接在目标中以相同的顺序复制(通过CMAKE_INSTALL_PREFIX设置)

这是我尝试过的,但它只是复制头文件而不是包含父目录名的头文件

set(HEADERS "abc/1.h;def/2.h")
install(FILES ${HEADERS} DESTINATION include)
Run Code Online (Sandbox Code Playgroud)

最终输出应为dest_directory/abc/1.h和dest_directory/def/2.h.

cmake

2
推荐指数
1
解决办法
2408
查看次数

在sed中使用变量

不知何故,以下代码无法正常工作.echo显示正确的命令,但不会在文件中进行替换.

文件abcd.txt:

\overviewfalse
\part1false
\part2false
\part3false
\part4false
\part5false
\part6false
\part7false
Run Code Online (Sandbox Code Playgroud)

码:

function convert_to_true()
{
        sed -i 's/overviewfalse/overviewtrue/' abcd.txt
        for iterator in `seq 1 10`; do
                match=part${iterator}false
                replace=part${iterator}true
                command="sed -i 's/${match}/${replace}/' abcd.txt"
                echo $command
                $(command)
                done
}
Run Code Online (Sandbox Code Playgroud)

bash sed

2
推荐指数
1
解决办法
59
查看次数

功能模板按值和参考差异

我正在学习本教程 - http://www.learncpp.com/cpp-tutorial/132-function-template-instances/

// passing all parameters by references
template <typename T1, typename T2>
const T2& add_two_objects(const T1& x,const T2& y) {
        return x+y;
};

int main() {
    using std::cout;
    int x(0),y(0);
    std::cout << "Please enter number 1" << std::endl;
    std::cin >> x;
    std::cout << "Please enter number 2" << std::endl;
    std::cin >> y;
    cout<< "sum of two integers is " << add_two_objects(x,y+1.2)    << '\n';
    cout<< "sum of two double is " << add_two_objects(x,y+2.52424324) << '\n';
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

程序编译得很好,但在运行时,我总是遇到分段错误.但是,如果我将模板更改为按值传递,则一切正常. …

c++ reference temporary-objects

1
推荐指数
1
解决办法
53
查看次数

为什么git中的所有文件突然被标记为删除?

我有一个包含多个子模块的庞大项目。今天我唯一做的非凡的事情就是

git reflog
Run Code Online (Sandbox Code Playgroud)

它返回了一组提交。

但是现在,几个小时后,当我要提交一些更改时,git 状态显示所有文件都需要再次添加,即所有文件都被删除并重新添加。

git ls-files
Run Code Online (Sandbox Code Playgroud)

什么也不返回。什么地方出了错?我该如何解决它?

git

1
推荐指数
1
解决办法
883
查看次数

如何在单个模板调用中传递const_iterator和非const迭代器

我想知道如何将const_iterator传递给模板.例如,在下面的调用和函数模板中.

first1和last1的迭代器是

std::vector<std::pair<cv::Point_<float>, cv::Point_<float> > >::iterator
Run Code Online (Sandbox Code Playgroud)

而first2和last2的迭代器是const_iterator

std::vector<std::pair<cv::Point_<float>, cv::Point_<float> > >::const_iterator

template < typename T>
T my_function(T __first1, T __last1, T __first2, T __last2, T __result)
{

}
Run Code Online (Sandbox Code Playgroud)

打电话是

my_function(co1.begin(), co1.end(), co2.begin(), co2,end(), result.begin());
Run Code Online (Sandbox Code Playgroud)

有没有办法在单个模板中传递普通迭代器和const_iterator?

错误是

error: no matching function for call to ‘my_function(std::vector<std::pair<cv::Point_<float>, cv::Point_<float> > >::iterator, std::vector<std::pair<cv::Point_<float>, cv::Point_<float> > >::iterator, std::vector<std::pair<cv::Point_<float>, cv::Point_<float> > >::const_iterator, std::vector<std::pair<cv::Point_<float>, cv::Point_<float> > >::const_iterator, std::vector<std::pair<cv::Point_<float>, cv::Point_<float> > >::iterator)’’
             my_function(co1.begin(), co1.end(), co2.begin(), co2.end(), result.begin());
Run Code Online (Sandbox Code Playgroud)

c++ templates

1
推荐指数
1
解决办法
99
查看次数

从float中删除小数部分但保留类型的有效方法

我知道通过std :: round,std :: floor或std :: ceil或简单的类型转换,我们可以删除小数部分,但是使用类型转换,变量会丢失其原始类型(float或double).

有什么办法,我可以保留类型,仍然有效地删除小数部分.

我认为其中一种方法是从数字中减去小数部分,但这并不是那么有效.那么,也许还有其他方法呢?

示例 -

float a = 123.456;

float b;

b = do something on a;
Run Code Online (Sandbox Code Playgroud)

结果b是123.0

c++ floating-point

0
推荐指数
2
解决办法
101
查看次数