2010-01-19 4 views
8

Git & Git-Svn을 1 년 동안 사용해 왔고 어떤 식 으로든 dcommit 후에 커밋 내역이 보존되지만 타임 스탬프는 보존되지 않습니다. . 즉, 각 자식 커밋 항목은 유지되지만 Svn에서 각 커밋에는 동일한 타임 스탬프 (다소 차이가 있음)가 있습니다.Git-Svn : dcommit 이후에 커밋 타임 스탬프 유지

내가 한동안 또는 하루 동안 원격으로 작업하고 그 시간 동안 여러 번 커밋을하는 것은 드문 일이 아닙니다. 이상적으로, 내 svn 로그에 대해 커밋 (다른 커밋과 함께)이 svn에 dcommitted 인 시간보다 오히려 그 커밋을 git로 만든 시간을 반영하고 싶습니다. 그게 가능하니?

감사합니다.

답변

8

git-svn이 Subversion 커밋을 생성 할 때 일반적으로 Subversion을 사용하여 커밋을 생성하는 것과 거의 동일합니다. 이것은 Subversion 타임 스탬프가 git svn dcommit 작업이 실행되는 시간이됨을 의미합니다.

커밋 타임 스탬프를 변경할 수있는 경우에도이 작업은 원하는 작업이 아닐 수 있습니다. 일반적으로 사람들은 Subversion의 커밋 타임 스탬프가 시간순으로 증가하는 순서를 따르고 저장소에 "backdated"타임 스탬프가 있는지 혼란 스러울 수 있습니다.

+0

충분합니다. 이 경우 프로젝트에서 혼자 일하게되었지만 팀 상황에서 매우 혼란 스러울 것입니다. 특히 각 git commit은 리베이스 (rebase)를 통해 이전의 모든 변경 사항에 적용됩니다. –

1

SubGit을 서버에서 사용할 수 있습니다. 가능한 한 Git 커밋 날짜를 유지하려고합니다 (불행히도 SVN 저장소에는 날짜가 시간순으로 가야한다는 내부 제한이 있습니다. 그렇지 않으면 일부 이진 검색 알고리즘이 올바르게 작동하지 않습니다). 동일한 커밋 트랜잭션 내에 svn : date 을 수정하는 다른 해결책이 없음을 알고 있습니다. Git-svn은 svn : date 수정을 허용하지 않는 libsvn SVN 엔진을 사용합니다 (개정이 생성되고 그 번호를 알고있을 때만).