문제

몇 가지 프로젝트에 소스 제어를 사용해 보았지만 여전히 이해가 되지 않습니다.이 프로젝트에서는 TortoiseSVN을 사용했으며 한 줄의 개정만 있었습니다.(트렁크, 브랜치 등은 없습니다.) 소스 제어 시스템을 설정하는 데 권장되는 방법이 있다면 무엇입니까?그렇게 설정한 이유와 이점은 무엇입니까?중앙 집중식 소스 제어 시스템과 분산 소스 제어 시스템의 작동 방식 사이의 근본적인 차이점은 무엇입니까?

도움이 되었습니까?

해결책

Eric Sink의 다음 내용을 확인해 보시기 바랍니다.

http://www.ericsink.com/scm/source_control.html

일종의 개정 관리 시스템을 갖추는 것은 프로그래머가 코드 변경 사항을 검토하고 누가 누구에게 무엇을 했는지 이해하는 데 있어 가장 중요한 도구일 것입니다.개인 프로젝트의 경우에도 현재 코드를 이전에 알려진 작업 버전과 비교하여 변경으로 인해 무엇이 잘못되었는지 파악하는 것은 매우 중요합니다.

다른 팁

소스 제어를 소스 코드에 대한 거대한 "실행 취소" 버튼으로 생각하십시오.체크인할 때마다 롤백할 수 있는 지점이 추가됩니다.분기/병합을 사용하지 않더라도 이 기능만으로도 매우 유용할 수 있습니다.

또한 소스 제어의 '권한 있는' 버전을 하나만 보유하면 백업이 훨씬 쉬워집니다.

중앙 집중식 vs.분산...차이점은 실제로 분산에서는 소스 제어의 '권한 있는' 버전이 반드시 하나일 필요는 없다는 것입니다. 하지만 실제로 사람들은 일반적으로 여전히 마스터 트리를 가지고 있습니다.

분산 소스 제어의 가장 큰 장점은 두 가지입니다.

  1. 분산 소스 제어를 사용하면 로컬 시스템에 전체 소스 트리가 있습니다.마치 혼자 있는 것처럼 커밋하고, 브랜치를 만들고, 작업할 수 있으며, 변경 사항을 적용할 준비가 되면 컴퓨터에서 마스터 복사본으로 승격할 수 있습니다."오프라인"으로 작업을 많이 하는 경우 이는 큰 이점이 될 수 있습니다.

  2. 소스 제어 배포자가 되기 위해 누구에게도 허가를 요청할 필요가 없습니다.A 사람이 프로젝트를 실행하고 있지만 B와 C가 변경하고 이러한 변경 사항을 서로 공유하려는 경우 분산 소스 제어를 사용하면 훨씬 쉬워집니다.

기본 사항을 이해하는 데 매우 도움이 되는 두 가지 기사가 있습니다.정보 제공 외에도 Sink의 회사는 단일 사용자에게 무료로 제공되는 Vault라는 훌륭한 소스 제어 제품을 판매합니다(저는 해당 회사와 어떤 방식으로도 제휴하지 않습니다).

http://www.ericsink.com/scm/source_control.html

http://betterexplained.com/articles/a-visual-guide-to-version-control/

www.vault.com의 Vault 정보.

분기하지 않더라도 태그를 사용하여 릴리스를 표시하는 것이 유용할 수 있습니다.

어제 소프트웨어의 새 버전을 출시하고 다음 버전에 대한 주요 변경 작업을 시작했다고 가정해 보세요.사용자가 어제 릴리스의 심각한 버그를 보고하기 위해 전화했습니다.변경 사항으로 인해 전체가 불안정해지기 때문에 문제를 수정하고 개발 트렁크의 변경 사항을 복사할 수는 없습니다.

릴리스에 태그를 붙인 경우 해당 릴리스의 작업 복사본을 확인하고 이를 사용하여 버그를 수정할 수 있습니다.

그런 다음 태그에 분기를 생성하고 버그 수정을 확인할 수 있습니다.이렇게 하면 트렁크를 계속 업그레이드하는 동안 해당 릴리스에서 더 많은 버그를 수정할 수 있습니다.또한 해당 수정 사항을 트렁크에 병합하여 다음 릴리스에 표시할 수도 있습니다.

Subversion을 설정하는 일반적인 표준은 저장소 루트 아래에 세 개의 폴더를 두는 것입니다.트렁크, 가지 및 태그.트렁크 폴더에는 현재 개발의 "주요" 라인이 들어 있습니다.많은 상점과 상황에서 이것이 그들이 사용하는 전부입니다...단지 단일 작업 코드 저장소일 뿐입니다.

태그 폴더는 한 단계 더 나아가 특정 시점에 코드를 "체크포인트"할 수 있게 해줍니다.예를 들어 새 빌드를 출시할 때나 때로는 단순히 만들다 새 빌드를 만들려면 이 폴더에 복사본을 "태그"합니다.이를 통해 해당 시점에 코드가 어떻게 생겼는지 정확히 알 수 있습니다.

분기 폴더에는 특별한 상황에 필요할 수 있는 다양한 종류의 분기가 들어 있습니다.때때로 브랜치는 안정되기까지 오랜 시간이 걸릴 수 있는 실험적 기능이나 기능을 작업하는 장소입니다(따라서 아직 메인 라인에 도입하고 싶지는 않습니다).다른 경우에는 분기가 향후 릴리스를 위한 변경 사항이 포함된 기본 코드 줄과 독립적으로 편집 및 배포할 수 있는 코드의 "프로덕션" 복사본을 나타낼 수 있습니다.

어쨌든 이것은 시스템을 설정하는 방법의 한 측면일 뿐이지만 이 구조에 대해 어느 정도 생각해 보는 것이 중요하다고 생각합니다.

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