Differences between revisions 7 and 11 (spanning 4 versions)
Revision 7 as of 2009-07-05 07:53:54
Size: 9127
Editor: lit-uriy
Comment:
Revision 11 as of 2012-08-13 19:58:04
Size: 8884
Editor: 94-153-226-116-kv
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
== Учебник - Просмотр истории изменений ==
Line 3: Line 4:
''(Это третья 3-я из 9 частей [[RussianTutorial|Руководства]]. Предыдущая - [[RussianTutorialClone|Клонирование репозитория]], Следующая - [[RussianTutorialFirstChange|создание первых изменений]])'' ''(Это третья 3-я из 9 частей [[RussianTutorial|Учебника]]. Предыдущая - [[RussianTutorialClone|Клонирование репозитория]], Следующая - [[RussianTutorialFirstChange|Создание первых изменений]])''
Line 5: Line 6:
На данный момент мы прошли RussianTutorialClone - клонировали репозиторий. Наша локальная копия - {{{my-hello}}}.  На данный момент мы прошли RussianTutorialClone - клонировали репозиторий. Наша локальная копия находится в {{{my-hello}}}.
Line 7: Line 8:
Давайте взглянем на историю этого [[RussianRepository|репозитория]]. Для этого мы используем команду {{{log}}}. Она выводит резюме о каждом происшествии, который произошёл в хранилище, начиная с последнего. Давайте взглянем на историю этого [[RussianRepository|репозитория]]. Для этого мы используем команду {{{log}}}. Она выводит резюме о каждом событии, которое произошло в хранилище, начиная с последнего.
Line 22: Line 23:
 * Каждый параграф описывает отдельный [[ChangeSet|changeset]] (набор изменений). Changeset - это модификация одного или нескольких файлов, сгруппированных логически.
  * В нашем случае, мы видим историю репозитория, состоящую из двух changeset'ов.
 * {{{changeset}}} идентификатор changeset'а.
  * Первое число перед двоеточием - это [[RevisionNumber|номер ревизии]]; это локальный метод идентификации changeset'ов. Он действует только внутри этого репозитория.
  * Шестнадцатиричная строка после двоеточия - это [[ChangeSetID|changeset ID]]; это идентификатор changeset'а и он неизменен во всех репозиториях, содержащих этот changeset. Если Вы обсуждаете с кем-нибудь changeset'ы, используйте ChangeSetID, а не номер ревизии.
 * {{{tag}}} - это [[Tag|тег]], произвольное символическое имя changeset'а.
  * Вы можете привязать к changeset'у один или несколько тегов. На самом деле, теги привязывают к очень немногим changeset'ам, так что строка {{{tag}}} присутствует редко.
  * Специальный тег {{{tip}}} всегда обозначает [[Tip|tip]] - новейший changeset в репозитории. Если Вы создадите ещё один changeset (и мы это вскоре сделаем), то тег {{{tip}}} будет удалён из этого changeset'а и добавлен к новому changeset'у.
 * {{{user}}} показывает пользователя, создавшего changeset. Эта строка имеет свободный формат; обычно она содержит email, а иногда также и имя пользователя.
 * {{{date}}} показывает, когда changeset был создан. Время выводится в локальной зоне создателя changeset'а.
 * {{{summary}}} - это первая строка описания changeset'а. Описание вводится при создании changeset'а как напоминание о его назначении (см. ChangeSetComments).
 * {{{parent}}} идентификаторы родительских changeset'ов ([[Parent|parent]]) в случае, если их больше чем один (когда вы объединили ([[Merge|merge]]) изменения из нескольких репозиториев).
  * В большинстве случаев родительский changeset только один, и он предшествует рассматриваемому. Именно этот случай мы имеем в вышестоящем примере.
Line 23: Line 37:
 * Каждый параграф описывает отдельный [[ChangeSet|changeset]]. Changeset это модификация одного или нескольких файлов, сгруппированных логически.
   * В нашем случае, мы видим историю репозитория состоящую из двух changeset'ов.
 * {{{changeset}}} идентификатор changeset'а.
   * Первое число перед двоеточием это [[RevisionNumber|номер ревизии]]; это локальный метод идентификации changeset'ов. Он действует только внутри этого репозитория.
   * Шестнадцатиричная строка после двоеточия это [[ChangeSetID|changeset ID]]; это идентификатор changeset'а, и он неизменен во всех репозиториях содержащих этот changeset. Если Вы обсуждаете с кем-нибудь changeset'ы, используйте ChangeSetID, а не номер ревизии.
 * {{{tag}}} это [[Tag|тег]], произвольное символическое имя changeset'а.
   * Вы можете привязать к changeset'у один или несколько тегов. На самом деле, теги привязывают к очень не многим changeset'ам, так что строка {{{tag}}} присутствует редко.
   * Специальный тег {{{tip}}} всегда обозначает [[Tip|tip]] - новейший changeset в репозитории. Если Вы создатите ещё один changeset (и мы это вскоре сделаем), тег {{{tip}}} будет удалён из этого changeset и добавлен к новому changeset'у.
 * {{{user}}} показывает пользователя создавшего changeset. Эта строка имеет свободный формат; обычно она содержит email, и иногда также и имя пользователя.
 * {{{date}}} показывает когда changeset был создан. Время выводится в локальной зоне создателя changeset'а.
 * {{{summary}}} это первая строка описания changeset'а. Описание вводится при создании changeset'а как напоминание для понимания его назначения (см. [[ChangeSetComments]]).
 * {{{parent}}} идентификаторы родительских changeset'ов ([[Parent|parent]]), в случае если их больше чем один, когда вы объединили ([[Merge|merge]]) изменения из нескольких репозиториев.
   * В большинстве случаев родительский changeset только один, он и предшествует рассматриваемому. Именно этот случай мы имеем в вышестоящем примере.

