Table of Contents

Emacs VC

Встроенный модуль для работы с системами контроля версий в Emacs.

Встроенная поддержка есть для следующих модулей

vc-handled-backends

Доступны интерфейсы к известным системам контроля версий:

  • Git
  • Mercurial
  • Subversion
  • Darcs

И менее известным:

  • rcs
  • CVS
  • MetaCVS
  • GNU Arch
  • sccs
  • SourceSafe
  • ClearCase

Часть из интерфейсов доступна при помощи установки стороннего расширения.

Документация или

info emacs vc

История модуля VC

Основан на GNU Rcs

Rcs – древняя централизированная система контроля версий от проекта GNU. Проект живой, но неизвестно кем используется.

Подробнее об истории

Как работать с ним

Начало

Инициализация проекта предполагается через cli утилиту вашей системы контроля версий. Вроде:

mkdir ~/projects/emacs-vc
cd ~/projects/emacs-vc
git init .

Общий вид доступен по команде vc-dir

(vc-dir "~/projects/emacs-vc")

Альтернативы командам git

git add

В VC так называется "регистрация" файла. Можно выполнить напрямую через команду M-x vc-register, но в VC воркфлоу несколько иной.

Создадим файл и добавим

(find-file "~/projects/emacs-vc/file1.el")
(insert "(+ 2 (* 2 2))")
(save-some-buffers)

git reset

Откат изменений происходит при помощи M-x vc-revert или сочетания клавиш C-x v u.

Для разрешения конфликтов M-x vc-resolve-conflicts.

git branch

Для создания ветки M-x vc-create-tag или бинд C-x v s Для смены ветки ~M-x vc-retrieve-tag или бинд C-x v r

git merge

Слияние веток происходит при помощи vc-merge

Воркфлоу в VC

В любой непонятной ситуации используешь M-x vc-next-action или бинд C-x v v

  • Если файл не зарегистрирован, то он регистрируется, но изменения не подтверждаются;
  • Если файл уже был добавлен, но не подтвержден, то это изменение подтверждается;
  • Если файл был изменен, а "главный" файл нет, то ваши изменения подтверждаются после ввода описания изменений;
  • Если файл в репозитории был изменен, то пользователю выдадут запрос на слияние изменений в ваш рабочий файл.

Ссылки

w96k Ⓐ 2019-2022

2022-10-16 Sun 19:30