$ time __git_ps1
((v2.6.33.4))
real 0m1.467s
user 0m0.864s
sys 0m0.564s
Run Code Online (Sandbox Code Playgroud)
这让我的提示无法使用; 但另一方面,轻松放弃这个功能太有用了.知道为什么它运行如此缓慢以及我能做些什么呢?
设置细节:
$ uname -a
Linux martin-laptop 2.6.35-22-generic #35-Ubuntu SMP Sat Oct 16 20:36:48 UTC 2010 i686 GNU/Linux
$ git --version
git version 1.7.1
$ du -sh .
876M .
Run Code Online (Sandbox Code Playgroud)
我怀疑我的机器有什么东西,因为在我的同事的盒子里,在我克隆的内核树中,同样的命令立即返回
$ time __git_ps1
((v2.6.33.4))
real 0m0.039s
user 0m0.008s
sys 0m0.016s
Run Code Online (Sandbox Code Playgroud)
添加hdparm输出:
矿
$ sudo hdparm -tT /dev/sda4
/dev/sda4:
Timing cached reads: 1542 MB in 2.00 seconds = 772.35 MB/sec
Timing buffered disk reads: 110 MB in 3.02 seconds = 36.42 MB/sec
Run Code Online (Sandbox Code Playgroud)
合作伙伴
$ sudo hdparm -Tt /dev/sda6
/dev/sda6:
Timing cached reads: 1850 MB in 2.00 seconds = 926.03 MB/sec
Timing buffered disk reads: 210 MB in 3.02 seconds = 69.53 MB/sec
Run Code Online (Sandbox Code Playgroud)
其他差异:同事正在运行git 1.6.5,我正在运行1.7.1
Mar*_*llo 21
结果证明是两件事的组合:
我在用
export GIT_PS1_SHOWDIRTYSTATE=true
export GIT_PS1_SHOWUNTRACKEDFILES=true
Run Code Online (Sandbox Code Playgroud)
默认情况下.事实证明,它在内核大小的树上无法使用.删除这些选项会从__git_ps1中删除一些不错的功能,但至少现在会立即返回.(有用的课程 - 在其他任何事情之前从新创建的用户帐户中尝试一些东西.)
另外,我的工作机器上的硬盘速度很慢,所以这本身并不是一个git问题; 这是我第一次在我注意到的时候真正地闯入了自己.
要知道这需要花费多少时间:
bash -x
然后
__git_ps1
我正在抽出时间
++ git ls-files --others --exclude-standard
Run Code Online (Sandbox Code Playgroud)
它列出了我的gitted home drectory的所有文件.即使在快速的ssd上,也花了很长时间.
要解决此问题,只需将其添加到您的 .bashrc 中
export GIT_PS1_SHOWDIRTYSTATE=
export GIT_PS1_SHOWUNTRACKEDFILES=
Run Code Online (Sandbox Code Playgroud)
将禁用某些文件查找。