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

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

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments


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


      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


        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



            • Assignee:
              subversion-importer Subversion Importer


              • Created:

                Issue deployment