버전 관리를 사용하면 어떤 가치가 있습니까?


19

버전 제어 (현재 SVN 사용)를 처음 사용하지만 이것이 개발자에게 어떻게 도움이되는지 이해하지 못합니다. 개발 환경에서 유용한 버전 제어 기능은 무엇입니까?


4
Eric Sink의 뛰어난 소스 제어 HOWTO 시리즈 : ericsink.com/scm/source_control.html을 읽으십시오 . 나머지는 여기에 대답하거나 토론 할 것이 많지 않습니다.
Deckard

4
소스 제어는 필요할 때까지 무의미 해 보이는 것 중 하나입니다. 그렇다면 당신은 그것 없이는 할 수 없다는 것을 알고 있습니다. 불행히도 그때까지는 너무 늦었습니다. 소스 컨트롤이 훨씬 더 유용 하다는 것을 제외하고는 일종의 홍수 보험과 같습니다 .
Rein Henrichs

2
@rahmanisback 당신은 File | New Project를 한 직후에 그것을 원합니다 ... 프로젝트에> 1 명의 개발자가있는 즉시 필요합니다 (제 표준 라인은> 0 개발자입니다.
Murph

8
버전 제어없이 작업하는 것은 에세이를 입력하는 데 사용하는 워드 프로세서에서 "실행 취소"명령을 제거하거나 책상에서 모든 지우개 및 수정액을 제거하는 것과 같습니다.
rwong 님

2
@rahmanisback 실수로 파일을 삭제하거나 다른 방법으로 데이터를 잃는 즉시. @ rwong 좋은 비유.
Rein Henrichs

답변:


21

VisualSVN 및 TortoiseSVN은 SVN 서버의 UI 클라이언트 일뿐입니다. SVN 서버는 소스 / 버전 제어 시스템입니다. 버전 관리 시스템은 소스 코드의 버전을 저장하기 때문에 실제 개발의 핵심 자산입니다. 버전 관리 시스템을 사용하는 경우 소스 코드의 로컬 사본 만 보관하십시오. 기본 사본은 버전 제어 시스템에 저장되며 시스템 변경 사항을 커밋합니다.

SVN은 다음을 허용합니다.

  • 중앙 저장소를 통해 전체 팀간에 소스 코드를 쉽게 공유
  • 프로젝트와 관련된 소스 코드 및 기타 리소스 파일 백업
  • 소스 코드가 어떻게 바뀌 었는지 기록 유지
  • 기록에 보관 된 모든 버전으로 되돌릴 수 있습니다
  • 당신은 버전 사이의 변화를 비교할 수 있습니다
  • 누가 변경했는지 볼 수 있습니다
  • 다른 사람이 파일을 작업 할 수 없도록 독점 액세스를 위해 파일을 잠글 수 있습니다
  • 누가 소스 코드 파일을 작업하고 있는지 또는 누가 파일을 잠 갔는지 볼 수 있습니다
  • 동일한 파일에서 병렬 작업을 수행하는 경우 변경 사항을 병합 할 수 있습니다
  • 커밋 된 변경과 관련된 주석을 볼 수 있습니다
  • 추가 도구를 사용하면 커밋 된 변경 사항을 작업과 연결할 수 있습니다
  • 예를 들어 생산 릴리스와 같은 버전을 쉽게 찾을 수 있도록 레이블 / 태그를 지정할 수 있습니다.
  • 당신은 소스 코드를 분기 할 수 있습니다-하나의 분기를 주요 것으로 간주 할 수있는 병렬 버전을 생성하고 다른 하나는 특별한 기능을 테스트하거나 새로운 제품 버전의 개발을 계속하는 데 현재 생산 버전에 대한 수정 사항이 기본에 고정되어 있습니다 분기
  • 지점 간 변경 사항을 병합 할 수 있습니다
  • 기타

VisualSVN은 Visual Studio의 확장으로 Visual Studio UI에서 직접 SVN 저장소를 사용할 수 있습니다. TortoiseSVN은 Windows 탐색기의 확장으로 폴더와 파일을 탐색 할 때 SVN 저장소를 직접 사용할 수 있습니다.


+1. Haaa .. 10 년 이상 VCS를 사용한 후에는 '왜'에 대답하기가 정말 어려워요. 나는 그것이 너무나 명백하다는 것을 의미한다. 그러나 당신이 한 방식을 정말로 '왜'분명히 표현하기 란 정말 어렵다! 좋은 대답입니다.
Dipan Mehta

AnkhSVN은 SVN을 Visual Studio에 통합하는 킬러 작업을한다고 생각합니다.
사울 델가도

6

버전 관리는 여러 가지를 제공합니다.

  • 이전 시점의 상태를 볼 수 있도록 소프트웨어를 보관하십시오. 버그가 발생한 위치를 찾는 데 매우 유용합니다.
  • 동일한 프로젝트의 여러 개발자가 작업을 공유하고 조정하면서 서로의 작업을 덮어 쓰지 않도록 할 수 있습니다.
  • 특히 보호되고 백업 된 중앙 서버를 통해 개인 및 비즈니스 연속성을 지원합니다.

어설프게하는 것 이상의 소프트웨어 개발 작업에있어 최소한의 일이 발생합니다.

나는 항상 버전 관리 시스템을 사용하는 모든 사람에게 항상 문제를 일으키는 것은 아니라고 경고합니다. 그들은 그들이 되돌아 볼 때 그 문제로 실행하는 것입니다 그들은 시스템을 사용하는 경우는 일어나지 않았을 것 알고 있습니다.


0

가장 생산적인 개발자는 혼자입니다. 독방 개발자는 다른 사람과의 조정에 대해 걱정할 필요가 없습니다. 그러나 프로젝트가 복수가 되 자마자 오버 헤드가 있습니다. 또한 팀에 추가 된 모든 개발자에 대해 오버 헤드가 악화됩니다. 이 오버 헤드를 관리하고 영향을 최소화하는 것이 VCS의 역할입니다.

http://www.ericsink.com/vcbe/html/dvcs_private_workspace.html


8
고독한 개발자라도 버전 관리가 필요합니다. 이 인용문에서 알 수 있듯이 VCS는 단순히 "오버 헤드 관리"가 아닙니다.
alroc

5
고독한 개발자조차도 일주일 전에 잘못했음을 깨닫고 이전 코드를 다시 얻고 싶어합니다. 고독한 개발자조차도 원래의 코드베이스를 위험에 빠뜨리지 않으면 서 크고 복잡한 리 팩터 세트를 시도 할 수 있습니다.
로봇 고 르트

버전 관리의 "백업"및 "복원"측면이 가장 분명하다고 생각하지만, 버전 제어가 누군가가 실제로 그 가치를 이해하는 협업의 오버 헤드를 줄이는 방법을 깨닫기 전까지는 그렇지 않습니다.
제이스 브라우닝
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.