Mercurial에서 저장소의 하위 폴더를 어떻게 복제합니까?
몇 가지 관련 프로젝트가 포함 된 Mercurial 저장소가 있습니다. 이 프로젝트 중 하나만 분기하여 다른 곳에서 작업하고 싶습니다.
복제는 리포지토리의 일부일 뿐이며 이것이이를 달성하는 올바른 방법입니까?
원하는 것은 좁은 또는 부분적인 클론 이지만 안타깝게도 아직 지원되지 않습니다.
이미 큰 저장소가 있고이를 여러 개의 작은 저장소로 분할하는 것이 합리적이라는 것을 알고 있다면 convert 확장 을 사용하여 Mercurial에서 Mercurial로 변환 할 수 있습니다 . 참고이가 만드는 새로운 저장소를 foo
하고 사이 / 풀을 밀어 수 없습니다 your-big-repo
와 foo
.
은 convert extension
그래서 당신의 repo의에 다음을 추가 기본적으로 사용할 수 없습니다 hgrc
파일 또는 mercurial.ini
파일 :
[extensions]
hgext.convert=
그런 다음 생성 map.txt
과 파일을
include "libs/foo"
rename "libs/foo" .
(Windows에서도 슬래시를 사용할 수 있음)
$ hg convert --filemap map.txt your-big-repo foo
그러면 foo
에서 libs/foo
폴더 의 전체 내역이있는 저장소 가 만들어 집니다 your-big-repo
.
모든 증거를 삭제하려면 디렉토리를 제거 하는 데 사용 하는 다른 변환 foo
을 수행 your-big-repo
할 수 있습니다 exclude libs/foo
.
이와 같은 저장소가 여러 개 있고이를 전체적으로 사용하려면 하위 저장소를 살펴 봐야 합니다. 이 기능을 사용하면 svn:externals
작업 방식과 유사하게 체크 아웃에 다른 리포지토리를 포함 할 수 있습니다 . 해당 위키 페이지 의 권장 사항 을 따르십시오 .
부분 복제를 수행하는 대신 Convert Extension 을 사용하여 하위 저장소별로 저장소를 둘 이상의 저장소로 분할 할 수 있습니다 .
특히 Mercurial 에서 변환 섹션을 참조하십시오 .
Mercurial 저장소를 필터링하여 기존 저장소의 하위 집합을 가져 오는 것도 유용합니다. 예를 들어 저장소 foo의 하위 디렉토리 subfoo를 자체 수명이있는 저장소로 변환하려면 (전체 기록을 유지하면서) 다음을 수행합니다.
$ echo include subfoo > /tmp/myfilemap $ echo rename subfoo . >> /tmp/myfilemap $ hg convert --filemap /tmp/myfilemap /path/to/repo/foo /tmp/mysubfoo-repo
나는이 문제를 우연히 발견하고 그것을 할 수있는 한 가지 방법을 찾았습니다 : 심볼릭 링크 사용 (불행히도 Linux 만)
예를 들어 /project
저장소 에만 필요한 경우 컴퓨터에서 다른 폴더의 저장소를 복제 한 다음 ln -s /repo/location/ project
. Mercurial이 처리합니다.
불가능 hg clone
하며 전체 저장소를 복제합니다.
필요에 맞는 리포지토리 내부에 리포지토리를 포함 할 수있는 하위 리포지토리 확장을 살펴볼 수 있습니다.
(Late 2016) Mainline Mercurial은 여전히 "좁은 클론"을 지원하지 않지만 다른 방식으로 문제를 해결하는 타사 확장 기능이 있습니다.
좁은 체크 아웃 (일명 "스파 스 체크 아웃"또는 "파일 경로 별 부분 체크 아웃") 만 처리 할 수 있다면 hg-experimental 저장소 ( 디렉토리 내부를 살펴봄) sparse.py
에서 Facebook의 확장 기능을 사용할 수 있습니다. 이 시나리오에서는 여전히 전체 기록을 복제하지만 (따라서 .hg 디렉터리가 더 작지 않음) 작업 디렉터리는 전체 저장소의 하위 집합에서만 표시 / 동작합니다.hgext3rd/
또는 Google은 좁은 복제 (일명 "파일 경로 별 부분 복제") 를 수행 하는 NarrowHG 확장 을 만들었습니다 . 서버, 클라이언트를 제어하고 실험적 기능을 사용할 의향이 있어야하지만 실제로는 .hg에있는 클론의 복사 된 기록을 원래 저장소에 있던 하위 집합으로 제한합니다.
(2019) sparse
확장은 실험 sparse
확장 으로 Mercurial 4.3에 병합되었습니다 . NarrowHG 확장은 의욕 4.6로 합병 은 AS hgext.narrow
확장.
이것은 Convert 확장으로 간단합니다 .
참고 URL : https://stackoverflow.com/questions/920355/how-do-i-clone-a-sub-folder-of-a-repository-in-mercurial
'IT TIP' 카테고리의 다른 글
라 라벨 가드 란 무엇입니까? (0) | 2020.12.01 |
---|---|
C #의 간단한 스레드 풀에 대한 코드 (0) | 2020.12.01 |
ISO C ++ 표준을 준수하는 사용자 정의 new 및 delete 연산자를 어떻게 작성해야합니까? (0) | 2020.12.01 |
Ansible-디렉토리의 경우 모드 755, 파일의 경우 재귀 적으로 644 (0) | 2020.11.30 |
Python, Pandas : DataFrame의 내용을 텍스트 파일에 기록 (0) | 2020.11.30 |