Как слить после возврата в Mercurial? - PullRequest
1 голос
/ 14 апреля 2010

У меня было плохое слияние.Теперь я хочу начать слияние заново.Я сделал возврат прямо перед слиянием.Теперь, когда я пытаюсь добавить пакет, у меня появляется сообщение, и оно больше не может найти изменения.Что случилось?Почему он не находит никаких изменений?

c:\Documents and Settings\Desktop\New Folder\test_rev94_to_tip_hg\test_rev94_to_tip.hg
searching for changes
no changes found
[command completed successfully Tue Apr 13 16:10:37 2010]

Наборы изменений:

105: слияние подсказок по умолчанию 104: возвращено chageset 26e351596da9 103: ошибка возврата 102: возврат 101: удалениеtabledata 100 Merge ........... Код от слияния 99: назначение, набор изменений 26e351596da9 98: переработанный код 97: 96: 95: ............... 94:версия 1

Я хотел вернуться к 94, а затем снова выполнить слияние.

Ответы [ 3 ]

1 голос
/ 14 апреля 2010

Вы можете выполнить повторное объединение, когда вернетесь к необработанной ревизии, и указать другую ревизию для слияния. Скажем, репо после слияния имеет следующий макет:

o    changeset:   4:a72f471ed717
|\   parent:      3:abd9c586bce0
| |  parent:      2:6827b9817642
| |  user:        Rudi 
| |  date:        Wed Apr 14 12:09:39 2010 +0200
| |  summary:     Merged
| |
| o  changeset:   3:abd9c586bce0
| |  parent:      1:11e62ba50646
| |  user:        Rudi 
| |  date:        Wed Apr 14 12:09:29 2010 +0200
| |  summary:     branched
| |
o |  changeset:   2:6827b9817642
|/   user:        Rudi 
|    date:        Fri Feb 12 15:30:34 2010 +0100
|    summary:     Something other changed
|
o  changeset:   1:11e62ba50646
|  user:        Rudi 
|  date:        Fri Feb 12 14:28:48 2010 +0100
|  summary:     Something changed
|
o  changeset:   0:b42b1175ba6b
   user:        Rudi 
   date:        Fri Feb 12 14:16:13 2010 +0100
   summary:     Initial

Здесь вы идете в rev с hg up -r 3 к изменению, установленному до слияния. Там вы выдаете hg merge -r 2, чтобы повторить слияние. После коммита репо выглядит так:

@    changeset:   5:65d010bb347a
|\   tag:         tip
| |  parent:      3:abd9c586bce0
| |  parent:      2:6827b9817642
| |  user:        Rudi 
| |  date:        Wed Apr 14 12:54:42 2010 +0200
| |  summary:     merge redone
| |
+---o  changeset:   4:a72f471ed717
| |/   parent:      3:abd9c586bce0
| |    parent:      2:6827b9817642
| |    user:        Rudi 
| |    date:        Wed Apr 14 12:09:39 2010 +0200
| |    summary:     Merged
| |
| o  changeset:   3:abd9c586bce0
| |  parent:      1:11e62ba50646
| |  user:        Rudi 
| |  date:        Wed Apr 14 12:09:29 2010 +0200
| |  summary:     branched
| |
o |  changeset:   2:6827b9817642
|/   user:        Rudi 
|    date:        Fri Feb 12 15:30:34 2010 +0100
|    summary:     Something other changed
|
o  changeset:   1:11e62ba50646
|  user:        Rudi 
|  date:        Fri Feb 12 14:28:48 2010 +0100
|  summary:     Something changed
|
o  changeset:   0:b42b1175ba6b
   user:        Rudi 
   date:        Fri Feb 12 14:16:13 2010 +0100
   summary:     Initial

Затем вам нужно объединить r4 и r5, чтобы получить окончательный заголовок этой операции.

0 голосов
/ 14 апреля 2010

Обратите внимание, что revert отличается от update. Если вы хотите повторить объединение, не пытайтесь revert к предыдущей (до объединения) головке, update к ней. Затем вы можете попробовать объединить снова.

Например, предполагая, что A - ваш общий предок, B - ваша ветвь, C - ветвь, которую вы вытянули и хотите объединить, а D - неудачное объединение.

A -- B ------- D
  \          /
   ------ C -

Вы были на B, втянуты C, объединены C в B и зафиксированы как D.

Если вы хотите попробовать объединить снова, обновитесь до B, объединитесь снова и подтвердите как E, оставив вам:

A -- B ------- D
  \          X
   ------ C ----- E

Если вы счастливы, что E работает, вам решать, хотите ли вы strip 1028 * или оставить его там для потомков.

0 голосов
/ 14 апреля 2010

hg strip ваше ошибочное слияние и hg update -C (-C для очистки) с любой из ваших предыдущих голов. Затем вы можете снова выполнить слияние.

Мне не ясно, какие ревизии должны быть в вашем комплекте или нет, кажется, вы либо уже имеете их в своем репо, либо у вас нет общего предка Rev с тем, что находится в комплекте?

Если вы не укажете конкретную ревизию, hg revert обновит отдельный файл до tip версии (последняя версия, касающаяся этого файла).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...