#format wiki #language ru == Совместная работа с документами в git == * git -- распределенная система контроля версий [http://www.kernel.org/pub/software/scm/git/docs/core-tutorial.html Основное руководство] * [http:wiki.sisyphus.ru/devel/git git.altlinux.org] -- платформа для совместной разработки в git. В связи с тем, что для совместной разработки Sisyphus организована совместная разработка в git, работа над документ Кучи также теперь будет перемещаться на эту платформу. В настоящий момент на git.altlinux.org импортирован полный архив документов Кучи с историей изменений, каждому модулю Кучи соответствует отдельный git-репозиторий. Подробности см. ниже. Репозитории с документами Кучи называются так же, как и [http://sisyphus.ru/team/docs пакеты с этими документами в Sisyphus]: docs-*. Сценарии работы с документами Кучи в git несколько отличаются для тех, у кого есть учетная запись на git.altlinux.org и для тех, у кого ее нет. === Регистрация на git.alt === На сегодняшний день учетную запись на git.alt автоматически получили все разработчики Sisyphus, у которых есть опубликованные в течение прошлого года пакеты в Sisyphus. Для получения учетной записи обращайтесь на [[MailTo(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 < $ 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. После этого разработчики обмениваются патчами между репозиториями. Подробнее об этом см. в [http://www.kernel.org/pub/software/scm/git/docs/core-tutorial.html руководстве по git], раздел "Working with others". ==== Публикация своих изменений ==== Сделанные Вами изменения нужно опубликовать на git.alt (чтобы другие могли их оттуда потом забрать). Опубликовать свои изменения: {{{ $ git push origin }}} ==== Дальнейшая совместная работа ==== TODO