diff options
Diffstat (limited to 'content/digarden/pages/20210410205030-emacs_vc.org')
-rw-r--r-- | content/digarden/pages/20210410205030-emacs_vc.org | 104 |
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]] |