小编ELL*_*BLE的帖子

将git存储库历史记录的一部分移动到另一个存储库中

这里有很多关于将文件夹从一个存储库移动到新存储库的帖子git filter-branch; 我需要做的是将单个文件移动到新的存储库中.

我已经创建了新的存储库,并将文件系统中的旧存储库添加为"远程",并创建了一个新的"根提交"(只需为新的单文件项目添加自述文件).现在我需要移植与此特定文件有关的提交到新的root-commit上.

(我应该提一下,这个文件在任何时候都没有像任何其他文件一样被修改;我怀疑这可能会使这个任务变得更容易.)

git merge repository

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

librt和libeio对于异步I/O有什么区别,为什么我会选择其中一个呢?

真的想把更多的东西放在身上来解释这个问题......但标题真的涵盖了这一切.据我所知,librt更"官方"(它是标准的一部分libc?),但我也记得看到Node.js使用libeio.我应该花更多的时间研究一下?便携性怎么样?他们的API有何不同?

(如果有一个代表≥1,500的人可以在这个问题上添加标签"libeio"和"librt",我会很感激,因为我不能.)

c io asynchronous librt

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

管道传输时如何确定终端宽度(对于较少的寻呼机?)

如果我的程序是通过命令行管道到另一个程序,有没有办法让我仍然确定其宽度?

我正在使用Node,如果这是相关的,虽然任何一般的POSIX解决方案都是受欢迎的(我可以弄清楚如何将它自己移植到我的环境中.)目前,我可以process.stdout.columns在Node中使用; 但那与之相关联process.stdout,在这种情况下是管道.

terminal posix pipe node.js

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

如何在 shell 脚本中使用 git-stash --keep-index 而不会发生冲突

我正在尝试自动化 git-repository 上的特定操作(typedoc生成 TypeScript 文档的命令);但我需要该命令才能“查看”实际进行的更改。任何未暂存的更改都需要从命令中“隐藏”。

我当前的方法是尝试自动化 git-stash,以便它隐藏任何未跟踪的文件和未暂存的更改,然后运行命令,然后弹出该存储。该脚本的核心内容是:

stash_working=_no

git update-index --refresh
if git diff-index HEAD -- .':!Documentation/'; then
   stash_working=_yes
fi

if [ "$stash_working" != "_no" ]; then
   git stash push --include-untracked --keep-index -m "AUTOMATED STASH" \
       -- .':!Documentation/'
fi

typedoc
typedoc_exit_status=$?

if [ "$stash_working" != "_no" ]; then
   git stash pop
fi

exit $typedoc_exit_status
Run Code Online (Sandbox Code Playgroud)

不幸的是,这并没有按预期工作:特别是,尽管“未包含”在存储中,但存储的更改......在弹出时会干扰自身(?)。例如,如果分阶段内容(我确实想要在文档中看到)包含此行,

 * This is some fake documentation for testing purposes.
Run Code Online (Sandbox Code Playgroud)

...但是有一个未分阶段的更改将其更新为

 * THIS IS A CHANGE TO THAT …
Run Code Online (Sandbox Code Playgroud)

git shell scripting git-stash

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

关于C++中构造函数(和多重继承)的一些基本问题?

