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

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

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: trunk
    • Fix Version/s: 1.5.0
    • Component/s: libsvn_wc
    • Labels:

      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. 3_script-recurse.txt
          0.5 kB
          Erik Huelsmann
        2. 2_efficient-recursive-post-commit.patch
          5 kB
          Erik Huelsmann
        3. 1_long-post-commit.txt
          0.3 kB
          Subversion Importer

          Activity

            People

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

              Dates

              • Created:
                Updated:
                Resolved: