2009-12-06 66 views
5

我目前使用Subversion來跟蹤Emacs的配置更改,並將我的'.emacs.d'目錄同步到不同的平臺。哪個版本控制系統或平臺最適合用於跟蹤和分發個人Emacs配置?

很多像Ido,Muse或Org-mode這樣的軟件包都是Debian或Carbon Emacs(osx)附帶的Emacs發行版的一部分。但是我也使用的其他軟件包不是這些發行版的一部分,所以我必須手動將它們添加到我的個人版本庫。

好處是,我現在能夠檢查我的整個'.emacs.d'配置,無論我想工作。缺點是我必須跟蹤這些軟件包的更新,每次有新的更新可用時,我都必須手動更新自己的存儲庫。

是否有更好的方法將我自己的配置和軟件包與「社區」的配置和軟件包集成?我意識到,github.com被許多人用於這個原因。

我應該更好地使用git而不是subversion來同步和共享我的Emacs配置與社區的配置嗎?這是否意味着我應該更好地切換到github.com,而不是使用我自己的Subversion服務器來更接近其他Emacs用戶的交換和分發?

回答

5

每當您需要處理一些「分發」問題時,最好考慮分發版本版本控制系統(DVCS)。例如,在Git中,您可以在主emacs配置項目中將您的軟件包組織爲submodules,本身在您自己的項目中引用爲子模塊。

這樣的話,你只需要

git submodule update --recursive 

過一段時間,以確保讓您的中央配置項目中引用了最新的軟件包。
注意:這些子模塊的遞歸初始化有點棘手:請參閱此SO question for more

+1

借調 - 任何dvcs(hg或git)會更好。 – Almad 2009-12-06 12:32:51

+1

提示。 ;-)幾年前,我開始使用svn中的.emacs.d。這並不可怕,但切換到git更適合。 – bendin 2009-12-07 19:42:22

+0

我同意基本的答案,使用DVCS和btw git是一個不錯的選擇。但是我不推薦將子模塊用於從傳統(可能是傳統)VCS遷移到DVCS的人員,因爲子模塊有點複雜。強大,但複雜。請參閱下面的答案,瞭解針對您的情況的另一種方法並進行更詳細的討論。 – pajato0 2009-12-08 08:48:21

2

我個人使用(並推薦)用於存儲emacs文件的git。這是一個好主意,請看http://github.com/technomancy/emacs-starter-kit。它是許多人使用的一大組emacs文件(超過600人在觀看回購)。由於他們定期更新,你會得到新的版本。這也是值得看看elpa這是爲了使包管理emacs的東西很容易。

您可能還想看看我打算如何將其他軟件包更改保存在一起。

How to I combine two separate Git repositories?

2

雖然我基本上同意VonC,我還感謝他帶來的git子模塊了我的注意,我不會建議他們到別人熟悉VCS但橋到DVCS。我現在非常喜歡使用git並且很好地推薦它,但是它已經花了很多工作來穿越這座橋。

至於解決社區軟件的替代方法,我也衷心推薦ELPA Emacs不提供的包。更新必須手動應用,但至少ELPA提供了一種機制,讓您知道更新存在。它還提供了一個很好的腳手架,用於添加不由ELPA託管的社區提供的軟件包。

最後,您可能想詳細說明如何基於平臺組織您的軟件包。我試圖在嵌入式Emacs lisp中保留所有平臺(和每臺計算機)的定製,以便在所有使用的主要平臺上共享一組源代碼控制的支持(* .el)文件:Linux(Fedora和Ubuntu) ,Mac OS X和Windows(native和cygwin)。

+0

公平點。 +1 – VonC 2009-12-08 09:25:51

相關問題