2009-12-06 3 views
5

나는 현재 Subversion을 사용하여 내 구성 변경 내용을 추적하고 내 '.emacs.d'디렉터리를 다른 플랫폼과 동기화합니다.개인용 Emacs 구성을 추적하고 배포하는 데 가장 적합한 버전 제어 시스템 또는 플랫폼은 무엇입니까?

Ido, Muse 또는 Org-mode와 같은 많은 패키지는 Debian 또는 Carbon Emacs (osx)와 함께 제공되는 Emacs 배포판의 일부입니다. 하지만 내가 사용하고있는 다른 패키지는 그 배포판의 일부가 아니므로 수동으로 내 개인 Subversion 저장소에 추가해야합니다.

장점은 내가 지금 일하고 싶은 곳에서 내 '.emacs.d'구성을 모두 확인할 수 있다는 것입니다. 단점은 업데이트 패키지를 추적해야하고 새 업데이트를 사용할 수있을 때마다 수동으로 자체 리포지토리를 업데이트해야한다는 것입니다.

내 구성과 패키지를 '커뮤니티'의 구성 및 패키지와 통합하는 더 좋은 방법이 있습니까? 그 이유 때문에 많은 사람들이 github.com을 사용하고 있다는 것을 깨달았습니다.

서브 버전 대신 git을 사용하여 Emacs 구성을 커뮤니티와 동기화하고 공유하는 것이 좋습니까? 그리고 그게 내 교환 서버를 사용하는 대신 github.com으로 전환하여 다른 Emacs 사용자와 교환 및 배포에 더 가깝게해야한다는 것을 의미합니까?

답변

5

"배포"문제를 해결할 때마다 Distributed 버전 제어 시스템 (DVCS)을 고려해보십시오.

예를 들어, Git을 사용하면 자신의 프로젝트에서 서브 모듈로 참조되는 기본 emacs 구성 프로젝트 내에서 패키지를 submodules으로 구성 할 수 있습니다.

그런 식으로, 당신은 단지 중앙 구성 프로젝트가 참조하는 최신 패키지를 받고 확인하기 위해 한 번에 한 동안

git submodule update --recursive 

해야합니다.
참고 : 해당 하위 모듈의 재귀 초기화는 약간 까다 롭습니다.이 SO question for more을 참조하십시오.

+1

Seconded - 모든 dvcs (hg 또는 git)가 더 좋을 것입니다. – Almad

+1

Thirded. ;-) 나는 수년 전에 svn에있는 .emacs.d를 시작했다. 그것은 끔찍한 것이 아니지만 git으로 전환하는 것이 훨씬 더 적합했습니다. – bendin

+0

기본 대답에 동의하고 DVCS를 사용하면 btw git이 좋은 선택입니다. 그러나 서브 모듈이 약간 복잡하기 때문에 전통적인 (아마도 레거시) VCS에서 DVCS로 이동하는 사람을 위해 서브 모듈을 추천하지는 않습니다. 강력하면서도 복잡합니다. 귀하의 상황에 대한 대안적인 접근과 좀 더 정교한 토론을 위해 아래 나의 대답을보십시오. – pajato0

2

필자는 이맥스 파일을 저장하기 위해 개인적으로 git를 사용한다. http://github.com/technomancy/emacs-starter-kit을 보는 것이 좋습니다. 그것은 많은 사람들이 사용하는 emacs 파일의 큰 세트입니다 (600 명 이상이 repo를 보았습니다). 그들은 꽤 정기적으로 업데이 트되므로 새로운 버전을 얻을. 또한 이멕스 패키지 관리를 쉽게하기 위해 만들어진 elpa을 살펴볼 가치가 있습니다.

다른 패키지 변경 사항을 함께 유지하려는 경우도 있습니다. 기본적으로 내가 VonC에 동의, 그는 내 관심에 자식 서브 모듈을 가져온 것을 감사하면서

How to I combine two separate Git repositories?

2

나는 VCS에 익숙하지만 DVCS까지 브리징 사람에게 권하고 싶지 않다. 이제 철저히 git를 사용하는 것을 즐긴다. 그리고 그것을 진심으로 권유한다. 그러나 그것은 그 다리를 건너기 위해 많은 작업을 필요로한다.

커뮤니티 소프트웨어를 해결하는 또 다른 방법으로, 이맥스가 제공하지 않는 패키지에 대해서도 ELPA을 진심으로 추천합니다. 업데이트는 수동으로 적용해야하지만 최소한 ELPA는 업데이트가 있음을 알리는 메커니즘을 제공합니다. 또한 ELPA가 주최하지 않은 커뮤니티 제공 패키지를 추가하기위한 좋은 발판을 제공합니다.

마지막으로, 플랫폼을 기반으로 패키지를 구성하는 방법에 대해 자세히 설명하고자 할 수 있습니다. 내가 임베디드 이맥스 (Linux) (Fedora와 Ubuntu)에서 작동하는 모든 주요 플랫폼에서 단일 소스 제어 지원 (* .el) 파일 세트를 공유 할 수 있도록 임베디드 이맥스 lisp에서 모든 플랫폼과 컴퓨터마다 사용자 정의를 유지하려고한다. , Mac OS X 및 Windows (기본 및 cygwin).

+0

공정한 포인트. +1 – VonC

관련 문제