(如果之前有人询问过,我很抱歉;搜索功能似乎已被破坏:结果区域完全是空白的,即使它表示在Chrome,FireFox和Safari中有几页结果...

所以,我只是在学习C++ ......而我正在阅读的这本书在解释构造函数方面做得非常糟糕,我能够掌握它们.到目前为止,我已经非常了解其他所有内容,但我无法弄清楚构造函数的语法实际上是如何工作的.

例如,我被告知以下将导致构造函数调用指定的超类的构造函数:

class something : something_else {
  something(int foo, double bar) : something_else(int foo) {}
};
Run Code Online (Sandbox Code Playgroud)

另一方面,在描述如何初始化const成员时,本书后面使用了相同的语法:

class something : something_else {
private:  const int constant_member;
public:   something(int foo, double bar) : constant_member(42) {}
};
Run Code Online (Sandbox Code Playgroud)

那么......呃......那到底是怎么回事?语法rv signature(param) : something_else(what);究竟意味着什么?我无法弄清楚它something_else(what)是什么,与周围的代码有关.它似乎具有多重含义; 我确信必须有一些它所对应的语言的基本元素,我只是无法弄清楚是什么.

编辑:另外,我应该提一下,what前面的例子中有时候是一个参数列表(所以something_else(what)看起来像一个函数签名)是非常令人困惑的......有时候是一个常量值表达式(所以something_else(what)看起来像一个函数调用).

现在,继续:多继承和构造函数怎么样?如何指定调用父类的构造函数以及默认调用哪些构造函数?我知道,默认情况下,以下两个是相同的......但是我不确定涉及多重继承时的等价物是什么:

class something : something_else {
//something(int foo, double bar) : something_else() {}
  something(int foo, double bar) {} …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance constructor class multiple-inheritance

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

打字稿/节点:错误 [ERR_MODULE_NOT_FOUND]:找不到模块

我看到了我在标题中指定的错误,这里现有的解决方案似乎都没有帮助,所以我希望有人能让我了解正在发生的事情。

我在我的项目中使用 Typescript 和 Node。TS 编译一切都很好......我最终得到了以下预期:

projectHome/
   dist/
      schema/
          schema.js
      index.js
Run Code Online (Sandbox Code Playgroud)

当我node ./dist/index.js从项目主页运行时,出现错误无法找到从“/home/me/projectHome/dist/index.js”导入的模块“/home/me/projectHome/dist/schema/schema”

index.js 中的相对导入如下:

    import express from 'express';
    import { ApolloServer } from 'apollo-server-express';
    import typeDefs from './schema/schema';
Run Code Online (Sandbox Code Playgroud)

我的 schema.ts 文件包含:

    import { ApolloServer, gql } from 'apollo-server-express'
    import { GraphQLScalarType } from 'graphql'

        const typeDefs = gql`
           ...(edited for brevity/sanity)
        `

    export default typeDefs
Run Code Online (Sandbox Code Playgroud)

和我的打字稿文件(在这一点上应该很重要,因为它是失败的节点??)看起来像这样:

    {
        "compilerOptions": {
        "target": "ES6",                         
        "module": "ES6",                         
        "lib": ["ES6"],                          
        "allowJs": true,                         
        "sourceMap": true,                       
        "outDir": "./dist",                      
        "rootDir": "./src",                      
        "strict": true,                          
        "skipLibCheck": true, …
Run Code Online (Sandbox Code Playgroud)

javascript node.js typescript

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

多通C预处理器

C预处理器多次应用于同一代码库(具体来说,按顺序执行两次?)是否可以远程理解?

例如,具有如下声明:

##define DECLARE(FILE) # define DECLARATIONS \
                       #   include FILE \
                       # undef DECLARATIONS
Run Code Online (Sandbox Code Playgroud)

你以前见过这样的成语吗?如果是这样,代码库是什么?你能链接吗?编译一个像这样的项目的项目会遵循什么样的模式?可以按原样使CPP执行此操作,还是需要编写元预处理器以在处理双哈希声明时"隐藏"单哈希声明,依此类推?

project-management c-preprocessor

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

如何在VimScript中使用缓冲区本地自动命令?

我正在尝试编写一个VimL片段,以允许用户使用热键切换不需要的尾随空格的高亮显示.(这是我有史以来的第一个Vim脚本,除了将东西复制粘贴到我的内容之外.vimrc,所以...一粒盐:P)

我希望'我们目前正在追踪空白吗?' 是缓冲特定的状态; 但我在弄清楚自动命令如何与缓冲区交互时遇到了很多麻烦.

例如,这是augroup缓冲区本地 autocmd s的第一次尝试:

augroup  ExtraWhitespace
   au!
   au BufEnter    <buffer=abuf> match ExtraWhitespace /\s\+$/
   au InsertEnter <buffer=abuf> match ExtraWhitespace /\s\+\%#\@<!$/
   au InsertLeave <buffer=abuf> match ExtraWhiteSpace /\s\+$/
augroup END
Run Code Online (Sandbox Code Playgroud)

...不幸的是,这在调用时会立即绊倒:

Error detected while processing function ToggleExtraWhitespace: 
line   19:
E680: <buffer=0>: invalid buffer number 
line   20:
E680: <buffer=0>: invalid buffer number 
line   21:
E680: <buffer=0>: invalid buffer number 
No matching autocommands
Run Code Online (Sandbox Code Playgroud)

我不明白,为什么<abuf>0,当bufnr('%')1 …

vim autocmd vim-syntax-highlighting

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

如何在C中实现一个可变长度的'string'-y

我已经google了很多,但我找不到有关如何在高级语言中实现可变长度字符串的信息.我正在创建自己的语言,并且不确定从字符串开始的位置.

我有一个描述string类型的结构,然后是一个create分配这样一个'字符串' 的函数:

/* A safer `strcpy()`, using `strncpy()` and `sizeof()` */
#define STRCPY(TO, FROM) \
  strncpy(TO, FROM, sizeof(TO)); TO[sizeof(TO) - 1] = '\0'

struct string {
  // …
  char  native[1024];
};

string String__create(char native[]) {
  string this = malloc(sizeof(struct string));

  // …
  STRCPY(this->native, native);

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

但是,这只允许1kb长的字符串.这有点愚蠢,在大多数情况下会浪费大量内存.

鉴于我必须以某种方式声明要使用的内存...我如何实现一个能够(有效地)存储(有效)无限数量的字符的字符串?

c memory string memory-management variable-length

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

我如何反向映射(散列)`pthread_t`s来构造指针?

thread在解释器实现中有一个数据类型,用于我正在编写的编程语言.由于各种原因,需要获取当前 thread(这本身就是一个指针:a struct thread*)是一个相当常见的操作.

但是,请pthread_self(3)给我一个pthread_t,这是一个不透明的类型; 在某些系统上,它似乎是一个unsigned long,但我听说我不能依赖于这种情况.我怀疑哈希表是这个唯一映射的正确实现(pthread_tID到struct thread指针); 但是,我不知道怎么pthread_t可靠.

我希望得到任何有更多经验的人的建议,pthread(3)或者,实际上,你必须"哈希"一个不透明的数据类型的任何情况.

c hashtable pthreads data-structures

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