24

가 Alrighty 다음, 내 질문의 짧은 버전이 될 것 참조 :힘내 및 Visual Studio 프로젝트는

는 여러 솔루션을 통해 공유하는 프로젝트가있을 때 망할 놈의 프로젝트 참조를 처리하는 가장 좋은 방법은 무엇입니까

방법이해야 내 힘내 주최하는거야?

긴 버전은 다음과 같습니다

우리는 작은 개발팀 (5 개발자)이며, 현재 우리는 우리의 소스 제어로 TFS를 사용하여 서버를 구축 및 Visual Studio는 선택의 우리의 IDE입니다. 나는 항상 새로운 일을 시도하고 개발 환경을 개선하려고 노력 했으므로 Git에서 TFS의 소스 컨트롤 부분을 대체 할 수 있는지 알아보기로 마음 먹었다. 우리는 Jira를 우리 워크 플로에 통합했습니다. Jira와 얼마나 잘 통합 되었기 때문에 Stored를 Git 환경으로 사용해보기로했습니다. 나는 지금 git repos를 구성하는 방법을 찾으려고 노력하고 있는데, 그래서 나는 여기에있다. 이제는 얼마나 많은 솔루션이 구성되어 있는지 설명하겠습니다.

우리는 많은 솔루션을 가지고 있습니다. 일부는 라이브러리이고 일부는 Visual Studio의 프로젝트 참조를 통해 이러한 라이브러리를 참조하는 프로그램입니다.

그래서 많은 솔루션에서 참조되는 라이브러리를 처리하는 방법이 혼란 스럽습니다.

라이브러리 버전 관리를 시작하고 모든 라이브러리를 별도의 저장소에 설치해야합니까? 이 방법은 배포해야하는 업데이트를 받고 라이브러리가 20 개 이상의 솔루션에서 사용되고있을 때 많은 추가 유지 관리가 필요합니다. 내가 잘못 ? Visual Studio에 더 이상 Project 참조가 없으므로 디버깅이 훨씬 지루할 수 있다는 단점이 있습니다.

우리의 모든 솔루션을 사용하여 대규모 리포지셔닝을 수행해야하며 그 방법으로 모든 참조가 최신 상태 여야합니까?

나는 또한 모든 논문 라이브러리가있는 자체 누 게트 저장소를 만들 수 있으며 필요에 따라 참조 된 라이브러리를 업데이트하는 번거 로움이되지 않을 것이라고 생각했습니다. 이는 단지 아이디어 일 뿐이므로 적절하게 조사하지 않았으므로 이것이 어떤 이점이 있는지 확실하지 않습니다.

그래서이 문제에 관해 나에게 조언을 해 줄 수있는 사람이 있습니까?

+1

나는 "내 질문의 짧은 버전이 당신의 완전한 질문을 가리킬 것입니다."라고 생각했습니다. –

+2

두 버전 모두 같은 질문을하지만 더 긴 것은 배경을 포함합니다.) –

+0

git submodule의 올바른 사용 방법을 살펴볼 수 있습니다. – Till

답변

16

불행히도 하나의 대답이없는 질문 중 하나입니다. 의존적입니다.

가장 쉬운 해결책은 항상 단일 저장소를 만드는 것입니다. 이렇게하면 서로 다른 버전의 여러 저장소를 관리 할 때 발생하는 많은 문제를 피할 수 있습니다. 그러나 이것은 당신이 모든 것을 하나의 버전으로 가지고 있다면 정말로 효과가 있습니다; 같은 저장소에있는 두 제품의 릴리스주기를 다르게하는 것은 거의 불가능합니다. 그 방법은 광기를 속인다. 리포지토리가 중요하지 않은 크기로 커지면 실제로 확장되지도 않습니다.

맺음말까지, 하나의 옵션은 Git Submodules입니다. 이렇게하면 특정 커밋이나 분기에서 하나의 저장소 소스를 다른 저장소에 동적으로로드 할 수 있습니다. 서브 모듈 및 다른 저장소를 연결하는 단지 성격 그래서 물론 이것은 전체 host of problems, 일부 특정와 함께 제공됩니다. *

다소 부정 행위이며 반복적으로 추출 할 수 있도록 다음의 역사를 가져 정말 Git Subtree 같은 일부 사람들, 저장소를 가로 질러 폴더, 그리고 다시.

마지막으로 빌드 환경에 따라 종속성 관리 도구를 사용할 수 있습니다. 내가 Visual Studio에 대해 충분히 알지 못한다. Atlassian에서 우리는 (현재) 이것을 해결하기 위해 Maven을 사용합니다. JS를 사용하고 있다면 Ruby it Gems의 NPM/Bower 일 수 있습니다. 프로그램 Y에 대한 사소한 변경을하기 위해 라이브러리 X의 새 버전을 출시해야한다는 것은 실망 스러울 수 있습니다. 그러나 대부분은 충분히 잘 작동합니다.

이것은 실제로 진행중인 문제이며, 나는 매일 저를 괴롭히는 것을 알고 있습니다. 하위 모듈과 종속성 관리의 장점을 결합한 더 나은 솔루션을 얻을 수있는 기회가 될 것 같지만 아직 찾지 못했습니다.

도움이 되셨습니까?

* 툴킷 문제는 제쳐두고 서브 모듈과 관련하여 사람들이 절대적 URL을 다른 저장소에 체크인하도록 장려하는 것입니다. Git 서버 또는 저장소 중 하나를 마이그레이션하기로 결정하기 전까지는 완벽하게 작동합니다. 이제는 모든 것이 손상됩니다. 다른 날에 relative paths을 사용할 수 있다는 것을 알았지 만 문제는 해결되지 않았습니다.

+1

답변 해 주셔서 감사합니다. 이 문제에 관해 더 많이 읽게되면할수록 더 많은 해결책이없는 것처럼 보입니다. 나는 단 하나의 repo를 사용하거나 의존성 관리 도구를 사용하는 것에 대한 장단점을 비교해야 할 것입니다. –

+0

아주 좋은 질문이며 그것에 대한 공정한 답변입니다. 둘 다 고마워. Btw, 모든 업데이트? 더 나은 방법은 그것을 처리 할 수 ​​있습니까? TFS는 교차 솔루션 참조를 매우 잘 처리 할 수 ​​있습니다. VS 용 git 플러그인은 TFS 플러그인과 동일한 기능을 수행하도록 향상되어야한다고 가정합니다. – Tohid

+0

안타깝게도 Visual Studio 2015에서 git 통합으로이 문제가 해결 된 것으로 보이지 않습니다. 내가 놓친 게 아니라면? – kukabuka