2017-12-27 40 views
1

우리는 프로젝트에서 일하고 있습니다. 갑자기 일부 비협조적인/완고한 사람이 들어 와서 프로젝트를 엉망으로 만들었습니다. 빌드 할 수 없지만 모듈에는 아무런 영향을 미치지 않습니다. 따라서 우리는 마지막으로 알려진 작업 개정판을 사용하는 동안 계속 작업하고 있으며 정상적으로 변경 사항을 확인했습니다. 그런 다음 프로젝트 관리자는 모든 작업을 마지막으로 알려진 작업 개정 (r1810)으로 되 돌리려고 결심했으며 r1824가되었습니다.특정 버전의 변경 사항을 작업/헤드 버전으로 복사/다시 적용하는 방법은 무엇입니까?

이제 1814 년, 1815 년 및 1821 년에 내 개정판을 다시 적용하는 방법은 무엇입니까?

저는 Windows 탐색기에서 Tortoise SVN을 사용하고 Visual Studio에서 AnkhSVN을 사용하고 있습니다. 그래서 SVN에서 작업하는 동안 명령 프롬프트를 사용할 때 아직 초보자라고 말할 수 있습니다.

답변

4

이러한 변경 사항을 체리 선택해야합니다.

the manual를 인용하려면 :

<

...> 용어 체리 피킹. 이 단어는 지점에서 하나의 특정 변경 집합을 선택하여 다른 지점으로 복제하는 행위를 나타냅니다. Cherrypicking은 특정 집합 (반드시 연속적 일 필요는 없음) 집합을 하나의 분기에서 다른 집합으로 복제하는 행위를 참조 할 수도 있습니다. 이는 "다음"연속 범위의 개정판이 자동으로 중복되는보다 일반적인 병합 시나리오와는 대조적입니다.

체리 선택하려면 svn merge -c 1814 ^whatever/branch을 사용하십시오. 다시 the manual을 인용합니다 :

--change (-c) ARG

특정 "변화"를 사용하여 요청 된 작업을 수행합니다. 일반적으로이 옵션은 -r ARG-1:ARG의 구문 설탕입니다. 일부 부속 명령은 개정 번호 의 쉼표로 구분 된 목록 (예 : -c ARG1,ARG2,ARG3)을 허용합니다. 또는 의 경우 대시 (-c ARG1-ARG2과 같이)로 구분 된 두 개의 인수를 으로 제공하여 ARG1ARG2 사이의 수정 범위를 식별 할 수 있습니다. 마지막으로 개정 인수가 무효화되면 암시 적 개정 범위가 역순으로 적용됩니다. -c -45-r 45:44과 같습니다.

업데이트 : OP에 의해 sugested로는, 그들이 개발을위한 단일 지점을 사용하여 을하기 때문에 svn merge -c--ignore-ancestry 명령 줄 옵션을 사용하는 데 필요한.

+0

TortoiseSVN에서 프로젝트를 수행 할 수있는 방법을 찾았으므로 프로젝트를 망칠 수도 있으므로 명령 프롬프트를 사용하는 것을 주저합니다. 우리는 하나의 브랜치에서만 작업하고 있기 때문에, --ignore-ancestry 옵션을 추가해야합니다. – eSPiYa

+0

@eSPiYa 필자는 명령 행을 사용하도록 제안하는 것을 실제로 의미하지는 않았습니다. (다만 그렇게하기를 좋아하기는하지만)이 문제에 관해 이야기 할 때 공통점을 가져야합니다. VC 도구의 경우 명령 줄 인터페이스는 일반적으로 공통점이 있습니다. 역으로 도구를 사용하는 것이 더 어렵고 도구가 다른 경우 도구를 매핑하는 것이 합리적입니다. – kostix

관련 문제