2016-06-20 20 views
2

다른 프로젝트간에 특정 파일을 공유하려면 공유가 필요합니다.GIT가 Windows에서 디렉토리 접합을 일반 폴더로 취급하는 방법은 무엇입니까?

D:\shared\ 
D:\shared\files-shared-by-all-projects-here 

D:\project1\ 
D:\project1\project1-specific-files-here 
D:\project1\shared <- directory junction to D:\shared 

D:\project2\ 
D:\project2\project2-specific-files-here 
D:\project2\shared <- directory junction to D:\shared 

내가 D:\project1D:\project2에 설치 GIT의 REPOS이 내 문제가 GIT는 비 junctioned (즉, 실제 디렉토리)에서 파일을 추적하는 것이다 : 따라서 나는 그렇게 같은 파일 구조를 가지고있다. 프로젝트에 디렉토리 접합에 존재하는 파일을 추가하면

  • :

    나는 두 프로젝트를위한 비주얼 스튜디오 2015을 사용하고, 그것은 팀 탐색기가 매우 이상하게 프로젝트 "junctioned"디렉토리의 파일이있을 때 행동 것입니다 팀 탐색기는 파일 자체가 아닌 커밋 할 변경 사항 목록에 상위 디렉토리 (junction) 만 표시합니다. (즉, 파일이 추가 된) 모든 변경 사항을 커밋하면

  • 는 솔루션 탐색기는 모든를 추적하고 같은 파일 및 을 보여줍니다 확인 된 접합에 거주하고 있었다 그들 하지이 보류중인 변경 내용 목록에 표시를 포함 (그들은 추가 한 후 : 체크 같이 표시하고, 접합 디렉토리에있는 파일을 편집

git1

  • 는 것으로 나타날 것 체크 아웃 :

git3

: 이제 탐색기를 Team 팀 복귀

git2

  • 이 체크 아웃 된 파일 이 수정 된 파일의 목록에 주심
    • 그러나 커밋을 시도하면 메시지와 함께 실패합니다. "오류가 발생했습니다. 상세한 메시지 : 변경 없음; 아무것도 커밋 없습니다 "

    git4

    • 를 솔루션 탐색기에 체크 같이 그럼에도 불구 표시됩니다 실패 커밋되는 변경된 파일 반환 :.

    git5

    가 명시 적으로 추가하는 공유 디렉토리에있는 파일 (예 : D:\project2\shared\some-shared-file을 통해 참조) o 예를 들어 Tortoise GIT를 사용하는 Visual Studio의 utside가 작동하지 않습니다. 파일과 디렉토리라는 메시지와 함께 추가가 실패합니다. git7

    git6

    은 프로젝트의 루트에 거주하는 frame 디렉토리 정말 접합하는 새로운 테스트 프로젝트로 이루어졌다.

    실제 프로젝트에서는 상황이 약간 다릅니다 ... 예를 들어 Tortoise GIT를 사용하여 repo를 탐색하면 실제로 교차점에있는 공유 파일이 추적 및 체크인되고 repo의 일부로 표시됩니다. 그러나 Visual Studio에서 프로젝트를 열면 솔루션 탐색기와 팀 탐색기 변경에서 동일한 파일이 "보류중인 삭제"로 표시됩니다. 이것은 VS quirck입니까?

    결론적으로 디렉토리 접합에있는 파일을 일반 파일과 동등한 프로젝트의 일부로 볼 수 있도록하려면 어떻게하면 제대로 체크 아웃하고 다시 체크인하고 양식을 만들 수 있는지 궁금합니다. 프로젝트 (repo 's) 역사의 일부?

답변

3

현재로서는 지원되지 않습니다. 이는 Windows 용 Git과 Visual Studio 및 TortoiseGit (일부)에서 사용되는 Git 라이브러리 인 libgit2 간의 junction 처리 간의 차이 때문입니다.

이 모두 구현 해야treat junction points as if they are Unix mount points는, 그러나 어느 구현이 실제로 는 현재 것을 않는 것으로 결정되었습니다.

현재 Windows 용 Git은 일반 디렉토리 인 것처럼 처리하므로 접합을 삭제하고 새 디렉토리로 바꿀 수 있습니다. libgit2는이를 심볼릭 링크처럼 취급하며, 결과적으로 Visual Studio는이를 처리하지 않습니다.

Microsoft는이 문제를 해결하는 비주얼 스튜디오를 업데이트 할 필요가 있기 때문에, Microsoft Connect에서 버그를 제출하고

+0

VS 2015 년 고정 얻을 것이라는 희망에 투표하는 사람들을 격려하십시오는 명확한 설명 주셔서 감사합니다 ! 아마 실용적인 해결 방법을 권할 수 있습니까? 아니면 "공유 된"저장소를 만들어 매번 수동으로 커밋하는 것 외에 다른 것이 있습니까? –

+0

아마 전환 할 일부 자식 옵션이 있습니까? 나는 진실과 거짓으로 core.symlinks를 지겹쳤으나 아무것도하지 않는 것 같다. –

+0

실제 해결 방법이 없다는 것이 두렵습니다. 공유 저장소를 사용하거나, 수동으로 복사하거나, 하위 모듈 유형의 ​​접근 방식을 사용해야합니다. –