2010-04-08 6 views
2

며칠 전 Mercurial에서 작업하기 시작했으며 이해할 수없는 부분이 있습니다.Mercurial에서 저렴한 복제/로컬 브랜칭

내가하고 싶은 실험적 방법이 있기 때문에 정상적인 방법은 내 저장소를 복제하고 복제본을 작성하는 것입니다. 결국 변경 사항을 보관하려면 기본 저장소 .

내 저장소를 복제하는 데 많은 시간이 걸리고 (코드가 많음) 복제 된 복사본을 컴파일하는 데 최대 1 시간이 소요됩니다.
그래서 어떻게 든 다른 저장소에서 작업해야하지만 여전히 원래 작업 복사본에 있어야합니다.

local branches을 입력하십시오.

문제는 단지 로컬 브랜치를 만드는 것이 영원히 걸리고 그걸로 작업하는 것이 그다지 재미 있지는 않습니다. 로컬 브랜치 사이를 이동할 때 대상 브랜치 상태로 되돌릴 수 없기 때문에 hg purge (이동 된 브랜치에서 추가 된 파일을 제거하려면) hg update -c (브랜치에서 이동 된 파일을 되돌리기 위해)). (참고 : 로컬 브랜치 확장의 PK11 포크를 사용해 보았습니다. 간단한 로컬 브랜치 작성이 예외와 충돌합니다.)

하루가 끝나면 너무 복잡합니다. 내 옵션은 무엇입니까?

답변

5

복제 이외의 지역 지점 작업의 여러 가지 방법이 있습니다 :

  • 즐겨 찾기 당신은 매우 통찰력을 읽기에 관심이있을 수

  • 명명 된 지점
  • 익명 가지
  • guide to branching in Mercurial. 내 생각에 북마크 확장은 설명 된 컨텍스트에서 가장 적합한 분기 방법입니다.

    +0

    북마크가 보이지만 보이면 어떻게됩니까? 내 실험적인 것을 결정하는 것이 좋지 않니? 이제 내 저장소 – Zack

    +2

    @Zack에 있습니다. ** mq ** 확장을 활성화하고'hg strip' 명령을 실행하여 더 이상 필요하지 않은 게시되지 않은 분기를 제거 할 수 있습니다. –

    +0

    작업 복사본을 업데이트하고 다시 작성하는 것과 같은 소리가 나기 때문에이 중 하나라도 문제가 해결되지 않았는지 확실하지 않습니다. 복제본이 아닌 오랜 시간이 걸립니다. –

    0

    로컬 저장소를 복제하는 데 걸리는 시간은 얼마나됩니까?

    나에게 약한 링크가 될 수도 있습니다. 아마도 ccache과 같은 것이 필요할까요? 그래서 빠르게 복제하고 만들 수 있습니다.

    +0

    복제에는 약 5-10 분이 소요되며 문제는 그것을 컴파일하고 다른 필요한 것들을 설정하는 것입니다. 50ghz에 도달하는 결합 된 전력으로 incredibuild로 컴파일하는 데는 약 45 분이 소요됩니다. 불행히도'ccache'는 Visual Studio에서 작동하지 않습니다. – Zack

    +0

    incredibuild가 빌드를 캐싱 할 수있는 능력이 있는지 웹에서 알 수 없습니다. 오랜 시간이 걸린다면 (어쩌면 문서를 확인하겠습니까?). 당신이 해결할 때 obj와 bin 디렉토리를 복사 할 수 있습니다. –

    +0

    as까지 내가 incredibuild 캐시 빌드 수 없다는 것을 알고 있지만 당신이 약간의 요점을 놓치고 있다고 생각합니다. 작업 복사본을 복사하는 것은 저에게 너무 많은 작업입니다. 내 빌드가 너무 오래 걸리지 않아도 완전히 다른 작업 복사본으로 작업하기 전에 구성이 필요한 다른 것들이 있습니다. 따라서 저장소간에 작업 복사본을 공유하는 개념과 앞뒤로 이동하는 간단한 방법이 가장 고통스럽지 않은 솔루션입니다. – Zack

    0

    기존 복제본을 바탕으로 실험을 수행 할 수 없으며 실험을 시작하기 전에 기본 행을 일부 변경하려면 마지막 개정본으로 되돌아갑니다. ?

    1

    아마 당신이 듣고 싶은 대답은 아니지만 어쩌면 저장소를 좀 더 관리하기 쉬운 덩어리로 나누는 것이 좋습니다. :) 예 : 그 문서와 디자인 파일은 실제로 동일한 저장소에 포함될 필요가 있습니다. 편집기 도구는 자체 저장소를 가질 자격이 없습니다.

    복제가 하드 링크를 생성하기 때문에, ; 복제에 5-10 분이 걸린다면 파일 시스템 복사본을 더 나 빠지게해야합니다. (팁 : 작업 복사본이 필요하지 않다면 hg clone -U을 사용하십시오.)

    그렇지 않으면 책갈피가있는 익명 분기가 일반적으로 적절한 위치에서 전환을 수행하는 방법입니다.

    +0

    실제로 저장소에 문서가 거의 없습니다. 대부분 소스 코드와 3rd 파티입니다. 우리는 제 3자를 다른 저장소로 옮길 수 있지만 수은주의 서브 레포츠 지원은 진행중인 작업이므로 atmi는 좋은 생각인지 잘 모르겠습니다. – Zack

    +0

    내가 아는 한, 서브 레 포스 기능은 Mercurial의 모든 명령 및 확장과 완벽하게 통합되지 않았다는 점에서 진행중인 작업입니다 (내가 읽은 곳을 기억한다면 견적을 줄 것입니다). 그러나이 기능은 호환성과 관련하여 안정적입니다. –

    +0

    발견 - http://stackoverflow.com/questions/2213709/is-the-subprepos-feature-in-mercurial-1-4-x-ready-for-production-use –