문제

이것은 순진한 질문 일 수 있지만, 객체에서 묻는 바와 같이, 부서진 코드를 생성하지 않고 분기를 메인 트렁크로 다시 병합하기 위해 소프트웨어 버전을 사용하는 실제 방법은 무엇입니까?

다음은 빠른 예입니다. 저는 "Hello World Power Edition"프로그램의 메인 트렁크에서 지점을 만듭니다. Klingon에 대한 지원을 추가합니다. 이것은 Function PrinthellowOrld ()가 작동하는 방식을 변화시키는 근본적인 변화입니다.

한편, "hello world"를 "Helo World"로 작성하게하는 버그 #749로 인해 메인 트렁크의 FrinthellowOrld () 함수가 변경되었습니다.

자, 여기에서 볼 수있는 문제는 다음과 같습니다. 기본 트렁크로 분기로 병합 할 때 sayhello.py 파일 내에서 함수 프린트 폴리를 (printhelloworld)의 충돌을 실험합니다.

VCS 프로그램은 내 지점에서 Klingon 지원을 추가하는 방법을 어떻게 알 수 있습니까? 그리고 메인 트렁크에 버그 수정을 유지 하시겠습니까? 이를 피하기위한 인간 중심 또는 소프트웨어 중심 전략은 무엇입니까?

미리 감사드립니다.

도움이 되었습니까?

해결책

VCS 프로그램은 내 지점에서 Klingon 지원을 추가하고 메인 트렁크에서 버그 수정을 유지하는 방법을 어떻게 알 수 있습니까?

VCS는 소스 코드의 시맨틱에 대해서는 아무것도 알지 못합니다. 텍스트/이진 파일로 간주됩니다. VCS 시스템 사용 차이 / 병합 귀하와 현재 파일 버전 간의 충돌을 감지하는 알고리즘. 이러한 변화의 의미를 알고 있기 때문에 그러한 갈등을 해결하는 것은 귀하의 책임입니다. SVN과 같은 일부 VCS는 트렁크에서 최신 변경 사항으로 작업 사본을 업데이트해야합니다.

아무것도 깨지 않았고 이전 버그 수정이 깨지지 않았는지 확인하려면 사용해야합니다. 코드 리뷰, 단위 테스트 그리고 다른 관행. 지속적인 통합 소프트웨어를 건강하게 유지하는 좋은 방법입니다.

다른 팁

이 경우 버전 제어 시스템은 자동으로 병합 할 수 없으므로 손으로 병합을 수행해야합니다. 좋은 단위 테스트는 기능이 손실되지 않도록하는 데 도움이됩니다.

지점을 트렁크로 다시 병합하기 전에 버전 제어 시스템은 분기 된 이후 트렁크의 변경 사항으로 작업 사본을 업데이트합니다. 이 업데이트 없이는 합병 할 수 없습니다. 이를 통해 다음 커밋의 트렁크에서 모든 버그 수정을 얻을 수 있습니다.

지점에서 작업하기위한 좋은 전략은 트렁크를 매우 정기적으로 지점으로 포트하는 것입니다. 이렇게하면 트렁크와도 별도로 표류하지 않아도 결국 트렁크로 합병 할 때 문제가 발생합니다.

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