Подтвердить что ты не робот

В Mercurial есть ли какой-либо способ (помимо "Сборки вишни" ), чтобы нажимать набор изменений, не нажимая также изменения, связанные с другой головой?

В ответе этот вопрос Ry4an говорится, что "вы не можете нажать" Изменить набор2 "без нажатия Changeset1".

Это, безусловно, имеет смысл, если репозиторий выглядит следующим образом:

+ Changeset2
|
+ Changeset1
|
+ Original

Однако, похоже, это не так важно в следующем сценарии, который у меня есть:

+ Changeset2
|
|   + Changeset1
|  /
| /
+ Original

В идеале, я хочу, чтобы иметь возможность нажимать только Changeset2 обратно в репозиторий, изначально я клонированный. Mercurial, похоже, не хочет позволить мне это сделать. Он настаивает на том, что я также нажимаю "Набор изменений 1"... который не разрешен, так как он создавал новую головку в исходном репозитории. Очевидно, я мог бы "Cherry pick" или создать патч для применения в оригинальном репозитории, но это кажется неуклюжим. Я что-то пропустил?

Обновление: Я, вероятно, должен был упомянуть в своем первоначальном вопросе, что я пытался выполнить операцию из TortoiseHg GUI. Как Niall C. правильно идентифицированный в его ответе, командная строка Mercurial позволила мне выполнить то, что мне было нужно, однако мне все равно было бы интересно узнать, есть ли способ выполнить ту же операцию из графического интерфейса.

4b9b3361

Ответ 1

Если вы используете hg push без какой-либо опции командной строки, он попытается нажать каждый набор изменений в вашем локальном репозитории, который не существует в удаленном репозитории. Если вы используете параметр -r/--rev, он просто подтолкнет эту ревизию и ее предков. В вашем случае вам нужно будет:

hg push --rev Changeset2

Подробнее см. hg help push.

Ответ 2

Для любителей пользовательского интерфейса, которые любят картинки:

  • В TortoiseHg нажмите кнопку Detect outgoing changes to. введите описание изображения здесь

  • Нажмите правую кнопку мыши на ревизии, которую вы хотите нажать.

  • Выберите Push -> Push to Here. введите описание изображения здесь

Результат: вы будете выбирать только ревизию, а не все. введите описание изображения здесь

Надеюсь, это сэкономит вам некоторое время.