svn cp 또는 svn mv를 사용할 때 패치가 적용되는 svn diff 생성 파일을 만드는 방법은 무엇입니까?
시나리오는 다음과 같습니다.
- svn cp 또는 mv 일부 파일
- 그 파일을 수정
- svn diff> mypatch
다른 컴퓨터에서 (동일한 작업 복사본이지만 변경 사항 없음) :
- mypatch를 적용 해보십시오.
- 실패-> 존재하지 않는 파일을 수정하려고합니다.
이 경우 svn diff에서 패치 적용 가능한 패치를 생성하거나 svn diff에서 생성 한 패치를 깔끔하게 적용하려면 어떻게해야합니까? 커밋 할 수 없습니다. 저는 mergeinfo를 보존하고 싶습니다 (분명한 해결 방법은 이전 파일에 연결하지 않고 파일을 완전히 새로운 파일로 추가하는 것이므로).
Subversion을 사용하면 사용할 diff 바이너리와 전달할 매개 변수를 지정할 수 있습니다. svn diff에 대한 매뉴얼 을 참조하십시오 .
svn diff에서 일반 패치 파일을 생성하고 싶으므로 svn diff가 일반 diff처럼 보이기를 원할 것입니다. 이 시도:
svn diff --diff-cmd /usr/bin/diff -x "-i -b" > mypatch
...
patch -p0 < mypatch
개념의 증거:
echo "newline" >> README.txt
svn diff --diff-cmd /usr/bin/diff -x "-i -b" > mypatch
cp README.txt README.txt.patched
svn revert README.txt
patch -p0 < mypatch
diff README.txt README.txt.patched
패치 후 두 파일에 차이가 없습니다.
패치에서 svn 속성도 제거하려면 옵션이 있습니다.
svn diff --patch-compatible > mypatch.diff
svn help diff
말한다 :
--patch-compatible : generate diff suitable for generic third-party
patch tools; currently the same as
--show-copies-as-adds --ignore-properties
이 방법으로 만든 패치는 좋은 오래된 일반 patch
유틸리티 와 호환되어야 합니다.
svn diff 웹 페이지 --show-copies-as-adds
에 언급되고 svn 옵션 페이지 에 설명 된 옵션 을 사용해 보셨습니까 ?.
특정 시나리오를 이해하지 못한 상태에서이 작업을 수행하려는 이유를 식별하기 위해 열심히 노력하고 있습니다. 다른 사용자 / 애플리케이션에 영향을주지 않도록 격리 된 환경에서 제어 된 변경을 수행하려는 느낌을받습니다.
이 문제를 다음과 같이 해결할 수 있습니까?
- 코드 변경을위한 브랜치 생성
- 지점에서 복사 / 이동 및 변경 수행
- 상대방이이 새 코드 분기로 전환하고이 분기를 계속 공유하도록합니다.
두 가지 모두 변경 사항에 동의하면 --reintegrate 인수와 rm 분기를 사용하여 트렁크로 다시 병합됩니까?
* 병합 정보 유지 * 버전 관리의 복사 / 이동 및 변경 사항 식별 * 다른 사용자로부터 변경 사항 격리 * 변경 사항을 더 추가하고 업데이트 할 수 있으므로 2 단계에서 불완전한 변경 사항이 문제가되는 것을 방지합니다.
'programing tip' 카테고리의 다른 글
Google 크롬 개발자 도구는 매우 느리게 작동합니다. (0) | 2020.11.21 |
---|---|
C # 용으로 작성된 퍼지 검색 또는 문자열 유사성 함수 라이브러리가 있습니까? (0) | 2020.11.21 |
Android 프레임 워크? (0) | 2020.11.21 |
거의 정렬 된 배열 정렬 (k 이하로 잘못 배치 된 요소) (0) | 2020.11.21 |
작성 및 업데이트시 MySQL CURRENT_TIMESTAMP (0) | 2020.11.21 |