2012-01-03 2 views
11

다소 큰 프로젝트에서 다른 위치에 동일한 파일 (또는 폴더)을 넣으 려합니다. 한 위치에서 변경되면 변경 사항이 전파되어야합니다. Subversion에서이 동작을 수행하기 위해 외부 객체를 사용할 수있었습니다.Windows에서 수은과 하드 또는 심볼릭 링크를 추적

하드 링크와 심볼 링크를 사용하여이 문제를 해결하려고했지만 Mercurial은이 중 하나를 추적하지 못하는 것 같습니다. 대신 링크 속성 대신 저장소의 파일 내용을 커밋합니다. 저장소를 복제하면 정보가 손실됩니다.

Windows 고유의 Mercurial 동작입니까, 아니면 링크를 전혀 추적 할 수 있습니까? Mercurial의 다른 위치에서 액세스 할 수있는 파일을 추적하는 또 다른 방법이 있습니까?

답변

15

머큐리얼 캔디 심볼릭 링크를 추적 할 수 있지만 Windows에서 체크 아웃하면 이상하게 보입니다. 그러면 Mercurial은 링크 대상이 된 파일을 파일로 생성하고 내용은입니다. 불행히도 Windows Vista와 같이이를 지원하는 Windows 시스템에 실제 기호 링크를 만드는 것은 지원되지 않습니다. 결과적으로 두 시스템간에 이식 가능한 저장소에서 심볼릭 링크를 사용할 수 없습니다. 이 기능에 대한 자세한 내용은 see the discussion in Issue1825을 참조하십시오.

svn:externals에 가장 근접한 일치 항목은 Mercurial subrepositories입니다. svn:externals을 어떻게 사용했는지에 따라 subrepos가 원하는 것일 수도 아닐 수도 있습니다. see my answer을 조언을 구하기 위해 하위 문서에 대한 다른 질문으로 보내주십시오. 나는 하위 레프로 코드의 일부를 써서 내 머리 꼭대기에서 떼어 냈다. 같은 메인 레포지토리에 서브 페어를 여러 번 장착하는 것은 혼란을 막는 레서피처럼 들린다. 하지만 어쩌면 당신은 그것을 작동시킬 수 있습니다 - 단지 서브 레포가 Mercurial의 까다로운 부분이라는 것을 알아 두십시오.

+2

그러나 NTFS는 Windows Vista 이후의 심볼릭 링크를 지원합니다. – fschoenm

+0

맞아, 나는 윈도우가 최근에 심볼릭 링크 지원을 추가 한 것을 잊어 버렸다. 불행히도 우리는 그들을 만들 수 없습니다. [Issue1825] (http://mercurial.selenic.com/bts/issue1825)와 관련이 있습니다. –

+0

최근에? Vista가 5 년 전에 릴리스되었습니다.) – fschoenm

관련 문제