2012-01-20 1 views
3

TFS (Microsoft Team Foundation Server)에 코드 저장소가 있습니다. git-tfs를 사용하여 git 저장소로 변환 할 수 있습니다.git-tfs 중앙 repo 복제 및 TFS 숨기기

하지만 내가하고 싶은 일은 TFS에 푸시되는 하나의 중앙 자식 repo를 설정하고 모든 개발자가 그 자식 repo를 복제하도록하고 이 아니고은 TFS로 푸시 할 수 있어야합니다. 중앙 저장소에서 "다운 스트림"에 이르기까지 누구나 TFS 저장소가 있다는 표시는 원하지 않습니다.

TFS 서버 정보가 git-tfs에서 생성 된 저장소에 포함되어 있으므로 어떻게해야합니까?

답변

2

해결하려면 여러 가지 문제가 해결되어야합니다. 가장 눈에 띄는 것은 git 사용자를 TFS 자격 증명으로 매핑하는 것으로 TFS에 대한 변경 사항을 다시 체크인 할 때 사용됩니다.

그리고 다른 성가신 일은 다른 TFS 사용자와 충돌 할 수 있습니다 (즉, 누군가 TFS에 직접 푸시하기로 결정한 경우).

그렇기 때문에 git-tfs의 일부로 개발되지 않은 이유가 있습니다. (적어도 몇 달 전에이 기능을 추가하지 않은 이유가 적어도 있습니다).

일반 텍스트 파일에서 TFS 로그인/암호 쌍을 사용해도 괜찮 으면 충돌없는 워크 플로우를 보장 할 수 있습니다 (예 : git 중앙 저장소 이외의 다른 방법으로 TFS에 대한 체크인을 금지 할 수 있음). 커밋 훅 (commit hook)이나 간단한 스케쥴러 (scheduler)로 필요한 것을 구현할 수 있습니다. (즉, 푸시는 즉각적이지 않지만 지연되고 비동기식이므로 중앙 저장소를 크게 향상시킬 수 있습니다.)

실제 스크립트는 매우 간단해야하지만 아무도 아직 글을 작성하는 것을 괴롭히지 않았습니다. (최소한 나는 그런 것을 모릅니다.)

0

먼저 --no-metadata 플래그를 사용하여 커밋에서 TFS 메타 데이터를 제거합니다. 그런 다음 --authors="path-to-authors.txt" 플래그를 사용하여 TFS 사용자를 최신으로 매핑하십시오.

TFSDOMAIN\peter.pan = Peter Pan <[email protected]> 

의 repo를 복제 한 후, git tfs bootstrap를 실행하고 .git/config 파일에 TFS 구성을 제거 : 당신의 authors.txt에서

git tfs clone http://tfs:8080/tfs/DefaultCollection $/Project1 --authors="c:\project1\authors.txt" --no-metadata 

는 다음과 같이 자신의 이메일에 사용자 TFS ID를 매핑합니다. 이제는 TFS에 체크인 할 수 없지만 개발자들간에 레오를 공유 할 수 있어야합니다. git tfs clone https://github.com/git-tfs/git-tfs/wiki/Clone

자세한 내용