How to erase sensitive information from Subversion?

后端 未结 3 649
梦谈多话
梦谈多话 2021-01-02 10:59

I one of the previous versions of my code, stored in a Subversion repository, there is sensitive information. How to erase it while keeping all other versions?

3条回答
  •  暗喜
    暗喜 (楼主)
    2021-01-02 11:30

    Want you want is a SVN feature commonly called "obliterate", which unfortunately still is not implemented.

    As a workaround, you will have to dump, filter & reimport your repository. See e.g. the entry in the SVN faq How do I completely remove a file from the repository's history?.

    BTW: It's a dupe :-). https://stackoverflow.com/questions/663584/subversion-permanently-remove-incorrectly-checked-in-directory-project

    EDIT:

    The repository is Google Code Project Hosting, so I can't dump and restore the repository =(

    As far as I can see, the only solution in this case is to (ask Google to) reset your respository (see this FAQ, and this blog post). This will completely remove all data from the repository (both current data and history), as if you had just started the repository using svnadmin create.

    Obviously, you'll need a backup of your repository first.

    The best solution probably is:

    • create a backup of your repo using snvsync (this will also back up the history)
    • do the dump/filter/restore dance (see above) on your backup of the repo, to remove the problematic commmits
    • reset the Google repository
    • put back your filtered repo, again using snvsync (see FAQ How do I import my existing source code? )

提交回复
热议问题