2009-03-20 6 views
3

직장에서 우리는 모든 것을 최신 상태로 유지하기 위해 일반적으로 웹 응용 프로그램 용으로 내보내는 매우 큰 코드 기반을 가지고 있습니다. 우리가 테스트 코드를 개발할 경우 트렁크와 충돌하지 않도록하기 위해 지점에서 항상 수행되어 예기치 않게 버그가 공개 될 수 있습니다.SVN Diff Export

제 질문은 SVN 내보내기를 수행 할 수 있는지 여부 뿐이지 만 차이점 만 사용할 수 있는지 여부입니다. 그렇지 않으면 전체 저장소를 다시 내 보내야하는데 다소 시간이 걸립니다. 예를 들어 "마지막으로 내 보낸"플래그가 있다고 가정하면 마지막 업데이트 날짜를 파일과 비교하고 마지막 내보내기 날짜보다 늦은 날짜 만 내 보냅니다.

라이브/저장소를 동기화 상태로 유지하기 위해 전체 내보내기가 수행되는 인트라/인트라넷 시스템에서는 매우 편리합니다. 어떤 아이디어?

EDIT - 패치를 보면 이미 repo에있는 파일에 대한 패치를 만드는 방법을 알 수 없습니다. 이미 커밋 된 파일이 있습니다. 그래서 저는 x 개정판에서 머리 부분으로 패치를 작성하여 모든 차이점을 적용하기 위해 프로젝트의 루트에 적용하려고합니다. 그러나 그것이 가능성이 있는지 나는 확신하지 못한다.

+0

그래서 넓게, 패치를 말하기? –

+0

나는 바보 같은 질문을하기 전에 패치를 사용한 적이 한번도 없다. – Kezzer

답변

7

우리는 svn diff를 사용하여 패치 파일을 생성 한 다음 프로덕션 시스템과 거의 비슷한 것을 수행 한 다음 일반 오래된 'patch'명령을 사용하여 해당 패치 파일을 적용했습니다. svn diff는 리비전 번호를 받아들이므로 특정 세트 이후의 모든 것을 포함하는 패치 파일을 생성 할 수 있습니다. 파일의 대부분은 우리가 너무 이런 식으로 뭔가를 필요로 진 :-)에게

+0

다행히도 바이너리 파일은 거의 없다. 나는 패치 파일이 변경되지 않은 파일을 다룰 때 아무런 문제가 없다고 가정하고 있습니다. 단지 패치 파일을 더 크게 만들 것입니다, 맞습니까? – Kezzer

+0

패치 파일은 이전 버전의 파일을 새 버전처럼 보이게하기위한 일종의 레시피입니다. 변경되지 않은 파일은 패치에도 포함되어 있지 않으므로 문제가 없습니다. –

1

을 경우

물론, 이것은 잘 작동하지 않을 수 있습니다. 그래서 나는 작은 자바 도구를 썼다.

는 사람에게 유용 희망 : github svn-diff-export