2011-09-10 7 views
10

사고 당 두 건의 파일을 추가하는 것을 잊어 버렸기 때문에 두 번 커밋했습니다. 로그에서 특정 커밋을 제거 할 수 있습니까? 내가 커밋 삭제할 Subversion에서 커밋을 삭제할 수 있습니까?

screenshot of log

№ 4

+2

이 질문을 읽는 것이 좋습니다. http://stackoverflow.com/questions/5566327/delete-all-traces-of-a-svn-commit –

답변

9

간단한 대답은 "아니오"입니다. 왜냐하면 Subversion은 커밋을 추가 할 때 케이스를 해결하는 방법을 모르고 누군가 다른 사람이 체크 아웃을 업데이트 한 다음 커밋을 히스토리에서 제거하기 때문에 "아니오"입니다. Subversion 저장소에서 수술과 관련된 복잡한 대답이있을 수도 있고 아닐 수도 있습니다.

1

이유는 무엇입니까? Subversion으로 하여금 역사를 지켜 보자. 그것이 바로 그 것이다. 일찍 체크인하십시오. 커밋 4를 지울 필요가 없습니다.

+1

Site.cc와 Site.hh를 추가하지 않았으므로 (나는 그 일을 잊어 버렸습니다.) 그러나 저의 커밋 메시지는 제가 말했던 것입니다. –

+3

@WTP : 표준 해결책은 단지 닌자 피스 (ninjafix)를 저지르고 그에 따라 주석을 달고 있습니다. "깔끔한"작업 패키지 당 하나의 커밋 기록을 원한다면 Subversion (또는 Subversion 만)이이를위한 올바른 도구가 아닐 수도 있습니다. – millimoose

+0

프로젝트에서 깨끗한 체크 아웃을했다면 그 두 파일이 나타 납니까? 그렇다면 당신은 그들을 저지른 것입니다. Subversion을 믿으십시오. – duffymo

4
  1. AFAICS, 당신은 예, R5와 R4,하지만 병합을 삭제하지 않은?
  2. Sii가 말했듯이 일반적으로 SVN의 커밋 기록은 불변합니다. 그리고 이 repo를 삭제/생성하지 않으면 아무 것도 할 수 없습니다. 당신은 현재의 repo를 삭제하고 새로운 역사를 가진 새로운 만들 수 있다면

, 당신이 시도 할 수 있습니다 :

  • svnadmin dump을 사람이 읽을 수를 얻기 위해 (거의, 내가 말을해야) 저장소 덤프, grok 수 형식 편집 덤프는 것, svnadmin load 가 REPO 또 다른 아이디어는 SVN (HG + MQ (histedit) + HG-자식, 철에 다리를 가진 다른 SCM을 (대신 편집 덤프의)는
  • 을 다시, REPO 삭제 repo를 가져오고 변경 사항을 축소/삭제할 수 있습니다. 에스). 된 저장소를 교체 - 귀하의 경우에는
1

위의 2 페이지를 참조하십시오, 당신이 만든 실제 변경 사항을 반영하기 위해 # 4 커밋과 관련된 커밋 코멘트를 수정하는 단지 필요가있다. Subversion을 사용하여 SVN 저장소 구성을 수정하면됩니다. Subversion FAQ을 참조하십시오.

관련 문제