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

Client-side post-commit processing tends towards O(N^2)

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • trunk
    • 1.5.0
    • libsvn_wc

    Description

      Currently, we perform post-commit processing for every commitable item individually.  That means that if 
      you commit a large number of items in the same directory, then for each item, we create a log file for that 
      item, update the BASE files, remove the log file, and rewrite the whole of entries.  The entries writing alone 
      is O(N^2), and can take up an appreciable amount of time with a large number of items.
      
      To improve this, libsvn_wc needs a version of svn_wc_process_committed4() that can accept an array of 
      files (within the same wc directory) and svn_client_commit4() needs to learn to batch up items for it, rather 
      than calling it once for each committable.
      
      Alternatively, we could have some way to defer the actual log-running/entries-writing part of the wc 
      update until we've written out all the log entries, then do that once for each directory.
      

      Original issue reported by malcolm

      Attachments

        1. 1_long-post-commit.txt
          0.3 kB
          Subversion Importer
        2. 2_efficient-recursive-post-commit.patch
          5 kB
          Erik Huelsmann
        3. 3_script-recurse.txt
          0.5 kB
          Erik Huelsmann

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: