Закрытие Hg Филиалов - PullRequest
       0

Закрытие Hg Филиалов

95 голосов
/ 12 июля 2010

При использовании hg branch FeatureBranchName и публикации его в центральном репо, который используется совместно разработчиками, есть ли способ в конечном итоге закрыть FeatureBranchName, когда его разработка официально объединена с веткой по умолчанию?

Также было бы полезно, если бы FeatureBranchName не было видно при выполнении команды hg branches.

Ответы [ 2 ]

147 голосов
/ 12 июля 2010
hg commit --close-branch

должно быть достаточно, чтобы отметить закрытие ветви.(см. hg commit)

--close-branch

пометить ветку как закрытую, скрывая ее от списка ветвей.

См. также эта тема :

Я ожидаю, что я закрою ветку, потому что эта линия развития зашла в тупик, и я не хочу больше беспокоиться об этом.
Поэтому, когда ветвь закрыта, я не должен видеть ее (например, в ветвях, заголовках, журнале), если я не прошу явно видеть закрытые ветки.

Я должен отметить, что ожидаюзакрытая ветка для хранения в хранилище;это может быть полезно в будущем, и сообщение commit --close-branch должно хотя бы объяснить, почему ветвь была закрыта.
Обрезка ветвей - это совсем другое.


Примечание: бизнес с "закрытой веткой" - это один аспект, который в Git считается отсутствующим по сравнению с Mercurial :

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

[В Mercurial] Однако, когда вы закончили с веткой, вы не можете удалить ее из репозитория;вместо этого вы запускаете коммит, который закрывает ветку, и Mercurial отмечает, что ветка закрыта.Это останется постоянной частью вашей истории хранилища.

7 голосов
/ 18 августа 2015

Я написал простой скрипт, который завершает закрытие ветки, команды найдены в PruningDeadBranches .

## Script ##

#!/bin/bash
#script to close the not required branch in mercurial

hg up -C $1
if [ $? -eq 0 ]; then
    echo "$1 is up"
else
    echo "branch not found, please recheck your argument"
    exit 1
fi 
# if we are here then the branch is up, so we do the following
hg commit --close-branch -m 'this branch no longer required' 
echo "$1 is closed"
hg up -C default
echo "default is up" 

Как

Перейти к локальной копии репозитория и запустить этот сценарий, задав аргумент.Например:

$./the_script_above.sh bad_branch_name_to_close

Что он делает

Это делает следующее:

  1. Если ветвь существует, она обновляется до данной веткиили существует с сообщением об ошибке.
  2. Закрывает ветку.
  3. Обновляет ветку по умолчанию.
  4. Останавливается.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...