으로 파일을 대체하십시오. 파일을 최신 ervision으로 교체하도록 설정할 수있는 Subversion 속성이 있습니까 (diff를 수행하지 않고 충돌을 일으킬 수없는 경우). 병합)?Subversion 병합 : 병합을 수행 할 때 항상 새 수정본
내가 언급 한 파일 집합은 C# 프로젝트 파일 (* .csproj)입니다. 이 파일들은 항상 충돌을 일으킨다. 나는 병합을 할 때이 파일들이 항상 새로운 버전으로 업데이트되도록하고 싶습니다.
으로 파일을 대체하십시오. 파일을 최신 ervision으로 교체하도록 설정할 수있는 Subversion 속성이 있습니까 (diff를 수행하지 않고 충돌을 일으킬 수없는 경우). 병합)?Subversion 병합 : 병합을 수행 할 때 항상 새 수정본
내가 언급 한 파일 집합은 C# 프로젝트 파일 (* .csproj)입니다. 이 파일들은 항상 충돌을 일으킨다. 나는 병합을 할 때이 파일들이 항상 새로운 버전으로 업데이트되도록하고 싶습니다.
예.
svn merge
에 대한 옵션으로 --accept theirs-full
을 지정하면 변경 사항을 저장소 측에서 얻고 변경 사항이 있으면 충돌이 발생할 수 있습니다.
편집 : 두 번째 생각에, 나는 당신이 아마 이것을해서는 안된다. 이 작업을 수행하는 권장 방법은 SVN FAQ을 참조하십시오.
이상적으로는 컴파일 할 소스와 필요한 라이브러리 만 프로젝트 파일을 커밋하지 않는 것이 좋습니다. 그런 다음 프로젝트 파일을 svn : ignore에 추가하면 더 이상 걱정할 필요가 없습니다.
프로젝트의 다른 개발자는 자유롭게 기존 작업 영역을 중심으로 C# 프로젝트 파일을 만들고 컴파일하도록 설정하고 빌드를 손상시키지 않고 원하는 프로젝트 설정을 로컬로 수정할 수 있습니다. C# 프로젝트 파일은 약간 성가시다. 그러나 이것은 여전히 최악의 10-15 분 작업이며, 한 번만 수행하면된다.
자동으로 svn/tortoisesvn이 (가) 병합 충돌시 자동으로 "동의 함"을 받도록하는 방법을 모르겠습니다. 그것을 수동으로하는 것은 어떻게 내가 항상 bunk merge-conflict를 처리했는지입니다. TortoiseSVN을 사용하면 Tortoise에게 '자신의'파일로 회전하여 변경 한 내용을 지우는 방법으로 충돌을 해결할 수 있어야합니다.
우리는 몇 가지 파일 유형에 배타적 잠금을 가지고 있는데, 하나는 cproj 파일입니다. 우리는 또한 devs가 최소한의 시간 동안 잠금을 유지하는 작업 방식을 사용합니다. 즉, 클래스를 추가 한 다음 잠금을 잡고 비어있는 클래스 스텁 (컴파일)을 추가 한 다음 릴리스합니다. 나는 Subversion의 독점적 인 자물쇠를 많이 쓰고 있지만, 중소 규모 프로젝트에서는 꽤 잘 돌아 간다. 큰 프로젝트까지 확장하고 싶지는 않습니다.
와우, 활성화하려는 믿을 수 없을만큼 위험한 기능입니다. 확인하지 않고 변경 사항을 자동 삭제합니다. 전복이 당신에게 갈등을주고있는 이유가 있습니다 - 그 문제를 해결하고이 문제는 사라질 것입니다. – Bevan
갈등이 자주 발생하는 이유를 알고 있습니까? 우리의 환경에서 두 개발자가 같은 .csproj 파일을 동시에 변경하는 경우는 거의 없으며 일반적으로 충돌이 발생하여 신중하게 병합해야합니다. –
나는 왜 내가 자주 갈등을하는지 모른다. 일부 파일을 삭제/추가 할 때 svn merge가 충돌을 일으킬 수 있습니다. – David