小编dar*_*nir的帖子

Git忽略对部分跟踪文件的本地更改

具体来说,我维护了我的dotfiles的git存储库.我最近开始研究一台新机器,并在同一台机器上克隆了我的存储库.

现在,我希望对我的dotfiles进行一些更改,这些更改仅适用于此系统.我希望在我的存储库中忽略这些更改.

我应该继续跟踪和提交其他更改.

例如,在我的.gitconfig中,我有一个设置为:

[push]
   default = simple
Run Code Online (Sandbox Code Playgroud)

现在,在我的新机器上,git的版本使用得很旧.它仍然不支持simplepush 的设置.所以,我想改变这一点,但仅限于本地.

但是,如果我对.gitconfig进行任何其他更改,我想跟踪这些.无论如何我能做到这一点?

编辑:
我知道git update-index --assume-unchanged.它的问题是git将不再跟踪我的文件,直到我反转它.然后,它将跟踪所有变化.
我希望忽略某些变化并跟踪其余变化.

git

66
推荐指数
3
解决办法
3万
查看次数

如何编写检查竞争条件的测试?

我目前正在开展一个大型项目,该项目最近有很多变化,最突出的是增加了线程支持.

在查看代码时,我已经确定了可能会导致竞争条件的部分,如果不是现在,那么将来某个时候.为了防止这种回归,我想编写一个能够可靠地检测该特定区域中的竞争条件的测试,以确保未来的提交不会导致此故障.
代码没有乱七八糟的语句,但是潜在的死锁和竞争雷区,我想确保稳健性.

这个项目完全用C编写.那么,我是否还要编写单元测试以防止竞争条件?

c concurrency multithreading race-condition

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

C#文件处理:在可执行文件所在的目录中创建文件

我正在创建一个独立的应用程序,将分发给许多用户.现在每个人都可以将可执行文件放在他们机器上的不同位置
我希望在执行可执行文件的目录中创建一个新文件.因此,如果用户的可执行文件在:

C:\exefile\
Run Code Online (Sandbox Code Playgroud)

在那里创建文件,但是如果用户将可执行文件存储在:

C:\Users\%Username%\files\
Run Code Online (Sandbox Code Playgroud)

应该在那里创建新文件.

我不希望在我的应用程序中硬编码路径,但要确定可执行文件的存在位置并在该文件夹中创建文件.我怎样才能做到这一点?

c# file-io

6
推荐指数
3
解决办法
3万
查看次数

protobuf-c:如何打包嵌套消息

我有一个 Protobuf 协议文件,看起来像这样:

message Foo {
    message Bar {
        required string name = 1;
        required string value = 2;
    }

    message Baz {
        required Bar a = 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

鉴于此协议文件,我需要使用 protobuf-c(Protobuf 的 C 扩展)编写编码器。我写了以下代码:

Foo myfoo = FOO__INIT;
Foo__Bar mybar = FOO__BAR__INIT;
Foo__Baz mybaz = FOO__BAZ__INIT;
mybaz.a = &mybar;
Run Code Online (Sandbox Code Playgroud)

但是,我在这一点上被困在如何序列化mybaz. 为 Foo 生成的结构不包含我可以分配mybaz给的任何条目。并且没有生成直接打包Baz的方法。

在 Python 中,这要简单得多,因为mybaz.SerializeToString()已经生成了一个函数。我应该如何在 C 中解决这个问题?

c protocol-buffers

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

C:从生产代码中删除断言

在我正在研究的一个项目中,用C89编写,assert()当一些预先定义的假设不成立时,我使用语句作为代码在我的开发机器上失败的一种方式.但是,代码还包含一些错误处理代码,以便程序不会因生产环境中的断言失败而崩溃.

该项目使用GNU Autotools编译和分发源代码分发.

现在,我的问题是如何确保运行make dist将从我的代码中删除所有断言,然后生成分发tarball?

c assert production-environment

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

带有 404 检测的多个 cURL 下载

我正在尝试编写一个 shell 脚本,使用 cURL 下载文件并检测 url 是否导致 404 错误。如果 url 是 404,那么我想将 url 链接或文件名保存到文本文件中。

url 格式为http://server.com/somefile[00-31].txt

我一直在搞乱我在谷歌上找到的内容,目前有以下代码:

#!/bin/bash

if curl --fail -O "http://server.com/somefile[00-31].mp4"
then
  echo "$var" >> "files.txt"    
else
  echo "Saved!"
fi
Run Code Online (Sandbox Code Playgroud)

bash shell curl http-status-code-404

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

在C中的Linux上的$ PATH中搜索文件

我想测试在运行程序的系统上是否安装了GNUPlot。
为此,我认为我将通过stat()调用在用户的安装位置中测试gnuplot可执行文件的存在。

但是,我不知道如何在C中读取$ PATH环境变量,因此我可以测试这些位置是否存在文件。

c linux environment-variables

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