2014-09-18 12 views
1

svn 명령 행이나 Tortoise를 사용하여 개정 세트에 대한 패치 파일을 작성하려고합니다. 중요한 일이라면 승 7에 나옵니다.개정 세트 사이에 svn 패치 파일을 만들고 싶습니다.

diff가 필요하지 않습니다. 나는 그걸 할 수있어. 두 가지 버전의 소프트웨어가 있습니다. 상당한 수의 파일이 포함 된 버전 A의 버그가 수정되었습니다. 그 파일을 버전 B로 이식하고 싶습니다. 파일 단위가 아닌 다른 방법으로 손쉽게 사용할 수있는 방법이 없습니다.

파일을 클릭하고 저장할 개정판을 만들 수 있지만 실제로 패치 파일을 만드는 것처럼 폴더 구조는 유지되지 않습니다.

감사합니다, 에릭

+1

패치 파일 (적어도 일반 용어로 허용되는 경우) **은 ** diff의 결과입니다. diff를 수행하여 출력을 파일로 덤프하십시오. 그것이 당신의 패치 파일입니다. 그런 다음'patch' 또는 다른 메커니즘을 사용하여이 패치 (diff)를 다른 파일 세트에 적용하십시오. – alroc

+0

당신의 질문은 힘내와 관련이 있습니까? – Jubobs

답변

0

아마도 Erik의 제안이 효과적 일 것입니다. 나는 Jubob의 제안을 사용하여 필요한 것을 얻을 수있었습니다.

나는 13 개의 변경 집합을 가지고 있는데, 그 중 일부는 이전 버전의 변경 집합 중 일부 또는 전부를 내 코드의 버전 A에서 버전 B로 이관하려는 여러 파일로 변경되었습니다. Tortoise의 Message 필드에서 결함 ID를 검색하여 개정 목록을 생성했습니다. 그런 다음 Tortoise의 각 관련 개정판에 가서 오른쪽 클릭하여 "변경 사항을 통합 된 차이로 표시"했습니다. 이것은 기본적으로 Jubob이 말한 diff를 만들었습니다. 각 diff에서 나는 다른 이름으로 저장하고 각 개정판을 revision1.patch, revision2.patch 등으로 저장했습니다.

Tortoise를 사용하여 각 패치 파일을 한 번에 하나씩 적용하기 시작했지만 지겨워졌습니다. 그래서 나는 각각을 연속적으로 실행하는 배치 파일을 작성했습니다. 배치 파일의 명령은 다음과 같습니다.

patch -p0 -i "C:\mypatchfilelocation\revision1.patch" 

아, 한 가지 더. 각 패치 파일 내부에서 버전 B의 경로와 일치하도록 경로를 변경해야했습니다. 그래서 C, 말에서 변경했다 :/versionA/C를 :/versionB/

-Eric

0

개인적으로 명령 줄 SVN은 diff 갈 것입니다. 이미 다운로드 링크가 없으면 http://subversion.apache.org/packages.html#windows입니다.

다음은 svn diff에 대한 설명서입니다. http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.diff.html입니다. 이처럼 간단 할 수있다 위의

당신의 설명을 감안할 때 : 당신은 거북이 그것을 시도 할 수

svn diff --new="url of A" --old="url of B" > mypatch.patch 

하지만, 먼저는 GnuWin에서 유닉스 도구 세트의 윈도우 포트가 필요합니다. http://sourceforge.net/projects/gnuwin32/

이렇게하면 패치 파일을 만들 수있는 diff 유틸리티가 제공됩니다. TortoiseSVN을 사용하면 외부의 diff 프로그램을 설정할 수는 있지만, 거북이를 편리함으로 사용했기 때문에 얼마나 잘 돌아가는지 확신 할 수 없습니다 (무거운 물건을 들어 올리면서 CLI로 돌아 왔습니다). 그 문서는 http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-diff.html입니다. svn과 함께 외부 diff를 사용할 수도 있습니다. 그 문서는 http://svnbook.red-bean.com/en/1.7/svn.advanced.externaldifftools.html입니다.

+1

이 경우 GnuWin이 필요한 이유를 이해할 수 없습니다. – bahrep

+1

+1 @bahrep. TortoiseSVN은 기본 Win32 바이너리와 함께 번들로 제공되기 때문에 GnuWin32를 가져 와서 잠재적으로 바다를 진흙으로 갈 필요가 없습니다. – alroc

0

열기 저장소 브라우저. 이전 버전으로 이동하십시오. 해당 태그/분기 폴더를 마우스 오른쪽 버튼으로 클릭하고 "비교 표시"를 선택하십시오. 이제 repo 브라우저에 해당 디렉토리가 굵게 표시됩니다.

그런 다음 새 버전을 찾아 해당 태그/분기 폴더를 마우스 오른쪽 단추로 클릭하고 "차이점을 통합 된 diff로 표시"를 선택하면 패치 파일이 생성됩니다.

또는 "비교 URL"을 선택하고 다음 대화 상자에서 모든 변경된 파일을 선택하고 마우스 오른쪽 버튼으로 클릭하고 "선택 항목 내보내기 ..."또는 "선택한 파일 목록 저장"을 선택할 수 있습니다. .. ". "내보내기"는 폴더 구조를 유지하고 "저장 ..."은 모든 파일을 같은 폴더에 저장합니다.