Закрыть неотложную расточительную ветку в Mercurial - PullRequest
1 голос
/ 11 августа 2011

Я решил начать эксперимент в ветке

[default] $ hg branch experiment
[experiment] $ [... some commits ...]

Аааа!не работает!Я хочу выбросить его.

[experiment] $ hg commit -m "did not work; closing ..." --close-branch
[experiment] $ hg update default

Чтобы получить реальный совет -

[default] $ [... some commits ...]
[default] $ hg push

Это правильный рабочий процесс для уничтожения экспериментальной ветви?

Ответы [ 4 ]

2 голосов
/ 12 августа 2011

У вас есть два хороших ответа о том, как отменить вашу ветку, но суть в том, что не используйте именованные ветви для временных понятий .Названные ветви предназначены для долгоживущих объектов, таких как «развитие» и «стабильный».Для функций, экспираций и т. Д. Вам нужны клоны, закладки или анонимные ветви.Все три противопоставлены именованным ветвям в этой превосходной статье Стива Лоша:

http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/

Подобный совет по проекту Mercurial вы можете увидеть здесь:

https://www.mercurial -scm.org / вики / StandardBranching

1 голос
/ 11 августа 2011

Закрытие ветви оставит ее в репозитории, и в следующий раз, когда вы сделаете push, закрытая ветвь будет перенесена с другими наборами изменений.local, просто strip it.

С другой стороны, если у вас уже нажата экспериментальная ветвь, удаление ее не поможет, поэтому вы можете закрытьэто или фиктивное слияние (или оба).

1 голос
/ 11 августа 2011

Mercurial wiki охватывает все опции для Обрезка мертвых веток .Вкратце, эти параметры включают в себя:

  1. Закрытие ветки (как сделано в исходном сообщении)
  2. Создание нового клона, который не включает мертвую ветку
  3. Использованиебезоперационное слияние
  4. Используйте команду strip, которая связана с расширением mq
0 голосов
/ 12 августа 2011

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

В долгосрочной перспективе нет ничего плохого в том, что в хранилище присутствует "мертвая" ветка.Любая данная ветвь почти наверняка крошечная по сравнению с содержимым вашего репозитория, и любой дополнительный «шум», создаваемый дополнительными наборами изменений, уйдет в прошлое относительно быстро.В филиале вы получаете две вещи:

  1. Вам не нужно иметь дело с какими-либо потенциальными проблемами, связанными с изменением истории в DVCS.
  2. (что более важно) У вас естьпостоянная запись вашей попытки.

Этот второй пункт является ключевым - вы можете фактически использовать то, что вы узнали, если ветвь все еще существует: любые товарищи-разработчики могут извлечь из нее уроки;вы можете вернуться и попробовать снова, если вы узнаете что-то еще;вы можете предотвратить повторение того же самого действия, увидев эту ветку в истории.

Многим разработчикам трудно сохранять историю, которая не является "нетронутой" в их DVCS, особенно когда они недавно пришли изцентрализованная VCS. * Со временем я осознал, что в этой «другой» истории нет ничего плохого или неправильного, и на самом деле она может оказаться чрезвычайно полезной, если ее сохранить.

*Я не обязательно подразумеваю, что вы попали в один из этих лагерей, просто сделав наблюдение.

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