2010-08-10 3 views
1

저는 Mercurial을 VSS가 아닌 소스 저장소로 사용하기 위해 우리 그룹을 팔려고합니다. 빌드 스크립트를 업데이트하는 과정에서 Hg 저장소에서 파일을 검색하려고 할 때 문제가 발생합니다.Mercurial Repository에서 서브 디렉토리 만 검색하려면 어떻게해야합니까?

빌드는 NAnt로 자동화되어 현재 로컬 빌드 또는 VSS에서 빌드 (즉, VSS에서 필요에 따라 소스 가져 오기) 작업을합니다. Mercurial과 함께 작동하도록 업데이트하려고합니다. 나는 하나의 파일로 작업하고있을 때 난 그냥 개별 파일을 검색하기 위해 (적절한 개정 해시를받은 후)은 NAnt의 '수'작업을 사용할 수 있기 때문에

기본적으로, 나는 어떤 문제가되지 않습니다.

내가 가지고있는 문제는 저장소의 루트에없는 파일의 디렉터리 (및 하위 디렉터리)로 작업해야하는 경우입니다. 저장소에서 하위 디렉토리를 가져 와서 빌드를위한 '작업중인'디렉토리로 복사/복사하는 적절한 명령을 알아낼 수 없습니다. 나는 오후 내내 기본적으로 수은 실행 파일로이 작업을 수행하는 방법을 알아 냈으며 (그래서 NAnt 'exec'작업을 사용할 수있다.) 기본적으로 벽에 부딪혀 여기에 게시하려고 시도했다.

누군가는 이것이 가능 여부를 확인하고, 내가이 일을 할 수있을 방법으로 몇 가지 제안을 제공 할 수 있습니까? 필자는 Mercurial 트랙이 디렉토리가 아닌 파일별로 변경된다는 것을 알았지 만, 이것이 내가 알 수있는 것에서부터 사용할 수 없다는 것이 이상하다고 생각합니다.

그냥 볼 수있는 유일한 해결책은 NAnt 파일 세트를 사용하여 작업 할 예상 파일 목록을 유지하거나 전체 저장소를 임시 디렉토리에 복제 한 다음 해당 소스에서 파일을 복사하는 것입니다 필요에 따라 (이것은 마치 내게 느껴짐).

나는 단순히 내가 작업 할 디렉토리에 대한 또 다른 저장소를 만들 수 있습니다 실현,하지만 난 그게 내가으로 할 노력하고있어의 복잡성을 증가시킬 것이라고 생각하기 때문에 나는 그 길을 갈 선호하는 것 상당량 (우리가 구축 한 모든 다른 도서관 모두를 위해 많은 시간을이 라이브러리에 적용해야합니다.).

답변

5

Mercurial은 저장소의 일부만을 허용하지 않습니다. 전체 나무를 가져와야합니다. svn보다 훨씬 더 전체 레포 중심입니다.

+0

http://stackoverflow.com/questions/920355/how-do-i-clone-a-sub-folder-of-a-repository-in-mercurial. 요청한 목표를 달성 할 수있는 확장 프로그램에 대한 링크는 http://stackoverflow.com/a/40355673/4513656을 참조하십시오. – Anon

1

리포지토리를 여러 리포지토리로 분할하고 subrepos 기능을 사용하여 관리 할 수 ​​있습니다. 그런 다음 하위 디렉토리를 독립적으로 가져올 수 있습니다.

+0

나는 이것을 생각했지만 Mercurial을 나머지 팀원들에게 소개 할 것이므로, 우리가 의지해야 할 핵심 제품의 수정 횟수를 제한하려고 노력 중입니다. 핵심 릴리스의 일부가되면 고려해 왔던 것입니다. –

+3

그러나 문제는 빌드 지향적 인 것으로 보이기 때문에 사용자는 하위 레고를 사용하지 않고도 구현할 수 있습니다. 그들은 여전히 ​​머리 (전체 디렉토리)에서 끌어와 실제 설정을 얻을 것이다. 그들이 정상에서 밀기 만하면 모든 것이 투명해야합니다. VSS가 고통이기 때문에 어쨌든, 당신이 그것을 풀어 주길 바랍니다! – David

관련 문제