summaryrefslogtreecommitdiff
path: root/content/digarden/pages/20210410205030-emacs_vc.org
diff options
context:
space:
mode:
Diffstat (limited to 'content/digarden/pages/20210410205030-emacs_vc.org')
-rw-r--r--content/digarden/pages/20210410205030-emacs_vc.org104
1 files changed, 0 insertions, 104 deletions
diff --git a/content/digarden/pages/20210410205030-emacs_vc.org b/content/digarden/pages/20210410205030-emacs_vc.org
deleted file mode 100644
index 81d319f..0000000
--- a/content/digarden/pages/20210410205030-emacs_vc.org
+++ /dev/null
@@ -1,104 +0,0 @@
-:PROPERTIES:
-:ID: b0c8ec58-f9a1-4ea0-827f-70f447840fc0
-:END:
-#+title: emacs-vc
-* Emacs VC
-Встроенный модуль для работы с системами контроля версий в Emacs.
-
-Встроенная поддержка есть для следующих модулей
-#+begin_src emacs-lisp :results list
- vc-handled-backends
-#+end_src
-
-#+RESULTS:
-- RCS
-- CVS
-- SVN
-- SCCS
-- SRC
-- Bzr
-- Git
-- Hg
-- Mtn
-
-Доступны интерфейсы к известным системам контроля версий:
-- Git
-- Mercurial
-- Subversion
-- Darcs
-
-И менее известным:
-- rcs
-- CVS
-- MetaCVS
-- GNU Arch
-- sccs
-- SourceSafe
-- ClearCase
-
-Часть из интерфейсов доступна при помощи установки стороннего расширения.
-
-[[https://www.gnu.org/software/emacs/manual/html_node/emacs/Version-Control.html][Документация]]
-или
-#+begin_src bash :results none
- info emacs vc
-#+end_src
-
-* История модуля VC
-** Основан на [[https://www.gnu.org/software/rcs/][GNU Rcs]]
-Rcs -- древняя централизированная система контроля версий от проекта
-GNU. Проект живой, но неизвестно кем используется.
-** Подробнее об истории
-[[https://alexott.net/en/writings/emacs-vcs/EmacsVC.html][История модуля VC (AlexOtt)]]
-
-* Как работать с ним
-** Начало
-Инициализация проекта предполагается через cli утилиту вашей системы контроля
-версий. Вроде:
-#+begin_src bash
- mkdir ~/projects/emacs-vc
- cd ~/projects/emacs-vc
- git init .
-#+end_src
-
-Общий вид доступен по команде vc-dir
-
-#+begin_src emacs-lisp :results none
- (vc-dir "~/projects/emacs-vc")
-#+end_src
-
-** Альтернативы командам git
-*** git add
-В VC так называется "регистрация" файла. Можно выполнить напрямую через
-команду ~M-x vc-register~, но в VC воркфлоу несколько иной.
-
-Создадим файл и добавим
-#+begin_src emacs-lisp :results none
- (find-file "~/projects/emacs-vc/file1.el")
- (insert "(+ 2 (* 2 2))")
- (save-some-buffers)
-#+end_src
-
-*** 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~
-
-- Если файл не зарегистрирован, то он регистрируется, но изменения не подтверждаются;
-- Если файл уже был добавлен, но не подтвержден, то это изменение подтверждается;
-- Если файл был изменен, а "главный" файл нет, то ваши изменения подтверждаются после ввода описания изменений;
-- Если файл в репозитории был изменен, то пользователю выдадут запрос на слияние изменений в ваш рабочий файл.
-
-** Ссылки
-- [[https://snarfed.org/emacs-vc-git-tweaks][Emacs VC Tricks]]