Tutorial - Обмен изменениями с другими пользователями
(Это 6-я из 9-ти частейTutorial. Предыдущая - обмен изменениями с другим репозиторием, следующая обработка множества независимых изменений файла)
В главе "обмен изменениями с другим репозиторием" мы разобрались с извлечением changeset'ов из одного репозитория в другой. Существуют и другие способы обмена изменениями между людьми и репозиториями, и один из наиболее распространённых - это email.
После фиксации (commit) изменений, мы можем экспортировать их в файл и отправить как вложение почтой кому-угодно.
Для экспорта мы используем команду export. При экспорте мы должны указать Mercurial'у тег, номер ревизии или changeset ID того, что мы хотим экспортировать. В нашем случае мы хотим экспортировать tip. При условии, что мы все еще находимся в каталоге my-hello-share, делаем следующее.
$ hg export tip # HG changeset patch # User mpm@selenic.com # Date 1209943246 -7200 # Node ID 86794f718fb1ea9e633f7c052757663b8ce90e30 # Parent 82e55d328c8ca4ee16520036c0aaace03a5beb65 Express great joy at existence of Mercurial diff -r 82e55d328c8c -r 86794f718fb1 hello.c --- a/hello.c Fri Aug 26 01:21:28 2005 -0700 +++ b/hello.c Mon May 05 01:20:46 2008 +0200 @@ -12,5 +12,6 @@ int main(int argc, char **argv) { printf("hello, world!\n"); + printf("sure am glad I'm using Mercurial!\n"); return 0; }
По умолчанию export выводит patch на экран, так что обычно мы перенаправляем вывод в файл (или применяем опцию -o). Этот файл - patch file в формате unified diff, с дополнительной информацией о том, как Mercurial'у импортировать его содержимое.
Получив наш email и сохранив вложение, получатель командой import импортирует изменения в свой репозиторий.
Что бы разобраться со слиянием изменений из различных репозиториев, перейдём к "Обработка множества независимых изменений файла".