당신은 어떻게 관리할 수 있습니다.vcproj 파일에는 소스 제어에서 변경 여러 개발자가?

StackOverflow https://stackoverflow.com/questions/166796

  •  03-07-2019
  •  | 
  •  

문제

우리가 사용하는 파괴 우리의 소스로 제어 시스템 및 저장 visual studio 프로젝트 파일(vcproj)스 제어 시스템으로 정상적인 나는 생각한다.으로 파괴 우리가 사용하지 않는 모든 형태의 파일 잠금,그래서 두 개발자는 같은 프로젝트에서 작업하는 동시에 모두 파일을 추가하여,프로젝트 또는 설정 변경,두 번째는가를 병합을 변경합니다.

당신은 어떻게 병합 이러한 변화는?

Vcproj 파일은 단순한 텍스트 파일 그래서 그것을 가능하여 편집하는 손 하지만 그들은 매우 의무가 손을 편집,특히 주니어 개발자입니다.

의 방법으로 생각할 수 있는

  • 최신 버전에서 svn 고 다시 추가 모든 지역 수동으로 변경
  • 파일을 편집하여 손를 해결하는 모든 충돌을 자동 병합
  • 일부를 구현하는 형태의 잠그는 방식을 방지하는 동시에 변경
  • 가 간 협의 개발자 그래서 그들이 만들지 않는 동시에 변경

현재 우리는 첫 번째 옵션을 사용하고 다시 추가로 모든 변경 사항을 수동으로 그러나 이것은 시간이 소요가 있는 경우에 더 좋은 방법입니다.

와 소스 파일을 자동 병합 기능이 작동의 대부분의 시간과 우리 하지 않은 많은 충돌이 발생합니다.

도움이 되었습니까?

해결책

좋은 차이 도구를 사용하는 한 옵션 2 (직접 파일 편집)가 일반적으로 상당히 잘 작동한다는 것을 알았습니다 (사용합니다. Winmerge). 내가 겪는 주요 문제는 Visual Studio가 때때로 파일을 재정렬한다는 것입니다. 그러나 Diff/Merge 도구가 양호한 경우 변경된 컨텐츠와 이동 컨텐츠를 구별 할 수 있어야합니다. 그것은 많은 도움이 될 수 있습니다.

다른 팁

당신은 찾을 수 있습니다 프로젝트 : 병합 또는 SLN 파일 용 도구 유용한

이것이 어려운 문제이고 내 생각에서 약점을 Visual Studio 건물입니다.우리가 발견 라운드 그것을 가지지 않 proj 파일에는 소스 제어에서 모두를 구축하는 스크립트가 처리되는 구성 설정합니다.

대체는 매우 지저분하고 우리는 보장하지 못 일관 빌드 또는 환경이 개발자입니다.이 주도하는 거대한 숫자의 다운스트림 통제하고 결국 우리는 엄격한 단계를 제거하는 프로젝트에서 파일 원본을 제어합니다.

개발자 환경전이 되는 잘못이지만 그것이 나타났을 때 그들은 그를 구축하기 위해 노력하는 것이다.

여기서는 TF를 사용하지만 차이가 있다고 생각하지 않습니다.
우리는 또한 잠그지 않으며 때로는 프로젝트 파일 병합을 처리해야합니다. 나는 그것이 복잡하거나 많은 문제라는 것을 알지 못했습니다. 우리는 자동으로 병합 할 수없는 문제를 경험하는 경우가 거의 없으며 수동 병합 프로세스는 거의 사소합니다.

이것에 대한 경고는 단 하나뿐입니다. 자주 체크인하십시오! 프로젝트 구조를 크게 변경하고 즉시 확인하지 않으면 이러한 변경 사항은 나중에 합병의 복잡성을 복합화하기 시작할 수 있습니다. 프로젝트의 구조를 크게 바꾸면 보통 모든 사람에게 머리를 부여합니다. 나는 그들 모두에게 현재의 작업을 확인하고 합병을 처리하도록 요청할 것입니다.

나는 최근에 이것을 발견했다 : http://www.codeproject.com/kb/macros/vcproj_formatter.aspx이 도구를 vcproj 파일과 수정 된 버전에서 실행하면 좋아하는 텍스트 병합 도구와 쉽게 병합 할 수 있으며 결과는 더 컴팩트 한 VCPROJ 파일입니다.

옵션 1과 2는 상호 배타적이지 않습니다. 개발자가 주니어 레벨 인 경우 옵션 1 (프로젝트 파일을 다시 구입하고 변경 사항을 다시 변경하십시오)이 더 편한 경우 사용하십시오. 더 많은 선임 개발자의 경우 옵션 2 (병합 도구를 사용하여 병합)는 완벽하게 괜찮습니다.

나는 이것이 현재 마법의 총알이없는 상황이라고 생각합니다. 때로는 합병은 고통입니다.

Diff 도구를 사용합니다 (Winmerge) 변경 사항을 병합합니다. 프로젝트 파일은 (대부분) 실제로 직접적인 XML입니다. 그러나 여기서 핵심은 좋은 의사 소통이 효과적인 소스 제어의 침대 록의 일부이기 때문에 병합 할 때 놀라움이 없어야한다는 것입니다.

동시 변화 프로젝트에 사람들이 의사 소통하는 한 완벽하게 괜찮습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top