Учебник - Обмен изменениями с другим репозиторием

(Это 5-я из 9-ти частей Учебника. Предыдущая - Создание первого изменения, Следующая - Обмен изменениями с другими пользователями)

В статье Создание первого изменения мы создали набор изменений в хранилище my-hello-new-output. Теперь мы хотим опубликовать наши замечательные изменения где-нибудь ещё.

Следуя хорошему стилю работы с Mercurial, сначала клонируем оригинальное хранилище.

$ cd ..
$ hg clone my-hello my-hello-share
updating working directory
2 files updated, 0 files merged, 0 files removed, 0 files unresolved

Мы можем использовать команду tip, чтобы найти tip в каждом хранилище. (Tip - это самый последний набор изменений). Мы укажем опцию -q ("be quiet" - "быть молчаливым" ), чтобы Mercurial не выводил полное описание tip'а.

$ cd my-hello-share
$ hg -q tip
1:82e55d328c8c
$ cd ../my-hello-new-output
$ hg -q tip
2:86794f718fb1

Как можно увидеть, id tip'ов отличаются. Возвращаемся в my-hello-share и копируем в него changeset'ы. Чтобы сделать это, мы используем команду pull, которая подтягивает (pull) все наборы изменений из другого хранилища в текущий. Заметьте, именно из другого хранилища.

$ cd ../my-hello-share
$ hg pull ../my-hello-new-output
pulling from ../my-hello-new-output
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
(run 'hg update' to get a working copy)

В отличие от других команд Mercurial'а, pull очень болтлива. В данном случае подтягивание было успешным.

Последняя строка вывода важна. По умолчанию Mercurial не обновляет рабочий каталог после pull'а. Это означает, что хотя теперь в хранилище содержится подтянутый набор изменений, содержимое файла hello.c в рабочем каталоге осталось таким же, как и до pull'а.

Мы можем обновить этот файл (как и все другие) командой update (либо используя сокращение up):

$ hg up
1 files updated, 0 files merged, 0 files removed, 0 files unresolved

На этой стадии мы можем посмотреть и убедиться в том, что у репозитариев my-hello-share и my-hello-new-output одинаковый контент и истории ревизий.

Совместное использование изменений с другими разработчиками рассмотрено в главе "Обмен изменениями с другими пользователями".


CategoryTutorial CategoryRussian

RussianTutorialShareChange (last edited 2012-08-13 20:27:28 by 94-153-226-116-kv)