2011-11-19 4 views
1

한 개발자가 파일 A를 열고 편집하기 시작하면 문제가 발생합니다. 또 다른 개발자는 파일 A에 기록하고 트렁크에 커밋했습니다.SVN에서 다른 커미터의 파일 덮어 쓰기 방지

첫 번째 개발자 인 svn-updates와 file-A는 작업 디렉토리에서 업데이트되었지만 마지막 개정판을 기반으로 파일 A 작업을 이미 시작했습니다. 파일을 저장하고 커밋하면 다른 개발자가 수행 한 모든 변경 사항을 덮어 씁니다.

이런 상황을 방지하려면 어떻게해야합니까? 좋은 워크 플로우? DVCS가 이러한 유형의 충돌을 해결할 수 있습니까?

답변

0

업데이트하기 전에 작업 디렉토리에 파일을 저장하면 설명하는 것과 같은 문제가 발생하지 않습니다. [REVISION_NUMBER]

그런 다음 당신이 파일을 저장 -r

SVN 업데이트 :

나는 당신이를 수행하여 이전 버전으로 로컬 디렉토리를 롤백 할 수 있어야한다 생각 편집, 다음 일을 :

SVN 업데이트

그러면 변경 사항을 병합하거나 로컬 디렉토리에 충돌이 있다는 메시지가 나타납니다.

충돌이있는 경우 충돌을 해결하면 다시 repo 할 수 있습니다.

2

SVN 업데이트를 수행하면 다른 개발자의 변경 사항을 첫 번째 개발자의 작업 복사본으로 정상적으로 병합하거나 "병합 충돌"을 표시해야합니다. 어떤 시점에서 커밋하기 전에 수동으로 충돌을 해결하십시오.

http://svnbook.red-bean.com/en/1.7/svn.tour.cycle.html#svn.tour.cycle.resolve을 참조하십시오.

+0

그래, 나는 그것을 이해한다. 하지만 개발자가 파일의 개정판 1을 열고 IDE에서 편집을 시작하는 상황을 지적하고 있습니다. 그런 다음 해당 파일을 저장하기 전에 SVN을 실행하면 파일이 개정 2가됩니다.그런 다음 자신의 IDE에 열려있는 파일을 저장하고 새로운 변경 사항을 덮어 씁니다. –

+1

@lamp_scaler : 개발자에게주의를 기울여야합니다. VCS는 저장되지 않은 로컬 변경 사항을 처리 할 수 ​​없습니다. 그녀가 그렇게해도, 해결하는 것은 쉽지 않습니다. –

1

각 파일 속성에 필수 잠금을 설정했습니다. 이렇게하면 각 개발자가 파일을 편집하기 전에 잠글 수 있습니다.

일반적으로 작업하려는 방식이 아니지만 개발 프로세스에 필요하다면 실행하십시오.

+0

어리 석음 제거 대신 CVS (RCS?)로 돌아 가기? 나쁜 생각 –

0

이런 상황을 방지하려면 어떻게해야합니까? 좋은 워크 플로우?

그냥 합리적인 워크 플로우 :

    는 는 편집에게 자동 장전이 파일을 열
  • 사용 좋은 편집기를 저장하지 않고 WC 를 업데이트하지 마십시오
  • 이 변경된 경우 백그라운드에서 (변경 사항을 잃으면 "자주 저장하고 업데이트하기 전에 저장"이 매우 빠릅니다)