Мы можем получить более детализированный лог запросив подробный вывод с опцией {{{-v}}} или с глобальной опцией {{{--debug}}} - абсолютно полный:
Мы можем получить более детализированный лог, запросив подробный вывод с опцией {{{-v}}} или с глобальной опцией {{{--debug}}} - абсолютно полный:
Line 66: Line 66:
Подробный вывод содержит несколько больше полей, чем обычный.
Line 67: Line 68:
Подробный вывод содержит несколько больше полей чем обычный.  * {{{files}}} - список файлов модифицированных в changeset'е.
 * {{{description}}} содержит полное многострочное описание changeset'а, а не только первую строчку.
  * В нашем случае описание не отличается от предыдущего примера, так как его длина - только одна строка.
Line 69: Line 72:
 * {{{files}}} список файлов модифицированных в changeset'е.
 * {{{description}}} содержит полное многострочное описание changeset'а, а не только первую строчку.
   * В нашем случае описание не отличается от предыдущего примера так-как его длина - только одна строка.

Опция `--debug` добавляет следующие поля к подробному выводу (см. [[DebuggingFeatures]]):
Опция `--debug` добавляет следующие поля к подробному выводу (см. DebuggingFeatures):
Line 76: Line 75:
 * Второе поле {{{parent}}} содержит changeset ID обоих родительских changeset'ов, где значение {{{-1:0000000000000000000000000000000000000000}}} указыват на несуществование родителя.  * Второе поле {{{parent}}} содержит changeset ID обоих родительских changeset'ов, где значение {{{-1:0000000000000000000000000000000000000000}}} указывает на отсутствие родителя.
Line 81: Line 80:

