我的.bashrc文件是通过svn管理的,
做法是在
repo/config/.bashrc为原始文件
ln repo/config/.bashrc ~/.bashrc
但是这样的话,如果在某个机器上svn update会更新repo/config/.bashrc
但是~/.bashrc没有更新,究其原因:
是在svn update 的时候,先会把repo/config/.bashrc和update消息merge,生成一个临时文件,
然后rename 临时文件 为 repo/config/.bashrc,这样原来的ln信息就丢了.
这是通过strace观察到的:
rename("config/bash/tempfile.tmp", "config/bash/.bashrc") = 0
我现在的做法是:
ln -s repo/config/.bashrc ~/.bashrc
解决了问题。