Changeset 962709f in at-w96k for content/digarden/20210410205030-emacs_vc.org
- Timestamp:
- Apr 2, 2023, 10:58:22 PM (22 months ago)
- Branches:
- master
- Children:
- 972a737
- Parents:
- d1d01c6
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
content/digarden/20210410205030-emacs_vc.org
rd1d01c6 r962709f 4 4 #+title: emacs-vc 5 5 * Emacs VC 6 Встроенный модуль для работы с системами контроля версий в [[id:981dfcf0-ce4a-4215-bbce-3a745d7d0b4d][Emacs]].6 Встроенный модуль для работы с системами контроля версий в Emacs. 7 7 8 8 Встроенная поддержка есть для следующих модулей … … 47 47 * История модуля VC 48 48 ** Основан на [[https://www.gnu.org/software/rcs/][GNU Rcs]] 49 50 49 Rcs -- древняя централизированная система контроля версий от проекта 50 GNU. Проект живой, но неизвестно кем используется. 51 51 ** Подробнее об истории 52 52 [[https://alexott.net/en/writings/emacs-vcs/EmacsVC.html][История модуля VC (AlexOtt)]] 53 53 54 54 55 55 * Как работать с ним 56 56 ** Начало 57 58 59 60 61 62 63 57 Инициализация проекта предполагается через cli утилиту вашей системы контроля 58 версий. Вроде: 59 #+begin_src bash 60 mkdir ~/projects/emacs-vc 61 cd ~/projects/emacs-vc 62 git init . 63 #+end_src 64 64 65 #+RESULTS: 66 : Инициализирован пустой репозиторий Git в /home/w96k/projects/emacs-vc/.git/ 67 68 Общий вид доступен по команде vc-dir 65 Общий вид доступен по команде vc-dir 69 66 70 71 72 67 #+begin_src emacs-lisp :results none 68 (vc-dir "~/projects/emacs-vc") 69 #+end_src 73 70 74 71 ** Альтернативы командам git 75 72 *** git add 76 77 73 В VC так называется "регистрация" файла. Можно выполнить напрямую через 74 команду ~M-x vc-register~, но в VC воркфлоу несколько иной. 78 75 79 80 81 82 83 84 76 Создадим файл и добавим 77 #+begin_src emacs-lisp :results none 78 (find-file "~/projects/emacs-vc/file1.el") 79 (insert "(+ 2 (* 2 2))") 80 (save-some-buffers) 81 #+end_src 85 82 86 83 *** git reset 87 88 84 Откат изменений происходит при помощи ~M-x vc-revert~ или сочетания клавиш ~C-x 85 v u~. 89 86 90 87 Для разрешения конфликтов ~M-x vc-resolve-conflicts~. 91 88 92 89 *** git branch 93 94 90 Для создания ветки ~M-x vc-create-tag~ или бинд ~C-x v s 91 Для смены ветки ~M-x vc-retrieve-tag~ или бинд ~C-x v r~ 95 92 96 93 *** git merge 97 94 Слияние веток происходит при помощи ~vc-merge~ 98 95 99 96 ** Воркфлоу в VC 100 97 В любой непонятной ситуации используешь ~M-x vc-next-action~ или бинд ~C-x v v~ 101 98 102 103 104 105 99 - Если файл не зарегистрирован, то он регистрируется, но изменения не подтверждаются; 100 - Если файл уже был добавлен, но не подтвержден, то это изменение подтверждается; 101 - Если файл был изменен, а "главный" файл нет, то ваши изменения подтверждаются после ввода описания изменений; 102 - Если файл в репозитории был изменен, то пользователю выдадут запрос на слияние изменений в ваш рабочий файл. 106 103 107 104 ** Ссылки
Note:
See TracChangeset
for help on using the changeset viewer.