Can I delete a commit in Subversion?

后端 未结 4 1769
忘了有多久
忘了有多久 2021-01-04 06:33

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

\

相关标签:
4条回答
  • 2021-01-04 06:52

    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.

    0 讨论(0)
  • 2021-01-04 06:53

    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.

    0 讨论(0)
  • 2021-01-04 07:09

    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.

    0 讨论(0)
  • 2021-01-04 07:15
    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
    0 讨论(0)
提交回复
热议问题