2012-01-08 2 views
7

저는 사용자가 원하는 수의 소스 (SVN/Mercurial/etc)에서 파일을 다운로드/패키지하는 반복 작업을 예약 할 수있는 응용 프로그램을 작성 중입니다.C#의 머큐리얼 리포지터리 복제?

저는 Mercurial을 제외한 모든 것을 구현했습니다. 내 응용 프로그램이 모든 것을 처리하기를 원할 때, 나는 응용 프로그램과 함께 Mercurial 디렉토리 전체를 배포해야하거나, 사용자가 설치하도록 요구하는 것을 피하기를 원합니다.

나는 어떤 API도 찾을 수 없었으므로 최선의 접근 방법이 무엇인지 궁금합니다. 내 프로젝트에 포함시킬 수있는 독립 실행 형 실행 파일이 있습니까? 내 응용 프로그램에서 "hg clone"명령을 내릴 때 사용합니까?

+0

관련 질문 : [C#/.NET에서 프로그래밍 방식으로 Mercurial (HG) 사용하기] (http://bug.com/products/2885958/using-mercurial-hg-programmatically-from-c-net) . –

+0

고마워. 비록 내가 이미 우연히 발견하고 도움이되는 모든 것을 찾지 못했다. http://mercurialnet.codeplex.com을 체크 아웃했는데 설치 도움말이 없으므로 아직 응용 프로그램과 함께 수은 .exe를 포함해야하는지, 아니면 계속 진행 중인지 알 수는 없습니다. –

+0

소스 코드가 있으므로 CodePlex의 Mercurial 통합이 다시 작동하기 시작하면 도움이 될 것입니다. [Features] (http://mercurialnet.codeplex.com/wikipage?title=Features&referringTitle=Home) 페이지를 다시 살펴보면,'주의 : Mercurial이 필요합니다. 라이브러리는 Mercurial 실행 파일과 함께 제공되지 않으며 작동하지 않습니다. 그 자체로! '그래서 그것은 당신의 필요에 충분하지 않을 수 있습니다. –

답변

4

이 페이지를 보시려면 MercurialApi을보십시오.

실제로 권장되는 API는 명령 줄이며 내부 API를 사용하지 않아야하는 이유부터 시작됩니다.

그러나 실제로 원하는 경우 내부 API를 사용하는 방법에 대한 많은 정보가 있습니다.

C#에서 파이썬을 호출하는 방법을 찾아야합니다. 이런 일을 할 때 발견 한 것은 IronPython입니다.

또한 Mercurial의 내부 API를 사용하는 경우 프로그램이 오픈 소스 여야 만하지만 실제로는 으로 보일 것입니다.

2

머큐리얼과 인터페이스하는 가장 좋은 방법은 command server입니다.

기본적으로 명령 서버는 명령 줄과 유사하지만 Mercurial 인스턴스 생성 오버 헤드를 방지합니다. Java (JavaHg)와 Python 구현 (PythonHgLib)이 있습니다. C# 버전이 아직 존재하지 않지만 구현하기에는 너무 복잡하지 않아야합니다. 통신 프로토콜은 단순하도록 설계되었습니다.

그렇지 않으면 명령 줄을 호출하는 것이 좋습니다.