How to “undelete” a deleted folder in Subversion / TortoiseSVN?

微笑、不失礼 提交于 2019-12-17 21:43:10

问题


We have accidentally deleted the 'tags' folder from our Subversion repository where we only intended to delete one specific tag. What is the easiest way to get the 'tags' folder back?

We use TortoiseSVN as our client and I thought that when I go to the repo browser and show log, there will be something like "revert changes from this revision" similarly to what you can see in a similar dialog on your working copy. But there is no such command there...


回答1:


Just copy the deleted folder back from an earlier revision.

In the Repository Browser, click the button labeled HEAD (at the top-right corner) to show to a revision there your folder still exists, then right-click that folder and select "Copy to..." and enter the path there you want the folder to be re-created (probably the same path that is already in the text box).




回答2:


for the command line enthusiasts:

  • first find the revision number where your delete happened:

    svn log -v http://svnserver/path/to/folderContainingDeletedFolder
    

say you find that the directory was deleted in revision 999 (btw: you might find it easier to find the revision number with the svn repo browser)

  • copy the folder from revision minus 1

    svn copy http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder@998 http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder -m "undeleted folder"
    

voilà you're done!

in your case this might be:

    svn copy http://svnserver/project/tags@998 http://svnserver/project/tags -m "undeleted folder"



回答3:


Most of these answers will work to a degree but the correct answer is Daniel's. Do a reverse merge. That way you keep version history.

svn merge -r R1:R2

where R1 is the revision that you're at, and R2 is the revision that contains the deleted file/folder.




回答4:


You will need to do a reverse merge.

For details on how to do it (and pretty much anything else you would ever want or need to do with SVN), the official book is available online.




回答5:


Following on from raudi's answer which worked for me after this revision.

Some svn clients might need the revision number specified using the -r revision parameter instead of using @ after the folder as follows:

svn copy svn://svnserver/project/tags svn://svnserver/project/tags **-r 998** -m "undeleted folder"



回答6:


Goto Repository Browser of your repository, right-click on the parent folder where your deleted folder existed. Now, Show Log of the parent folder, and select the previous revision where you committed the delete operation. You'll have a list and right click on the folder from the revision info and select Update to this Revision.

You are done



来源:https://stackoverflow.com/questions/2265369/how-to-undelete-a-deleted-folder-in-subversion-tortoisesvn

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!