Команда {{{log}}} с опцией {{{-r}}} возвращает информацию о конкретном changeset'е. 
Команда {{{log}}} с опцией {{{-r}}} возвращает информацию о конкретном changeset'е.
Line 92: Line 90:
<!> У опции {{{-r}}} очень гибкий синтаксис выбора диапазона changeset'ов. Но на нашем демонстрационном репозитарии с ограниченным количеством changeset'ов это сложно продемонстрировать. Узнать больше Вы сможете из руководства: [[http://www.selenic.com/mercurial/hg.1.html#log|manpage]].
Line 93: Line 92:
<!> У опции {{{-r}}} очень гибкий синтаксис выбора диапазона changeset'ов. Но на нашем демонстрационном репозитарии с ограниченым количеством changeset'ов это сложно прожемонстрировать. Узнать больше Вы сможете из мана: [[http://www.selenic.com/mercurial/hg.1.html#log|manpage]].

Команда {{{log}}} с опцией {{{-p}}} отображает патч changeset'а:
Команда {{{log}}} с опцией {{{-p}}} отображает патч changeset'а, то есть изменение в его файлах:
Line 111: Line 108:

Вы можете использовать команду {{{tip}}} что бы просмотреть ''tip'', то есть последний changeset. Команду {{{tip}}} можно рассматривать как сокращение от {{{log -r tip}}}.
Вы можете использовать команду {{{tip}}}, чтобы просмотреть ''tip'', то есть последний changeset. Команду {{{tip}}} можно рассматривать как сокращение от {{{log -r tip}}}.
Line 129: Line 125:


---- /!\ '''Edit conflict - other version:''' ----
Теперь, когда мы имеем некоторое представление о том, что происходит, let's jump in и сделаем некоторые изменения! Вперед, к [[RussianTutorialFirstChange|Созданиию первых изменений]]!

---- /!\ '''Edit conflict - your version:''' ----
Теперь, когда мы имеем некоторое представление о том, что происходит, let's jump in и сделаем некоторые изменения! Вперед, к [[RussianTutorialFirstChange|Созданиию первых изменений]]!

---- /!\ '''End of edit conflict''' ----
Теперь, когда мы имеем некоторое представление о том, как и что происходит, давайте пойдем дальше и внесём некоторые изменения! Вперед, к [[RussianTutorialFirstChange|Созданиию первых изменений]]!
----
CategoryTutorial

Учебник - Просмотр истории изменений

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

На данный момент мы прошли RussianTutorialClone - клонировали репозиторий. Наша локальная копия находится в my-hello.

Давайте взглянем на историю этого репозитория. Для этого мы используем команду log. Она выводит резюме о каждом событии, которое произошло в хранилище, начиная с последнего.

$ hg log
changeset:   1:82e55d328c8c
tag:         tip
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
summary:     Create a makefile

changeset:   0:0a04b987be5a
user:        mpm@selenic.com
date:        Fri Aug 26 01:20:50 2005 -0700
summary:     Create a standard "hello, world" program
  • Каждый параграф описывает отдельный changeset (набор изменений). Changeset - это модификация одного или нескольких файлов, сгруппированных логически.

    • В нашем случае, мы видим историю репозитория, состоящую из двух changeset'ов.
  • changeset идентификатор changeset'а.

    • Первое число перед двоеточием - это номер ревизии; это локальный метод идентификации changeset'ов. Он действует только внутри этого репозитория.

    • Шестнадцатиричная строка после двоеточия - это changeset ID; это идентификатор changeset'а и он неизменен во всех репозиториях, содержащих этот changeset. Если Вы обсуждаете с кем-нибудь changeset'ы, используйте ChangeSetID, а не номер ревизии.

  • tag - это тег, произвольное символическое имя changeset'а.

    • Вы можете привязать к changeset'у один или несколько тегов. На самом деле, теги привязывают к очень немногим changeset'ам, так что строка tag присутствует редко.

    • Специальный тег tip всегда обозначает tip - новейший changeset в репозитории. Если Вы создадите ещё один changeset (и мы это вскоре сделаем), то тег tip будет удалён из этого changeset'а и добавлен к новому changeset'у.

  • user показывает пользователя, создавшего changeset. Эта строка имеет свободный формат; обычно она содержит email, а иногда также и имя пользователя.

  • date показывает, когда changeset был создан. Время выводится в локальной зоне создателя changeset'а.

  • summary - это первая строка описания changeset'а. Описание вводится при создании changeset'а как напоминание о его назначении (см. ChangeSetComments).

  • parent идентификаторы родительских changeset'ов (parent) в случае, если их больше чем один (когда вы объединили (merge) изменения из нескольких репозиториев).

    • В большинстве случаев родительский changeset только один, и он предшествует рассматриваемому. Именно этот случай мы имеем в вышестоящем примере.

Мы можем получить более детализированный лог, запросив подробный вывод с опцией -v или с глобальной опцией --debug - абсолютно полный:

$ hg log -v
changeset:   1:82e55d328c8c
tag:         tip
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
files:       Makefile
description:
Create a makefile

(...)

$ hg log --debug
changeset:   1:82e55d328c8ca4ee16520036c0aaace03a5beb65
tag:         tip
parent:      0:0a04b987be5ae354b710cefeba0e2d9de7ad41a9
parent:      -1:0000000000000000000000000000000000000000
manifest:    1:0c7c1d435e6703e03ac6634a7c32da3a082d1600
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
files+:      Makefile
extra:       branch=default
description:
Create a makefile

(...)

Подробный вывод содержит несколько больше полей, чем обычный.

  • files - список файлов модифицированных в changeset'е.

  • description содержит полное многострочное описание changeset'а, а не только первую строчку.

    • В нашем случае описание не отличается от предыдущего примера, так как его длина - только одна строка.

Опция --debug добавляет следующие поля к подробному выводу (см. DebuggingFeatures):

  • changeset содержит несокращённый changeset ID.

  • Второе поле parent содержит changeset ID обоих родительских changeset'ов, где значение -1:0000000000000000000000000000000000000000 указывает на отсутствие родителя.

  • manifest содержит manifest ID changeset'а.

  • file+ список файлов добавленных в changeset.

  • file- список файлов удалённых из changeset'а.

Команда log с опцией -r возвращает информацию о конкретном changeset'е.

$ hg log -r1
changeset:   1:82e55d328c8c
tag:         tip
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
summary:     Create a makefile

<!> У опции -r очень гибкий синтаксис выбора диапазона changeset'ов. Но на нашем демонстрационном репозитарии с ограниченным количеством changeset'ов это сложно продемонстрировать. Узнать больше Вы сможете из руководства: manpage.

Команда log с опцией -p отображает патч changeset'а, то есть изменение в его файлах:

$ hg log -r1 -p
changeset:   1:82e55d328c8c
tag:         tip
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
summary:     Create a makefile

diff -r 0a04b987be5a -r 82e55d328c8c Makefile
--- /dev/null   Fri Aug 26 01:20:50 2005 -0700
+++ b/Makefile  Fri Aug 26 01:21:28 2005 -0700
@@ -0,0 +1,1 @@
+all: hello

Вы можете использовать команду tip, чтобы просмотреть tip, то есть последний changeset. Команду tip можно рассматривать как сокращение от log -r tip.

$ hg tip
changeset:   1:82e55d328c8c
tag:         tip
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
summary:     Create a makefile

$ hg log -r tip
changeset:   1:82e55d328c8c
tag:         tip
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
summary:     Create a makefile

Теперь, когда мы имеем некоторое представление о том, как и что происходит, давайте пойдем дальше и внесём некоторые изменения! Вперед, к Созданиию первых изменений!


CategoryTutorial

RussianTutorialHistory (last edited 2012-08-13 19:58:04 by 94-153-226-116-kv)