[mercurial] Hg 지점 폐쇄

hg branch FeatureBranchName개발자가 공유하는 중앙 저장소에 사용 하고 게시 할 FeatureBranchName때 개발이 공식적으로 기본 브랜치와 병합되었을 때 결국 종료하는 방법이 있습니까?

명령을 FeatureBranchName수행 할 때가 보이지 않는 경우에도 도움이됩니다 hg branches.



답변

hg commit --close-branch

브랜치를 마감으로 표시하기에 충분해야합니다. (참조 hg commit)

--close-branch

분기를 닫힌 것으로 표시하고 분기 목록에서 숨 깁니다.

이 스레드를 참조하십시오 .

이 개발 라인이 막 다른 골목에 이르렀 기 때문에 분기를 닫고 더 이상 신경 쓰지 않기를 기대합니다.
따라서 분기가 닫 혔을 때 닫힌 분기를 보도록 명시 적으로 요청하지 않는 한 (예를 들어 분기, 머리, 로그에서) 볼 수 없습니다.

닫힌 브랜치가 저장소에 남아있을 것으로 예상합니다. 그것은 미래에 유용 할 수 있으며, commit --close-branch메시지는 적어도 지점이 폐쇄 된 이유를 설명해야합니다.
가지 치기 는 전혀 다른 것입니다.


참고 : “폐쇄 지점”비즈니스는 Mercurial과 비교할 때 Git에서 누락 된 것으로 보이는 한 가지 측면입니다 .

git의 브랜치는 항상 사용하고 버려야하는 일시적인 것입니다. 제가 아는 한 git은 브랜치 작업이 끝났다는 것을 동료에게 표시 할 방법이 없습니다.
이를 수행하는 유일한 방법은이를 삭제하거나 최종 병합 커밋을보고 분기가 추가 개발에 닫혀 있음을 이해하는 것입니다.

[In Mercurial] 브랜치 작업이 완료되면 저장소에서 삭제할 수 없습니다. 대신 분기를 닫는 커밋을 발행하고 Mercurial은 분기가 닫 혔음을 기록합니다. 리포지토리 기록의 영구적 인 부분으로 남습니다.


답변

PruningDeadBranches 에서 찾은 명령 인 분기 닫기를 완료하는 간단한 스크립트를 작성했습니다 .

## 스크립트 ##

#!/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. 중지합니다.

답변