2010-01-20 8 views
9

이전 날짜/시간을 가진 SVN 저장소에 커밋하는 방법 또는 커밋 된 시간/날짜를 편집하는 방법이 있습니까?이전 날짜/시간으로 SVN 커밋

나는 SVN을 사용하기 시작하기 전에 아주 오래된 방법으로 아카이브 된 소스를 가지고 있으며 SVN 기록을 실제 날짜와 일치하도록 SVN에 넣고 가능하면 원본 날짜를 유지하려고합니다. 여기서 파일이 편집되었습니다.

SVN 서버 시간을 조작하는 것은 명백한 옵션이지만 여기서는 사용할 수 없습니다. SVN 서버가 제어 할 수 없기 때문입니다.

+0

기존 리포지토리 또는 새로운 리포지토리입니까? 저장소에있는 디렉토리 및/또는 파일을 덮어 쓰시겠습니까? –

+0

기존 저장소. 초기 커밋에서 파일을 덮어 쓰지 만 나중에 일부는 덮어 씁니다. 내가 sources-1995-05.zip, sources-1995-08.zip, sources-1996-01.zip과 같은 아카이브 파일을 잔뜩 가지고 있고 SVN에 자신의 콘텐츠를 전송하고 1995/08/xx와 같은 날짜를 갖고 싶습니다. 및 1996/01/xx와 각각의 커밋을 비교합니다. – Suma

+0

관련 : http://stackoverflow.com/questions/633353/change-the-timestamp-of-a-svn-revision –

답변

1

나는 결국 한 무엇을했다 :

  • 는 각각,
  • 아카이브를 하나씩 가지고 새로운 "로컬"SVN 저장소를 만들 내 워크 스테이션
  • 에 VisualSVN 서버를 설치 :
    • 작업 복사본에서 .svn 파일 이외의 파일을 모두 삭제하여 삭제 된 파일이 남아 있지 않은지 확인하십시오.
    • 아카이브를 작업 영역으로 압축 해제하십시오. 아카이브
    • 추가하고 필요에 따라 삭제하고
  • 한 번 수행 로컬 저장소에 커밋의 최신 g 복사
  • 변경 시스템 날짜, 사용 svnadmin dump 주요 SVN 서버로드에있는 저장소
  • 덤프 사용 svnadmin load

위의 단계는 pre-revprop-change 후크를 설치하는 것보다 나에게 쉬워 보입니다. (우리가 현재 가지고있는 것은 로그 메시지 편집 만 가능합니다.)

참고 : 시스템 날짜를 변경하는 대신로드하기 전에 덤프 파일의 날짜를 편집 할 수도 있습니다.

+1

편집기가 바이너리 정보를 보존하고 이진 정보를 변경하지 않는 한 덤프 파일을 편집 할 수 있습니다. 줄 끝. – Dingo

1

각 개정판의 속성은 svn:date입니다. 버전없는 속성을 수정할 수있는 권한이 있으면 해당 값을 변경할 수 있습니다.

14

날짜와 시간은 "special" revision property, svn:date입니다. 당신은 너무로 수정할 수 있습니다

svn propedit svn:date --revprop -r 12345 

또는 : (예를 들어, 12345 위)

svn propset svn:date --revprop -r 12345 2009-02-12T00:44:04.921324Z 

개정을 또한 최신 버전을 의미 HEAD 수 있습니다.

날짜는 ISO 8601 형식으로 지정됩니다.

svn:date을 수정하려면 적절한 pre-revprop-change 훅 (저장소의 hook 디렉토리에 있음)을 설정하려면 저장소가 필요합니다. SVN 리포지토리와 함께 제공되는 템플릿이 도움이됩니다.