2010-03-09 3 views
4

어떻게해야할지 모르겠습니다. 방금 실제 프로젝트에서 SVN을 사용하기 시작했습니다. 나는 모든 것이 올바르게 작동한다. 그러나, 나는 그것을 사용하는 유일한 사람이다. 이제 저는 두 번째 사람을 그 과정에 소개하려고합니다.SVN 사용 다른 개발자가 나를 덮어 쓰지 않게하려면 어떻게해야합니까?

내 컴퓨터에 tortoisesvn을 다운로드하고 기본 트렁크를 체크 아웃했습니다. 파일을 편집하고 새 파일을 커밋 할 수 있습니다. 모든 것이 작동합니다.

이제 제 2의 사람이 해보고 싶습니다. 뭔가하는 동안. 일반적으로 그는 다른 파일을 작업 할 수도 있습니다. 우리는 커밋 된 파일을 테스트 서버에 내보내는 것에 동의 할 것입니다. (어쨌든 생각하겠습니다.)하지만 같은 파일을 작업한다면 어떻게 될까요? 예를 들어, 설정 파일. 어쩌면 우리 둘 다 그것을 바꿀 필요가 있습니다. 다른 사람이 그것을 변경하는 동안 나는 어떻게 다른 사람을 그 안에서 지킬 수 있습니까? 우리 중 누군가가 새로운 업데이트를 저지르는 경우, 우리 중 하나가 방금 넣은 것을 지울 것입니다. 여기서 무엇을해야할지 모르겠습니다.

+0

Subversion은 동시 버전 제어 시스템입니다. 두 사람 모두 필요에 따라 작업하고 커밋하고 충돌이 발생하면 병합합니다. –

+0

SVN은 디자인에 내재 된 중요한 보증을 제공합니다. 즉, 지역 변경 사항을 절대로 폐기하지 않습니다. 자동으로 병합되거나 충돌하는 것으로 표시됩니다. 물론,이 보장을 무효화하는 SVN의 복사 명령 대신 OS 복사 명령을 사용하여 폴더를 대처하는 것과 같은 끔찍한 일을 할 수는 있습니다 ... 그러나 의도대로 사용하면 어떤 경우에도 변경 사항이 손실되지 않습니다. – rmeador

답변

6

아니요, 아무 것도 지우지 않습니다.

두 사람이 파일을 변경하고 커밋하려고하면 커밋 두 번째 사람이 파일을 말하는 오류 메시지가 자신의 마지막 업데이트 이후 변경되었습니다 얻을 것이다.

그러면 두 번째 사람이 업데이트를 수행합니다. SVN이 그렇게 할 수 있다면 SVN을 병합하여 두 사람의 변경 사항을 보존합니다. 수없는 경우 (대개 파일의 같은 위치에서 무언가를 변경하는 경우에만 해당), 이는 사용자에게 알려주며 충돌을 처리해야합니다.

+0

하나의 팁, 자주 커밋을 시도하십시오.따라서 갈등의 기회와 심각성을 줄입니다. – NomeN

+3

예,하지만 너무 자주는 아닙니다. 일을하고있는 지점에 도달 할 때까지 기다렸다가 변경 사항이 "준비되었습니다." 10 분마다 커밋하기를 원하지 않으며 6 주를 기다리는 것을 원하지 않습니다. 어림짐작은 하나의 작업 단위, 즉 하나의 새로운 기능이나 하나의 버그 수정을 저지르는 것입니다. –

9

SVN을 사용하면 파일을 가져 와서 "이것은 내 것이고 만지지 마십시오."라고하는 것이 목표입니다. 목표는 둘 다 끝나면 변경 사항을 병합하는 것입니다. 두 사람이 진정으로 호환되지 않는 변경을하는 경우는 적으며 개발자는 파일 잠금을 먼저받는 사람과 경쟁하는 대신 상대방을 병합하는 가장 좋은 방법을 함께 모을 필요가 있습니다.

항상 커밋하기 전에 업데이트하여 변경 사항을 병합합니다.

+0

하지만 내가 업데이트를 치면 내가 방금 한 일을 지울 수 없습니까? 나는 업데이 트가 내 서버에 무엇과 함께 dev에 상자에 내 파일을 업데이 트 생각. – johnny

+0

지우지 않으므로 해결해야 할 충돌이 발생합니다. –

+2

예, 파일을 업데이트하지만 방금 한 내용은 지우지 않습니다. 변경 사항이 겹쳐지지 않으면 SVN은 변경 사항을 자동으로 복사본에 넣습니다. 변경 사항이 겹치는 경우이를 충돌이라고하며 SVN은 텍스트와 다른 텍스트를 같은 파일에 넣습니다. 수동으로 "수정"해야합니다. –

2

서브 버전 (어떤 점잖은 SCM 실제로) 만 업데이트를 수행 한 후 커밋 할 수 있기 때문에이 문제가 발생할 수 없습니다. Subversion이 변경 사항을 병합 할 수 없으면 충돌이 발생하여 수동으로 해결해야합니다.

2

드문 경우이지만 SVN을 사용해야합니다. 자세한 내용은 SVN 책의 잠금 섹션을 확인하십시오.

+0

http://svnbook.red-bean.com/nightly/en/svn.advanced.locking.html –

관련 문제