Uploaded image for project: 'Subversion'
  1. Subversion
  2. SVN-1284

performance bad in "svn mv" with whole directories

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • all
    • 1.7.0
    • libsvn_wc
    • Linux

    Description

      I tried to do a "svn mv" of a directory into another newly created
      directory ("svn mkdir").
      This directory has several thousand files.
      
      This operation took MUCH too long, as *for every file* the entries is
      newly written, stat()ed, chmod()ed, rename()d and again chmod()ed.
      
      Please see trace:
      
      open("trunk/drive-c ... /.svn/tmp/entries", O_WRONLY|O_CREAT, 0666) = 3
      write(3, "<?xml version=\"1.0\" encoding=\"ut"..., 1352891) = 1352891
      close(3)                                = 0
      stat64("trunk/drive-c ... /.svn/entries", {st_mode=S_IFREG|0444,
      st_size=1352874, ...}) = 0
      chmod("trunk/drive-c ... /.svn/entries", 0666) = 0
      rename("trunk/drive-c ... /.svn/entries") = 0
      stat64("trunk/drive-c ... /.svn/entries", {st_mode=S_IFREG|0644,
      st_size=1352891, ...}) = 0
      chmod("trunk/drive-c ... /.svn/entries", 0444) = 0
      lstat64("trunk/drive-c ... /.svn/lock", {st_mode=S_IFREG|0644,
      st_size=0, ...}) = 0
      
      As svn at this point *only* operates on this file (the directory was
      already moved) this could surely be optimized :-)
      
      Nonetheless - thank you for this product.
      
      
      Regards,
      
      P.Marek
      

      Original issue reported by pmarek

      Attachments

        1. 1_test.sh
          1 kB
          Hyrum Kurt Wright

        Issue Links

          Activity

            People

              Unassigned Unassigned
              subversion-importer Subversion Importer
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: