小编ams*_*ams的帖子

"无法确定工作树历史记录中的上游SVN信息"

我正在尝试使用这里记录的GCC git镜像.

前段时间,我克隆了git存储库:

git clone git://gcc.gnu.org/git/gcc.git
Run Code Online (Sandbox Code Playgroud)

添加了git-svn的东西:

git svn init -Ttrunk --prefix=origin/ svn+ssh://gcc.gnu.org/svn/gcc
Run Code Online (Sandbox Code Playgroud)

然后git svn rebasegit svn dcommit等所有的工作很好.

几个月后,我在本地git分支上做了各种开发工作,并且我已经对上游SVN进行了更多更改:

  1. 从git miror更新:

    $ git rebase
    
    Run Code Online (Sandbox Code Playgroud)
  2. 确保我拥有SVN的最新版本,但它不起作用:

    $ git svn rebase -v
    Unable to determine upstream SVN information from working tree history
    
    Run Code Online (Sandbox Code Playgroud)

不知何故,我打破了元数据!除了上述内容之外,我认为我git svn fetch错误地在某个时刻做过,但这不应该是有害的,不是吗?

所以,我尝试从远程git镜像创建一个新的分支:

$ git branch svntrunk remotes/origin/trunk
$ git checkout svntrunk
$ git svn rebase
Unable to determine upstream SVN information from working tree history
Run Code Online (Sandbox Code Playgroud)

网络搜索表明分支历史在某种程度上与SVN不同,但我已经检查过git log并且每个提交都有相应的git-svn-id …

git git-svn

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

lsync配置使用非root登录

我搜索了大约5天,尝试了许多技巧和提示,甚至试图让lsync的作者帮助,但都是徒劳的.

我有2台Red Hat 6.3 Web服务器,需要在上传图像时同步其图像目录.我们无法控制上传到哪个服务器,但是在上传时它不会被加载到另一个服务器上.

我只需要能够告诉lsync使用除root之外的其他用户凭据.我们的信息安全团队不允许无密码root访问.不能说我怪他们.

我有一个帐户,该帐户具有sudo访问权限,可以执行将文件发送到目的地所需的一切.虽然我可以使用rsync来执行同步,但是当从lsync运行时,它会因为权限被拒绝而失败.

我甚至可以从日志中复制lsync执行的命令,删除方括号并成功同步.所以,我很确定是导致问题的lsync.仅仅因为它是以root身份运行的.shell脚本强制它以root身份运行.我甚至试图将其更改为非root帐户,并且所有支持文件都随脚本一起更改,但仍然拒绝同步.

以下是我所拥有的脚本和文件的详细信息:操作系统:Red Hat Linux版本6.3(圣地亚哥)lsyncd配置文件:

 ----
 -- User configuration file for lsyncd.
 --
 -- Simple example for default rsync, but executing moves through on the target.
 --
 -- For more examples, see /usr/share/doc/lsyncd*/examples/
 -- 
 -- sync{default.rsyncssh, source="/var/www/html", host="localhost", targetdir="/tmp/htmlcopy/"}

settings{
    logfile = "/var/log/lsyncd.log",
    statusFile = "/var/log/lsyncd-status.log",
    delay = 1,
}
sync {
    default.rsyncssh,
    source="<Absolute path to source directory>",
    host      = "<Host IP>",
    targetdir = "<Absolute path to target directory>",
    rsync = {
        binary = …
Run Code Online (Sandbox Code Playgroud)

rsync lsyncd

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

如何将现有的源文件和头文件添加到CLIon项目中

我正在尝试将现有的源文件添加到我的Clion项目中,但在将它们添加(复制并粘贴)到项目后,这些文件未添加到CMakeLists文件中.此外,该文件夹是半透明的(灰色).

如何自动将新文件添加到CMakeList?

cmake clion

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

动态分配指针数组

以下代码给出了分段错误.我无法弄清楚为什么.请参阅..

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int **ptr;
    int *val;
    int x = 7;
    val = &x;
    *ptr = (int *)malloc(10 * sizeof (*val));
    *ptr[0] = *val;
    printf("%d\n", *ptr[0] );

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在使用gdb进行调试时,它说:

Program received signal SIGSEGV, Segmentation fault.

0x0804843f in main () at temp.c:10

*ptr = (int *)malloc(10 * sizeof (*val));
Run Code Online (Sandbox Code Playgroud)

任何有关此事的帮助表示赞赏.

c malloc pointers segmentation-fault

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

sscanf直到它达到逗号

我正在尝试扫描一个字符串中的单词和数字,如下所示:" 你好,世界,我,287876,6.0 "< - 这个字符串存储在一个char数组中(字符串)我需要做的是拆分和将它们分配给不同的变量就好了

     char a = "hello"
     char b = "world"
     char c = "I"
     unsigned long d = 287876
     float e = 6.0
Run Code Online (Sandbox Code Playgroud)

我知道常规scanf在到达空白区域时停止从stdin读取.所以我一直在想,有可能让sscanf在达到","(逗号)时停止阅读

我一直在探索图书馆,找到sscanf的格式,只读字母和数字.我找不到这样的东西,也许我应该再看一次.

有帮助吗?提前致谢 :)

c string scanf

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

C缩进工具

我有一堆C文件,我需要检查一组缩进规则.这些规则是定制的.我基本上需要标记所有缩进违规的警告.是否有任何代码/工具可以对C文件进行基本解析.我打算将自己的东西添加到已经存在的代码中.

c indentation

5
推荐指数
0
解决办法
485
查看次数

通过 pthread 库实现内存可见性?

我正在阅读《Programming With POSIX Threads》(作者 David Butenhof),他提到使用 pthread 库:

线程在解锁互斥体时(直接解锁或通过等待条件变量)可以看到的任何内存值,也可以被稍后锁定同一互斥体的任何线程看到。同样,在互斥体解锁之后写入的数据不一定能被锁定互斥体的线程看到,即使写入发生在锁定之前。

突然我想知道下面的代码是否有效:

线程A:

strcpy(buffer, "hello world");
pthread_spin_lock(&lock); // assuming the mutex in the statement above can be interchanged with spinlock. I don't see why it can't
pthread_spin_unlock(&lock);
Run Code Online (Sandbox Code Playgroud)

线程B:

pthread_spin_lock(&lock);
pthread_spin_unlock(&lock);
// read buffer; assuming thread B has a copy of the pointer somehow
Run Code Online (Sandbox Code Playgroud)

我的问题是:线程 B 可以在缓冲区中看到“hello world”吗?根据他的说法,应该是这样。我理解“通常”的方式是通过锁定来保护共享“资源”。但是我们假设 strcpy() 是随机发生的,并且在程序的生命周期中只能发生一次,并且假设线程 B 在线程 A 调用 pthread_spin_unlock() 之后以某种方式调用 pthread_spin_lock() :)

附带问题:是否有更快的方法使缓冲区的更改对其他线程可见?假设可移植性不是问题,而且我使用的是 CentOS。我能想到的一种替代方法是使用 mmap() 但不确定是否有任何更改在不使用 pthread 库的情况下全局可见。

c linux gcc pthreads

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

MediaCodec总是提供16位音频输出吗?

我正在使用Android的MediaCodec类从音频文件中读取原始数据.这很好用.

问题是我不知道假设输出数据总是16位是否安全?

我可以通过实验告诉输出 16位的,但我不知道如何在运行时检查它.MediaCodec文档似乎没有告诉我.MediaFormat KEY_CHANNEL_MASK可以告诉我,但MediaCodec似乎没有设置这些标志.它设置了采样率和mime类型,但没有任何可以明确告诉我位大小的内容.

我想,考虑到后续块的显示时间和采样率之间的差异,我应该能够计算它,但这似乎不太令人满意.

有没有办法告诉,还是写在我不需要的地方?

android mediacodec

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

使用 -m32 编译 C++ 与 Cygwin G++ Windows 64 位错误

我正在尝试使用 cygwin g++ 用 -m32 编译我的 c++ 程序,但是当我尝试这样做时出现错误。

根据我对这个问题的了解,我需要从 cygwin 包管理器下载一个可以-m32工作的包,但我不确定它是哪个包。我读过的另一篇文章说我必须从包管理器安装gcc-multilib和安装,g++-multilib但这些包不在可用包的选择中。

