小编Jus*_*yes的帖子

处理重命名:svn vs. git vs. mercurial

每个VCS如何处理重命名?

我发现很多矛盾的信息表明git跟踪LOC(代码行)而不是文件,因此重命名对它没有任何意义.

svn git version-control mercurial rename

46
推荐指数
4
解决办法
9721
查看次数

bash,破折号和字符串比较

我试图在一个简单的shell脚本中比较两个字符串.我使用的是/bin/sh代替/bin/bash,经过无数小时的调试后,事实证明sh(实际上是破折号)无法处理这段代码:

if [ "$var" == "string" ]
then
    do something
fi
Run Code Online (Sandbox Code Playgroud)

什么是比较字符串使用的可移植方式/bin/sh?我知道我总是可以通过使用!=来做相反的事情,但我想知道一种更干净,更便携的方式.

bash string-comparison dash-shell

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

GIT:提交时"致命:无法写入new_index文件"

当我尝试将更改提交到本地repo时,我收到以下消息:
致命:无法编写new_index文件

git tortoisegit

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

使用Eclipse for androidSDK,当我去运行时,我得到警告:数据分区已经在使用中.变化不会持续!

我是Java,Android和eclipse的新手.在做初始的Hello,Android教程时,我去运行并获得以下内容:

WARNING: Data partition already in use. Changes will not persist!
WARNING: Cache partition already in use. Changes will not persist!
Run Code Online (Sandbox Code Playgroud)

java eclipse android

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

通过计算装配说明来测量CPU速度

编辑:我原来的例子有一个愚蠢的错误.修好之后,我仍然会得到奇怪的结果.


在我天真的尝试以"蛮力"的方式测量我的CPU速度时,我制作了以下程序:

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

#pragma comment(linker, "/entry:mainCRTStartup")
#pragma comment(linker, "/Subsystem:Console")

int mainCRTStartup()
{
    char buf[20];
    clock_t start, elapsed;
    unsigned long count = 0;
    start = clock();
    __asm
    {
        mov EAX, 0;
    _loop:
        add EAX, 3; // accounts for itself and next 2 instructions
        cmp EAX, 0xFFFFFFFF - 0x400;
        jb _loop;
        mov count, EAX;
    }
    elapsed = clock() - start;
    _gcvt(count * (long long)CLOCKS_PER_SEC / (elapsed * 1000000000.0), 3, buf);
    puts(buf);
}
Run Code Online (Sandbox Code Playgroud)

哪个反汇编成:

mainCRTStartup:
  push   ebp …
Run Code Online (Sandbox Code Playgroud)

c x86 assembly cpu-speed visual-c++

10
推荐指数
2
解决办法
2720
查看次数

铸造类型是否依赖于大/小端?

考虑一下这段代码:

int a=0x10000001;
char b;

b=(char)a;
printf("%#x \n",b);
Run Code Online (Sandbox Code Playgroud)

在我的电脑上,它打印0x01,我并不感到惊讶.它如何在BIG ENDIAN机器上运行?我希望它会打印出来0x10000001.我对吗?

我浏览了书籍和网页,但我没有找到关于铸造操作如何真正处理内存的明确信息.

c casting endianness

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

emacs evil-mode中ex命令的关键映射

在emacs evil-mode中,如何绑定一个键序列,以便它预先填充evil-mode ex命令行并定位光标?在vim中,我可以这样做:

nnoremap g/r :%s//g<left><left>
Run Code Online (Sandbox Code Playgroud)

在emacs中,我试过这个(和几个变种):

(define-key evil-normal-state-map "g/" nil)
(define-key evil-normal-state-map (kbd "g/r")
    (lambda () (interactive) (kbd ":%s/")))
Run Code Online (Sandbox Code Playgroud)

它没有任何效果,我在尝试键映射后看不到任何消息.

看起来emacs曾经有一个有用的功能evil-ex-read-command,它将输入发送到evil-mode命令行:

https://github.com/magnars/.emacs.d/blob/master/site-lisp/evil/evil-ex.el#L554

但是这个功能似乎不再可用了.

emacs evil-mode

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

在Mx list-packages之后显示changelog

通过更新所有已安装的软件包之后M-x list-packages,U,x,我怎么能轻易做任何或所有以下内容:

  • 查看刚刚更新的软件包列表(及其存储库URL)
  • 查看自以前安装的版本以来每个更新的包的更改日志
  • 看到当前包elisp代码与前一个代码的差异

emacs emacs24

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

防止与memcached的连接过多(Enyim Client)

我正在寻找有关处理打开memcached连接的有效解决方案的建议,给出FAQ引用:

记住,没有什么能阻止你多次意外连接.如果将memcached客户端对象实例化为您尝试存储的对象的一部分,那么当一个请求中的1,000个对象创建1,000个并行连接时,请不要感到惊讶.在跳到列表之前仔细查看这样的错误.

另请参阅:初始化Memcached客户端管理连接对象.

我考虑在缓存程序集中使用单例来提供memcached客户端,但我确信必须有更好的方法,因为锁会引入(不需要的?)开销.

我很清楚客户端的使用模式,我不清楚的是如何在可扩展性和性能方面有效地使用客户端.其他人如何处理使用memcached客户端?

这里有50美元的赏金给你.

.net performance memcached scalability enyim

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

从emacs中的特定目录运行shell命令

如何git gui从特定目录执行shell命令(例如)?我更喜欢跨平台的方法,它不依赖shell操作符,&&或者;因为我需要在Windows和unix上运行它.(例如,调用cd /path/to/dir && git gui在Windows上&&无效,因为无效.)

我试过了:

(async-shell-command (concat "cd \""
  (replace-regexp-in-string 
    "/" "\\\\" (file-name-directory (buffer-file-name))) "\" ; git gui"))
Run Code Online (Sandbox Code Playgroud)

这失败了,因为无论出于何种原因,shell认为; git gui是路径的一部分,它报告:The system cannot find the path specified.

所以,我宁愿不处理shell怪癖,我希望有一个elisp函数设置目录为shell-commandasync-shell-command.我试过了:

 (shell-process-pushd (file-name-directory (buffer-file-name)))
 (shell-command "git gui")
 (shell-process-popd nil)
Run Code Online (Sandbox Code Playgroud)

这没有任何效果:git gui总是在我的主目录中打开.(另外,shell-process-pushd/popd没有记录.)

这也行不通:

(start-process "gitgui" nil "git" "gui")
Run Code Online (Sandbox Code Playgroud)

这也不是:

(let '(bufdir (file-name-directory (buffer-file-name))) 
       (with-temp-buffer
         (print bufdir)
         (cd bufdir)
         (shell-command "git gui")))
Run Code Online (Sandbox Code Playgroud)

emacs elisp

6
推荐指数
2
解决办法
4969
查看次数

测试是否支持命令选项

在我的中.bashrc,grep --color 如果--color支持该选项,我想将grep替换为别名.但是--color像msysgit这样的旧系统不支持:

$ grep --color
grep: unrecognized option '--color'
$ grep --version
grep (GNU grep) 2.4.2
Run Code Online (Sandbox Code Playgroud)

在.bashrc中,如何确定是否支持选项?我可以测试一个硬编码的版本号,但是对于版本> 2.5会破坏:

if [[ `grep --version` == *2.5* ]] ; then
    alias grep='grep --color=auto'
fi
Run Code Online (Sandbox Code Playgroud)

是否有更可靠的方法来测试命令是否支持选项?

bash shell

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