早些年,第一次使用 USB 3.0 硬盘的时候,我就发现了它对 Wi-Fi 网络信号的影响。为了解决这个问题,当时投资几百块,换了 NetGear 的路由器,并启用其 5GHz 的 Wi-Fi 信号。最近,在结合 rMBP 使用无线鼠标时,我发现鼠标经常出现跳帧的现象。因为距离上一次踩坑的时间已经过去六七年的时间,一时完全没想到可能是 USB 3.0 带来的问题。在经历了一系列折腾之后,才突然想起这个坑。特此记录。
程序员的自我修养(⑨):Linux 系统里的进程状态
今天有同事问到 top
命令里的 running
, sleep
, stop
, zombie
等进程状态分别是什么意思。于是借这个机会写一下 Linux 系统里的进程状态。
向 non-bare 仓库的检出分支推送提交
假设有本地 Git 仓库 A,而后在本地自 A 克隆仓库 B(即,在 B 的视角,A 是远程仓库,只不过物理位置在本机)。若从 B 向 A 推送提交,则 Git 可能会报错。这是因为,A 默认是 non-bare 的仓库,粗略理解即是工作区不为空;此时,从 B 向 A 推送的话,A 仓库中的内容可能和 A 工作区内容不一致。
跳过冗余 revisions 以加速 git svn fetch
众所周知,Git 相较 SVN 的一个优势在于它会将版本库的所有历史信息下载到本地,但它的背面则是:如果版本库很大,则 git clone
会消耗很长时间。使用 git svn
桥接 SVN 仓库时,如果 SVN 仓库很大(例如有超过 100,000 次修订),则 git svn fetch
会花费很长时间(可能超过 24 hours)。
如果你觉得,git svn fetch
这么多修订只是一次性的工作,因此勉强能够忍受。那我只能说,能有这种想法,还是「太年轻」。
解决 Git 2.24.1 与 OpenSSL 1.1.1b 的冲突
最近因为工作需要处理一些 SVN 仓库,但我还是偏好 Git。早些年就知道 Git 提供了 git svn
可以桥接 SVN。但今天发现公司开发机上的 Git 没有把 git svn
编译进来,也就是会报错:
1 | $ git svn |
又因为开发机上我没有 root
权限,所以不得已只能自己从源码编译安装 Git。