小编lim*_*imp的帖子

git别名在错误的目录中运行

简介:通过git别名运行的命令的当前工作目录是错误的.

证明这一点的最简单方法是使用这样的git别名:

[alias]
    pwd = !pwd
Run Code Online (Sandbox Code Playgroud)

所以git pwd只是运行bash命令pwd.人们会认为这两个命令的输出是相同的.现在,让我们试试几次:

$ cd ~
$ pwd && git pwd
/home/limpchimp
/home/limpchimp    # great!
$ mkdir foo && cd foo && git init
Initialized empty Git repository in /home/limpchimp/foo/.git/
$ pwd && git pwd
/home/limpchimp/foo
/home/limpchimp/foo  # great!
$ mkdir bar && cd bar
$ pwd && git pwd
/home/limpchimp/foo/bar
/home/limpchimp/foo   # uuhhhhhhhh...?
Run Code Online (Sandbox Code Playgroud)

似乎git正在将当前工作目录更改为具有.git文件夹(如果存在)的第一个父目录.这是非常有问题的; 它搞砸了我编写的某些脚本,这些脚本意味着在特定的目录中运行,并且使我无法将某些东西用作git别名.有没有解决的办法?我该如何解决?

git directory

12
推荐指数
2
解决办法
1053
查看次数

nose.collector在哪里寻找测试?

我想用nose.collector一个测试套件setuptools的,如所描述这里.我的包的来源存在mypackage/src,我有测试mypackage/tests.我有一个setup.py看起来像这样:

import setuptools

setuptools.setup(
    name='mypackage',
    version='1.2.3',
    package_dir={'': 'src'},
    packages=setuptools.find_packages('src'),
    tests_require=['nose'],
    test_suite='nose.collector',
    provides=setuptools.find_packages('src'),
)
Run Code Online (Sandbox Code Playgroud)

但是,当我运行时python setup.py test,它不会测试任何东西:

$ python setup.py test
running test
running egg_info
writing src/mypackage.egg-info/PKG-INFO
writing top-level names to src/mypackage.egg-info/top_level.txt
writing dependency_links to src/mypackage.egg-info/dependency_links.txt
reading manifest file 'src/mypackage.egg-info/SOURCES.txt'
writing manifest file 'src/mypackage.egg-info/SOURCES.txt'
running build_ext

----------------------------------------------------------------------
Ran 0 tests in 0.002s

OK
Run Code Online (Sandbox Code Playgroud)

我怎么知道nose在哪里寻找测试?到目前为止,我一直在做nosetests -d tests,这很好.但我想改变使用,setuptools以便我可以遵循python setup.py test惯例.

python setuptools nose

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

无法使用多个遥控器进行结账

我在我当地的git repo中设置了两个遥控器.一个是我正在贡献的开源项目的回购,另一个是我的回购分支.

看来我只能查看我从origin遥控器下拉的东西.从遥控器抓取分支的常规方法包括

$ git fetch <remote> <branch>
$ git checkout <branch>
Run Code Online (Sandbox Code Playgroud)

但这在我目前的情况下似乎不起作用.

$ git fetch my-remote my-branch
remote: Counting objects: 2297, done.
remote: Compressing objects: 100% (1951/1951), done.
remote: Total 2297 (delta 1044), reused 0 (delta 0), pack-reused 50
Receiving objects: 100% (2297/2297), 2.10 MiB | 1.59 MiB/s, done.
Resolving deltas: 100% (1045/1045), done.
From https://github.com/me/my-repo
 * branch            my-branch -> FETCH_HEAD
 * [new branch]      my-branch -> origin/my-branch
$ git checkout my-branch
error: pathspec 'my-branch' did not match …
Run Code Online (Sandbox Code Playgroud)

git

9
推荐指数
3
解决办法
2765
查看次数

C++中的互斥量必须与某个对象或变量绑定吗?

我对线程有点新,我试图理解它在C++ 11中是如何工作的.我班上的教授给了我们这个示例代码来演示互斥锁的用法:

#include <list> 
#include <mutex> 
#include <algorithm>

std::list<int> some_list; // A data structure accessed by multiple threads
std::mutex some_mutex; // This lock will prevent concurrent access to the shared data structure

void
add_to_list(int new_value) {
    std::lock_guard<std::mutex> guard(some_mutex); // Since I am going to access the shared data struct, acquire the lock
    some_list.push_back(new_value); // Now it is safe to use some_list. RAII automatically releases lock at end of function }
}

