2015-09-17 2 views
1

При попытке использовать функцию «Hg фиксацию --amend» для изменения сообщения фиксации в репо ...рт.ст. совершить поправки создавать новые ветки

Я создал новую ветвь под названием как «hg_amend» и у меня есть совершили некоторые изменения и перешли на репо. Опять мне нужно сделать некоторые изменения, связанные с предыдущим фиксацией. Поэтому я сделал некоторые изменения. & попытался добавить эти файлы, используя 'hg add', 'hg commit -amend', 'hg phase -draft -force.' и 'hg push -f'.

После этого я проверил в битбакете новую ветвь, созданную теми же головами.

Advance Thanks !!

enter image description here

enter image description here

ответ

1

Пока нет собственно вопрос в вашем вопросе, я предполагаю, что эти двое:

  1. Почему существуют две головы?

  2. Как изменить ситуацию так, чтобы была только одна голова?

Ответ на 1) прост: вы опубликовали свой набор изменений. Ваш репозиторий bitbucket настроен как репозиторий публикации (это по умолчанию), поэтому все нажатые там наборы изменений становятся немыслимыми, таким образом, публичная фаза, как в репозитории bitbucket, так и в вашем локальном. Вы не можете изменить любой набор изменений, который уже помещен в этот репозиторий. Использование hg push --force только гарантировало, что вы на самом деле может подтолкнуть новые головы к репо и что вы охотно сказали «до свидания» к предупреждению, которое вы обычно получаете, когда пытаетесь подтолкнуть новые головы. Используя mercurial, команда push является строго append-only (просто в отличие от git, где это может быть дорога к работе по восстановлению лота при принуждении к неправильной фиксации).

Ответ на вопрос 2) теперь сложнее и есть несколько вариантов. Вероятно, проще всего использовать интерфейс bitbucket и убрать все изменения, которые вы нажали в последний коммит, и, кроме того, тот, который вы пытались изменить. Затем повторите попытку. Это должно исправить это сейчас.

Я не уверен на 100% в отношении текущих возможностей битбакет. Я слышал, что это (все же) не поддерживает обмен марками устаревания, поэтому этой ситуации очень трудно избежать. Однако он позволяет устанавливать хранилище для публикации и поддерживать фазы. Таким образом, если ваша фаза по умолчанию также является сквозной, фазы не будут изменены при нажатии. И либо вы избегаете внесения изменений в уже внесенные изменения. Или вы изменяете и закрываете теперь устаревшую голову с исходным changeetID - тогда ее, по крайней мере, больше не показывать в битбакете.

Смежные вопросы