2012-07-22 1 views
0

AppHarbor에서 프로젝트를 진행하고 싶습니다. 프로젝트의 Hg 저장소는 BitBucket에 호스팅됩니다. 문제는 내 리포지토리에 서브 페어 (HgBitBucket)가 포함되어 있다는 것입니다. AppHarbor이 하위 레프를 가져올 수있는 방법이 없어 프로젝트가 빌드되지 않습니다.AppHarbor, BitBucket 및 SubRepo 해결 방법

AppHarbor이 문제를 인식하고 해결책을 BitBucket까지입니다 상태 :

BitBucket는 오픈 티켓을 가지고 있지만 업데이트하지 :

내 질문은 누구에게 적합한 해결 방법이 있습니까? 나는 AppHarbor에 작업 디렉토리를 ftp로 기꺼이 할 것이나, 나는 그것을하는 방법을 보지 못한다.

답변

1

Subtrepos를 포함하는 아카이브 tarball을 수정하는 Bitbucket이 아마도 적합하지 않을 것입니다.

그러나 사용자는 항구가 처리하고 appharbor에서 사용할 수 있도록 자신 만의 타볼을 만드는 항목을 쉽게 설정할 수 있습니다. 단지 hg pull ; hg update ; tar -czvf /docroot/workingdir.tar.gz workingdir을 수행하는 cron 작업은 app harbor이 사용할 수있는 웹 액세스 가능한 tarball을 만드는 데 충분합니다.

더 나은 해결 방법은 tarball을 다운로드하는 대신 app harbor가 복제 및 업데이트를 수행하는 것이 좋습니다. Mercurial과 git은 코드를 생성 할 수있는 내장 된 방법을 가지고 있으며, tarball은 기본 메커니즘이 아닌 대체 기능입니다. 예를 들어 젠킨스 (Jenkins)와 같은 인기있는 CI 시스템은 tarball 다운로드가 아닌 코드를 얻기 위해 복제본을 사용하므로 제대로 작동합니다.

+0

나는 마지 못해 이것을 설정할 수 있습니다. 나는 AppHarbor가 대신 복제품 + 업데이트를 할 수 있기를 바랍니다. Subrepos는 개발 목적으로 잘 작동하는 것 같습니다. 나는 그들에게 tarball 방법을 선택하게하는 AppHarbor의 경우를 차별화하는 것이 확실하지 않습니다. – Hypnovirus

+0

우리가 저장소를 복제하지 않는 데는 몇 가지 이유가 있습니다. 1) 빌드 엔진이 여러 개 실행되므로 매번 전체 복제본을 실행해야합니다. (현재의 버전을받는 것보다 무거운 작업량입니다. 파일). 2) 우리는 수많은 버전 제어 기능을 지원하므로 Git, Mercurial, Subversion 및 TFS를 유지 관리해야합니다.이 기능은 핵심 제품에 실제로 가치를 부여하지 않습니다. –

+0

Bitbucket과 GitHub가 하위 저장소 패키징 옵션을 제공하지 않는 이유를 전혀 이해하지 못했습니다. 리포 지 토리는 아마 그 내용 중 일부에 의존하기 때문에 생략하는 것만으로는 도움이되지 않습니다. –