English 中文(简体)
Which version control system or platform is the best one for tracking and distributing personal Emacs configurations?
原标题:

I currently use subversion to track my configuration changes of Emacs and to sync my .emacs.d directory to different platforms.

A lot of packages like Ido, Muse or Org-mode are part of Emacs distributions which come with Debian or Carbon Emacs (osx). But other packages which I m also using are not part of those distributions so I have to add them to my personal subversion repository manually.

The advantage is that I m now able to check out my whole .emacs.d configuration wherever I want to work. The disadvantage is that I have to track those packages for updates and every time a new update is available I have to update my own repository manually.

Is there is a better way to integrate my own configurations and packages with those of the community ? I realized that github.com is used by many people for that reason.

Should I better use git instead of subversion to sync and share my Emacs configurations with that of the community? And does that mean that I should better switch to github.com instead of using my own subversion server to get closer to other Emacs users regarding exchange and distribution?

最佳回答

Every time you have to deal with some "distribution" issue, you could be better off considering a Distributed Version Control System (DVCS).

With Git, for instance, you could organize your packages as submodules within a main emacs configuration project, itself referenced as a submodule within your own project.

That way, you only need to

 git submodule update --recursive

once in a while to be sure getting the latest packages referenced by your central configuration project.
Note: the recursive initialization of those submodules is a bit tricky: see this SO question for more.

问题回答

I personally use (and recommend) git for storing emacs files. It would be a good idea to look at http://github.com/technomancy/emacs-starter-kit. It is a a large set of emacs files used by many people (over 600 people watching the repo). As they are updated pretty regularly you get new versions. It is also worth looking at elpa which is intended to make package management of emacs stuff easy.

You may also want to see how I intend to keep other package changes together.

How to I combine two separate Git repositories?

While I basically agree with VonC, and am grateful that he brought git submodules to my attention I would not recommend them to someone familiar with VCS but bridging over to DVCS. I now thoroughly enjoy using git and recommend it heartily but it has taken a lot of work to cross that bridge.

As to alternative methods to address community software, I also heartily recommend ELPA for packages not supplied by Emacs. Updates have to be applied manually but at least ELPA provides a mechanism to let you know updates exist. And it also provides a good scaffold for adding community provided packages not hosted by ELPA.

Lastly, you might want to elaborate on how you organize your packages based on platform. I try to keep all my platform (and per-machine) customization in embedded Emacs lisp such that I share a single set of source controlled support (*.el) files on all the major platforms I work with: Linux (Fedora and Ubuntu), Mac OS X and Windows (native and cygwin).





相关问题
Best practices for Subversion and Visual Studio projects

I ve recently started working on various C# projects in Visual Studio as part of a plan for a large scale system that will be used to replace our current system that s built from a cobbling-together ...

Changing username in SVN+SSH URI on the fly in working copy

I am using SVN+SSH to check out a working copy of repository from an SVN server on which all developers are members of a developer group and have full read/write permissions on the repository ...

ASP.NET MVC: How should it work with subversion?

So, I have an asp.net mvc app that is being worked on by multiple developers in differing capacities. This is our first time working on a mvc app and my first time working with .NET. Our app does not ...

How to search for file in subversion server?

Is there a way to search for a file in a subversion repository? Something similar to Unix find command, with which I can find the location of a file in a repository. I know there is svn list, but ...

热门标签