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 импортирует изменения в свой репозиторий.
Что бы разобраться со слиянием изменений из различных репозиториев, перейдём к "Обработка множества независимых изменений файла".