每个VCS如何处理重命名?
我发现很多矛盾的信息表明git跟踪LOC(代码行)而不是文件,因此重命名对它没有任何意义.
我试图在一个简单的shell脚本中比较两个字符串.我使用的是/bin/sh
代替/bin/bash
,经过无数小时的调试后,事实证明sh(实际上是破折号)无法处理这段代码:
if [ "$var" == "string" ]
then
do something
fi
Run Code Online (Sandbox Code Playgroud)
什么是比较字符串使用的可移植方式/bin/sh
?我知道我总是可以通过使用!=来做相反的事情,但我想知道一种更干净,更便携的方式.
当我尝试将更改提交到本地repo时,我收到以下消息:
致命:无法编写new_index文件
我是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) 编辑:我原来的例子有一个愚蠢的错误.修好之后,我仍然会得到奇怪的结果.
在我天真的尝试以"蛮力"的方式测量我的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) 考虑一下这段代码:
int a=0x10000001;
char b;
b=(char)a;
printf("%#x \n",b);
Run Code Online (Sandbox Code Playgroud)
在我的电脑上,它打印0x01,我并不感到惊讶.它如何在BIG ENDIAN机器上运行?我希望它会打印出来0x10000001
.我对吗?
我浏览了书籍和网页,但我没有找到关于铸造操作如何真正处理内存的明确信息.
在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
但是这个功能似乎不再可用了.
通过更新所有已安装的软件包之后M-x list-packages
,U
,x
,我怎么能轻易做任何或所有以下内容:
我正在寻找有关处理打开memcached连接的有效解决方案的建议,给出FAQ引用:
记住,没有什么能阻止你多次意外连接.如果将memcached客户端对象实例化为您尝试存储的对象的一部分,那么当一个请求中的1,000个对象创建1,000个并行连接时,请不要感到惊讶.在跳到列表之前仔细查看这样的错误.
另请参阅:初始化Memcached客户端和管理连接对象.
我考虑在缓存程序集中使用单例来提供memcached客户端,但我确信必须有更好的方法,因为锁会引入(不需要的?)开销.
我很清楚客户端的使用模式,我不清楚的是如何在可扩展性和性能方面有效地使用客户端.其他人如何处理使用memcached客户端?
这里有50美元的赏金给你.
如何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-command
或async-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) 在我的中.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)
是否有更可靠的方法来测试命令是否支持选项?
emacs ×3
bash ×2
c ×2
git ×2
.net ×1
android ×1
assembly ×1
casting ×1
cpu-speed ×1
dash-shell ×1
eclipse ×1
elisp ×1
emacs24 ×1
endianness ×1
enyim ×1
evil-mode ×1
java ×1
memcached ×1
mercurial ×1
performance ×1
rename ×1
scalability ×1
shell ×1
svn ×1
tortoisegit ×1
visual-c++ ×1
x86 ×1