How do you revert ONLY directories in an SVN working copy?

前端 未结 4 2171
说谎
说谎 2021-02-12 22:22

I want to revert a directory and all sub-directories in an SVN working copy so they match the repository but I don\'t want to touch any files i

相关标签:
4条回答
  • 2021-02-12 22:39

    On Windows from the command line you could do this:

    for /d /r %i in (*) do svn revert %i
    

    If you call that from a batch file use %%i instead. Please back up first!

    This command is dirty and will go through all directories, even unmodified ones or the ones not under svn. You could use something like this Ruby script to do in a cleaner way:

    `svn st`.split("\n").grep(/^ M\s+(.*)/) { $1 }.find_all { |i| File.directory? i }.each do |i|
      system "svn revert #{i}"
    end
    
    0 讨论(0)
  • 2021-02-12 22:54

    You could use find combined with svn revert:

    find . -type d | grep -v .svn | xargs svn revert
    

    This won't touch any files inside the directories unless you use the -Roption (which is equivalent of --depth=infinity).

    0 讨论(0)
  • 2021-02-12 23:00

    Works on all platforms:

    svn revert . --recursive
    

    (Note that this will revert everything, not just directories.)

    0 讨论(0)
  • 2021-02-12 23:00

    Firstly, make a copy of your working copy somewhere safe. :)

    You can edit properties on svn working copies using commands like this:

    REM Delete all mergeinfo properties recursively
    svn propdel svn:mergeinfo -R
    
    0 讨论(0)
提交回复
热议问题