문제

Per accident I committed twice because I forgot to add two files. Can I remove a specific commit from the log?

screenshot of log

I want to delete commit № 4.

도움이 되었습니까?

해결책

The simple answer is "no", because Subversion doesn't know how to resolve the case when you add a commit, someone else updates their checkout, and then you remove the commit from history. There might or might not be a complex answer involving surgery on the Subversion storage.

다른 팁

  1. AFAICS, you have not delete r4, but merge with r5, yes?
  2. In general, SVN commit history is immutable, as Sii said - and if you haven't rights delete/create repo - you can't do anything.

If you can delete current repo and create new with new history, you can try:

  • svnadmin dump for getting human-readable (barely, I have to say) repository-dump, grok format and edit dump, delete repo, svnadmin load to recreate the repo
  • another idea is (instead of editing dump) another SCM, which has a bridge to SVN (hg+MQ (histedit)+hg-git, f.e, will allow you to get repo and fold/delete changesets). For replacing old repository - see p.2 above

In your case, it's just necessary to modify the commit comment associated with commit #4 to reflect the actual changes you made. You can do that with Subversion by modifying the SVN repository configuration. See the Subversion FAQ.

Why? Let Subversion keep the history - that's what it's for. Check in early and often. There's no need to erase commit #4.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top