Какая система контроля версий или платформа лучше всего подходят для отслеживания и распространения личных конфигураций Emacs? - PullRequest
5 голосов
/ 06 декабря 2009

В настоящее время я использую Subversion для отслеживания изменений в конфигурации Emacs и для синхронизации моего каталога '.emacs.d' с различными платформами.

Многие пакеты, такие как Ido, Muse или Org-mode, являются частью дистрибутивов Emacs, которые поставляются с Debian или Carbon Emacs (osx). Но другие пакеты, которые я также использую, не являются частью этих дистрибутивов, поэтому я должен добавить их в свой личный репозиторий subversion вручную.

Преимущество заключается в том, что теперь я могу проверить всю свою конфигурацию .emacs.d, где бы я ни хотел работать. Недостатком является то, что я должен отслеживать эти пакеты на наличие обновлений, и каждый раз, когда доступно новое обновление, мне приходится обновлять свой собственный репозиторий вручную.

Есть ли лучший способ интеграции моих собственных конфигураций и пакетов с настройками сообщества? Я понял, что по этой причине многие люди используют github.com.

Должен ли я лучше использовать git вместо subversion для синхронизации и обмена своими конфигурациями Emacs с сообществом? И значит ли это, что мне лучше перейти на github.com, а не использовать свой собственный сервер Subversion, чтобы стать ближе к другим пользователям Emacs относительно обмена и распространения?

Ответы [ 3 ]

5 голосов
/ 06 декабря 2009

Каждый раз, когда вам приходится сталкиваться с какой-то проблемой «распространения», вам лучше иметь дело с Распределенной системой контроля версий (DVCS).

Например, с помощью Git вы можете организовать ваши пакеты как подмодули в основном проекте конфигурации emacs, который сам по себе упоминается как подмодуль в вашем собственном проекте.

Таким образом, вам нужно только

 git submodule update --recursive

время от времени, чтобы быть уверенным в получении последних пакетов, на которые ссылается ваш проект центральной конфигурации.
Примечание: рекурсивная инициализация этих подмодулей немного сложна: см. Этот вопрос SO, чтобы узнать больше .

2 голосов
/ 08 декабря 2009

Хотя я в основном согласен с VonC и благодарен, что он привлек мое внимание к подмодулям git, я бы не стал рекомендовать их кому-то, знакомому с VCS, но подключившимся к DVCS. Теперь я полностью наслаждаюсь использованием git и от всей души рекомендую его, но для того, чтобы пересечь этот мост, потребовалось много работы.

Что касается альтернативных методов работы с программным обеспечением сообщества, я также от всей души рекомендую ELPA для пакетов, не поставляемых Emacs. Обновления должны применяться вручную, но, по крайней мере, ELPA предоставляет механизм, позволяющий вам знать, что обновления существуют. Кроме того, он обеспечивает хорошую основу для добавления пакетов, предоставленных сообществом, которые не размещаются в ELPA.

Наконец, вы, возможно, захотите рассказать о том, как вы организовываете свои пакеты на основе платформы. Я стараюсь сохранить все настройки для моей платформы (и для каждой машины) во встроенном lisp Emacs так, чтобы я разделял один набор файлов с поддержкой исходного кода (* .el) на всех основных платформах, с которыми я работаю: Linux (Fedora и Ubuntu) , Mac OS X и Windows (родной и Cygwin).

2 голосов
/ 07 декабря 2009

Я лично использую (и рекомендую) git для хранения файлов emacs. Было бы неплохо взглянуть на http://github.com/technomancy/emacs-starter-kit. Это большой набор файлов emacs, используемых многими людьми (более 600 человек смотрят репо). Поскольку они обновляются довольно регулярно, вы получаете новые версии. Также стоит взглянуть на elpa , который призван упростить управление пакетами в emacs.

Возможно, вы также захотите узнать, как я собираюсь сохранить другие изменения пакета вместе.

Как объединить два отдельных репозитория Git?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...