bool
list_contains(int value_to_find) {
    std::lock_guard<std::mutex> guard(some_mutex); // Must get …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading mutex

7
推荐指数
2
解决办法
1864
查看次数

测试关联数组是否包含D中的键

这个问题非常明显; 我希望能够在实际插入之前检查关联数组是否包含我将要(可能)插入的值.没有搜索,有没有一种简单的方法可以做到这一点dict.keys?也许是这样的if (dict.contains(val)) ...

associative-array d

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

Coffeescript意外的令牌是ILLEGAL,但不应该有任何违法行为

这真是令人生气.我在我的代码中找不到任何我正在做任何非法行为的地方,但出于某种原因,调用会fork炸毁我的程序.这是代码.相关部分位于我打电话的svgToPNG fork.

{fork} = require 'child_process'
{Coral} = require 'coral'

svgToPNG = (svg, reply, log) ->
  log "converting SVG to a PNG"
  # set up a child process to call convert svg: png:-
  convert = fork '/usr/bin/env', ['convert', 'svg:', 'png:-']
  log "Spawned child process running convert, pid " + convert.pid
  # set up behavior when an error occurs
  convert.stderr.on "data", ->
    log "Error occurred while executing convert"
    reply "error"
  # set up behavior for when we successfully …
Run Code Online (Sandbox Code Playgroud)

javascript coffeescript

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

在Coq中将一个函数应用于相等的两边?

我在Coq试图证明这一点

Theorem evenb_n__oddb_Sn : ?n : nat,
  evenb n = negb (evenb (S n)).
Run Code Online (Sandbox Code Playgroud)

我正在使用感应n.基本案例是微不足道的,所以我处于归纳案例,我的目标看起来像:

k : nat
IHk : evenb k = negb (evenb (S k))
============================
 evenb (S k) = negb (evenb (S (S k)))
Run Code Online (Sandbox Code Playgroud)

当然,现在有一个断言的函数的基本公理

a = b -> f a = f b
Run Code Online (Sandbox Code Playgroud)

适用于所有功能f : A -> B.所以我可以申请negb双方,这会给我

k : nat
IHk : evenb k = negb (evenb (S k))
============================
 negb (evenb (S k)) = negb (negb (evenb (S …
Run Code Online (Sandbox Code Playgroud)

coq

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

在emacs中按Ctrl-Z会冻结所有内容

我正在使用Linux,并在emacs和sublime文本之间进行切换.在崇高文本中,Ctrl-Z是撤消.这意味着有时我有时会在emacs中按Ctrl-Z; 不幸的是,当我这样做时,整个过程只是冻结了.我假设这与暂停进程的典型Ctrl-Z行为有关; 但是我在GUI中运行Emacs,为什么它会有这种行为有点超出我的意义.有没有办法改变这个?

emacs

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

VirtualBox表示VM空间不足,但事实并非如此

我正在通过流浪汉运行Virtualbox.我正在运行一个通过yum安装一堆软件包的供应商.配置器一直停止,当我查看VirtualBox时,我看到VM已暂停.在日志中,有一个条目:

00:12:08.042247 Changing the VM state from 'SUSPENDING' to 'SUSPENDED'.
00:12:08.042839 Console: VM runtime error: fatal=false, errorID=BLKCACHE_IOERR message="The I/O cache encountered an error while updating data in medium "ahci-0-0" (rc=VERR_DISK_FULL). Make sure there is enough free space on the disk and that the disk is working properly. Operation can be resumed afterwards"
Run Code Online (Sandbox Code Playgroud)

但是,VM上有足够的可用磁盘空间df.我设置了一个watch -n 0.5 df -h(df -h每半秒运行一次),并且从来没有空间不足:

Every 0.5s: df -h                                                                    
Tue Nov 10 23:52:30 2015

Filesystem               Size  Used Avail Use% Mounted on …
Run Code Online (Sandbox Code Playgroud)

virtualbox

7
推荐指数
0
解决办法
1500
查看次数

JavaScript子阵列没有复制?

我见过的所有创建子阵列的文档都谈到了slice,它创建了一个数组的副本.我想知道是否可以在不复制的情况下创建数组切片,因此修改切片会修改原始数组.例如:

var foo = [1, 2, 3, 4, 5];
var bar = foo.subarray(2, 4);
console.log(bar); // [2, 3, 4]
bar[0] = 'hello, world';
console.log(bar); // ['hello, world', 3, 4]
console.log(foo); // [1, 'hello, world', 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

javascript arrays

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