2

今天我决定在存储库中管理和推送我的点文件。动机是在多台 mac 机器和 ubuntu 服务器机器上重用相同的点文件。

我目前已经想到了这个结构:

├── bash
│   ├── aliases
│   ├── config
│   └── env
├── bash_profile
├── bashrc
├── hgrc
├── src
│   └── link.py
└── vimrc

link.py运行并为该存储库克隆到的任何位置创建bashrc符号bash_profile链接~

问题:1

我的bashrc内容:

source bash/env
source bash/config
source bash/aliases

问题是因为路径是相对的,找不到文件。我不想使用绝对路径,因为这样我就失去了在我喜欢的任何地方克隆存储库的灵活性。

同样,我的bash_profile内容:

source ./bashrc                       # same problem!
source ~/.bashrc                 

因为我以前符号链接~/.bashrcdotfiles/bashrc我可以到达它。但这对我来说仍然像是一个肮脏的黑客。

问题:2

我应该在哪里保留对特定机器定制的路径。当然,我不想将它们放在存储库中,也不想弄乱其他所有系统。目前我的自定义路径在~/.profile. 我正在考虑从中获取它bash/envif检查它是否存在然后使用它,否则不使用它。

希望听到更好的方法

4

3 回答 3

2

我正在使用符号链接,而不是将其视为“肮脏的黑客”。以前我只是简单地复制所有文件(并且仍然对某些文件(不是 bash)执行此操作),并且因为所有文件都是针对 $HOME/.something 我使用“$HOME”(不是“~”,因为“~”没有用双引号扩展,但 $HOME 是的。)

于 2011-07-12T18:15:47.253 回答
0

由于我在这里没有得到太多回应,所以我求助于将我src/link.py的符号链接扩展为~/.bashdotfiles/bash以便我可以bash/*使用~/.bash/*

我还在我的 link.py 中添加了一个忽略列表来忽略.hg,bin目录,以便在执行os.listdir().

我仍在为我的第二个问题寻找解决方案,尽管我在某处读到我可以为每台具有特定定制需求的机器的点文件使用单独的分支,这似乎是目前最接近的干净解决方案。

于 2011-07-13T05:26:41.140 回答
0

回复太晚了,但我仍然建议您检查DFM(点文件管理器)。DFM以非常干净的方式解决了您遇到的问题:

于 2015-01-02T16:01:35.537 回答