/usr/lib/gcc/x86_64-pc-cygwin/6.4.0/../../../../x86_64-pc-cygwin/bin/ld:     skipping incompatible /usr/lib/gcc/x86_64-pc-cygwin/6.4.0//libgcc_s.dll.a when     searching for -lgcc_s
/usr/lib/gcc/x86_64-pc-cygwin/6.4.0/../../../../x86_64-pc-cygwin/bin/ld:     skipping incompatible /usr/lib/gcc/x86_64-pc-cygwin/6.4.0/libgcc_s.dll.a when     searching for -lgcc_s
/usr/lib/gcc/x86_64-pc-cygwin/6.4.0/../../../../x86_64-pc-cygwin/bin/ld:     skipping incompatible /usr/lib/gcc/x86_64-pc-cygwin/6.4.0//libgcc_s.dll.a when     searching for -lgcc_s
/usr/lib/gcc/x86_64-pc-cygwin/6.4.0/../../../../x86_64-pc-cygwin/bin/ld:     skipping incompatible /usr/lib/gcc/x86_64-pc-cygwin/6.4.0/libgcc_s.dll.a when     searching for -lgcc_s
/usr/lib/gcc/x86_64-pc-cygwin/6.4.0/../../../../x86_64-pc-cygwin/bin/ld:     cannot find -lgcc_s
/usr/lib/gcc/x86_64-pc-cygwin/6.4.0/../../../../x86_64-pc-cygwin/bin/ld:     skipping incompatible /usr/lib/gcc/x86_64-pc-cygwin/6.4.0//libgcc.a when     searching for -lgcc
/usr/lib/gcc/x86_64-pc-cygwin/6.4.0/../../../../x86_64-pc-cygwin/bin/ld:     skipping incompatible /usr/lib/gcc/x86_64-pc-cygwin/6.4.0//libgcc.a when     searching for -lgcc
/usr/lib/gcc/x86_64-pc-cygwin/6.4.0/../../../../x86_64-pc-cygwin/bin/ld:     skipping incompatible /usr/lib/gcc/x86_64-pc-cygwin/6.4.0/libgcc.a when     searching for -lgcc
/usr/lib/gcc/x86_64-pc-cygwin/6.4.0/../../../../x86_64-pc-cygwin/bin/ld:     skipping incompatible …
Run Code Online (Sandbox Code Playgroud)

mingw mingw32

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

glibc rand函数实现

我正在阅读带有glibc源代码的标准库rand()函数实现. stdlib/random_r.c,第359行

int
__random_r (buf, result)
            struct random_data *buf;
            int32_t *result;
{
  int32_t *state;

  if (buf == NULL || result == NULL)
    goto fail;

  state = buf->state;

  if (buf->rand_type == TYPE_0)
    {
      int32_t val = state[0];
      val = ((state[0] * 1103515245) + 12345) & 0x7fffffff;
      state[0] = val;
      *result = val;
    }
  else
    {
      int32_t *fptr = buf->fptr;
      int32_t *rptr = buf->rptr;
      int32_t *end_ptr = buf->end_ptr;
      int32_t val;

      val = *fptr += *rptr;
      /* Chucking least random bit. …
Run Code Online (Sandbox Code Playgroud)

c random glibc

4
推荐指数
2
解决办法
7739
查看次数

安装pydeep时,命令'gcc'以退出状态1失败

我试图pip install pydeep在CentOS 64b上安装pydeep ,但我明白了: error: command 'gcc' failed with exit status 1.试图安装gcc和许多其他像python-dev等,但仍然没有结果.我还从GitHub克隆它并尝试: python setup.py build但我遇到了同样的问题(注意我已经有了libssdeep).

Downloading/unpacking pydeep
  Running setup.py egg_info for package pydeep
Installing collected packages: pydeep
  Running setup.py install for pydeep
    building 'pydeep' extension
    gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/python2.6 -c pydeep.c -o build/temp.linux-x86_64-2.6/pydeep.o
    pydeep.c:2:19: error: fuzzy.h: No …
Run Code Online (Sandbox Code Playgroud)

gcc centos

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