Совместная работа с документами в git
git -- распределенная система контроля версий Основное руководство
git.altlinux.org -- платформа для совместной разработки в git.
В связи с тем, что для совместной разработки Sisyphus организована совместная разработка в git, работа над документ Кучи также теперь будет перемещаться на эту платформу.
В настоящий момент на git.altlinux.org импортирован полный архив документов Кучи с историей изменений, каждому модулю Кучи соответствует отдельный git-репозиторий. Подробности см. ниже. Репозитории с документами Кучи называются так же, как и пакеты с этими документами в Sisyphus: docs-*.
Сценарии работы с документами Кучи в git несколько отличаются для тех, у кого есть учетная запись на git.altlinux.org и для тех, у кого ее нет.
Регистрация на git.alt
На сегодняшний день учетную запись на git.alt автоматически получили все разработчики Sisyphus, у которых есть опубликованные в течение прошлого года пакеты в Sisyphus. Для получения учетной записи обращайтесь на <joindocs AT СПАМУ НЕТ altlinux DOT ru>.
Настройка
Настроить ssh. В ~/.ssh/config нужно добавить:
Host git.alt HostName git.altlinux.org Port 222 User git_ID
Где ID -- ваш идентификатор при доступе к ресурсам ALT, тот же, что и в incoming. Доступ осуществляется по тому же ssh-ключу, что и к прочим ресурсам ALT.
Настроить свое имя/e-mail, которыми будут подписываться ваши изменения в репозиториях:
Создать файл $HOME/.gitconfig следующего содержания:
[user] name = Your Name email = ID@altlinux.org
Поиск репозитория на git.alt
Просмотреть список всех репозиториев с документами:
$ ssh git.alt find-package "docs-*" /people/azol/packages/docs-distributed_sisyphus_development-azol.git /people/kirill/packages/docs-issue-textbooks.git . . . /people/kirill/packages/docs-distributed_sisyphus_development-azol.git . . .
Обратите внимание, один и тот же репозиторий может присутствовать у нескольких разработчиков --
Внесение изменений в существующий документ
Рассмотрим случай, когда нужно внести изменения в документ, для которого уже существует репозиторий на git.alt.
Для этого нужно перенести к себе интересующий нас репозиторий.
Допустим, нам нужно работать с репозиторием docs-migrationbook в версии kirill. Ваш ID на git.alt -- abc.
$ ssh git.alt find-package docs-migrationbook /people/kirill/packages/docs-migrationbook
Прежде всего склонируем интересующий нас репозиторий в свой собственный каталог на git.alt:
$ ssh git.alt git-clone /people/kirill/packages/docs-migrationbook packages/docs-migrationbook
Теперь следует склонировать этот репозиторий уже из своего каталога на git.alt:
$ mkdir src; cd src $ git-clone git.alt:packages/docs-migrationbook $ cd docs-migrationbook
Обратите внимание на отсутствие / после git.alt: таким образом можно ссылаться на свои каталоги на git.alt по "относительному пути", т. е. ваш относительный путь packages/docs-migrationbook эквивалентен абсолютному /people/abc/packages/docs-migrationbook, где abc -- ваш ID.
Создание нового репозитория с документом
Если нужно создать свой собственный репозиторий для совместной работы и опубликовать его на git.alt:
Создаём локальный репозиторий:
$ mkdir docs-newdocument; cd docs-newdocument $ git-init-db defaulting to local storage area
Готовим почву на git.alt: создаём там пустой репозиторий, в который будем помещать сделанные нами локально изменения:
$ ssh git.alt git-init-db packages/docs-newdocument
Настраиваем свой локальный репозиторий на публикацию изменений на git.alt:
$ cat > .git/remotes/origin <<EOF URL: git.alt:packages/docs-newdocument.git Push: refs/heads/master:refs/heads/master EOF
Работа с git-репозиторием
Главная задача git в самом простом случае -- хранить историю изменений в файлах и при необходимости получать файл в любом из сохранённых состояний или сумму различий между двумя заданными состояниями (diff).
В простейшем случае история в git-репозитории представляет собой последовательную цепочку сохранённых состояний (всего репозитория, т. е. всех файлов сразу) -- комиттов.
Простейший сценарий по сохранению истории изменений в git-репозитории:
$ oowriter file.odt <создаём документ> $ git-add file.odt $ git-commit $ oowriter file.odt <редактируем> $ git-add file.odt <указываем, что нужно закомиттить изменения> $ git-commit
При работе с git ваши друзья:
git-status информация о текущем состоянии репозитория и подсказки, что делать дальше
git-diff информация об изменениях в файлах, полезна, если используются текстовые форматы
git-commit --amend полезный способ заменять последний коммит, если вдруг замечено, что в нем ошибка. помогает не плодить лишних комиттов в истории
- tutorial.html и другая документация из пакета git-doc
Cуть совместной работы в git: каждый работает над своей версией документа и ее публикует в своем репозитории на git.alt. После этого разработчики обмениваются патчами между репозиториями. Подробнее об этом см. в руководстве по git, раздел "Working with others".
Публикация своих изменений
Сделанные Вами изменения нужно опубликовать на git.alt (чтобы другие могли их оттуда потом забрать).
Опубликовать свои изменения:
$ git push origin
Дальнейшая совместная работа
TODO