2011-11-02 101 views
0

我有多臺linux機器。我想分享我的.vimrc.hgrc。但是,不同的機器之間有一點區別。有沒有聰明的方法?通過源代碼管理系統在多臺機器之間共享設置

我正在使用mercurial。

mkdir settings 
ln ~/.vimrc settings/vimrc 
ln ~/.hgrc settings/hgrc 

然後使用mercurial來保持設置。 不同機器上的hgrc文件有一點區別。 我需要總是分支合併。 我不知道有更好的方法嗎?

+0

['rsync'](http://ss64.com/bash/rsync.html)可能適用於您想要做的事情。 – chown

回答

2

我通常所做的是在所有系統上都有一個.bashrc等文件,然後我發佈一個名爲.bashrc.local的本地版本或類似的東西,它不會保存在機器的源代碼控制中具體設置。

在.bashrc中:

. ~/.bashrc.local 

在.vimrc裏

:source ~/.vimrc.local 


如果你想獲得看上你可以存儲在源代碼控制本地設置文件通過使用您的主機名作爲本地文件名的鑑別器。所以,而不是.vimrc.local你可以做.vimrc.machine1.local

+1

對於hgrc,包含指令是'%include file'。請參閱[hgrc手冊](http://www.selenic.com/mercurial/hgrc.5.html#syntax)。 –

+0

不錯,謝謝@LaurensHolst –

0

還有另一種(矯枉過正?)技術,可以補充其他答案。

我使用puppet這是一個自動配置機器的工具。我編寫我的木偶配置(存儲在版本控制中),然後將其部署到目標機器上。它提供了適用於任何文件的「模板」功能。

例如,你寫一個.vimrc.erb文件這樣的:

ENV_VAR=<%= varvalue %> 

與根據目標機器上的 「varvalue」。使用正確的木偶聲明(「for machine xyz,將.vimrc文件放在home中,使用varvalue = xyz生成的模板.vimrc.erb」),然後將配置部署到目標機器。

它使用強大的「嵌入式ruby」模板機制,所以你甚至可以寫一些ruby代碼來生成值。您可能想直接使用它,而無需使用木偶:erb

+0

謝謝,但鏈接'erb'鏈接不可行。 –

+0

@Daniel darn,同時刪除頁面!我換了一個新的。 Upvote如果你有興趣;) – Offirmo