You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2010/03/23 19:53:25 UTC

svn commit: r926727 - /subversion/trunk/notes/wc-ng/use-of-tmp-text-base-path

Author: julianfoad
Date: Tue Mar 23 18:53:25 2010
New Revision: 926727

URL: http://svn.apache.org/viewvc?rev=926727&view=rev
Log:
* notes/wc-ng/use-of-tmp-text-base-path: Update for r926637.

Modified:
    subversion/trunk/notes/wc-ng/use-of-tmp-text-base-path

Modified: subversion/trunk/notes/wc-ng/use-of-tmp-text-base-path
URL: http://svn.apache.org/viewvc/subversion/trunk/notes/wc-ng/use-of-tmp-text-base-path?rev=926727&r1=926726&r2=926727&view=diff
==============================================================================
--- subversion/trunk/notes/wc-ng/use-of-tmp-text-base-path (original)
+++ subversion/trunk/notes/wc-ng/use-of-tmp-text-base-path Tue Mar 23 18:53:25 2010
@@ -1,16 +1,16 @@
 
-Call graphs of the use of the WC-1 temporary text base path, as of r924197.
+Call graphs of the use of the WC-1 temporary text base path, as of r926637.
 
 This is to help us eliminate the use of this path and replace it with a more
 encapsulated way of referring to the new text base, as part of migration to a
 WC-NG pristine text store.
 
 
-PRIMARY USES
-============
+NEW TEXT BASES IN COMMITS
+=========================
 
 This call graph shows all the routes by which the WC-1 temporary text base
-path is obtained, and the extent to which it is propagated.
+path is obtained, and the extent to which it is propagated, within a commit.
 
 
                           svn_client_commit4()
@@ -20,97 +20,126 @@ path is obtained, and the extent to whic
               svn_client__do_commit()  |
                     [N] |^             |            [N] Not when caller is
                         |^             |                wc_to_repos_copy()
+                        |^             |
   LIBSVN_CLIENT         |^             |
   ..........................................................................
   LIBSVN_WC             |^             |
-                        |^             |    { svn_wc_get_update_editor4() }
-                        |^             |    { svn_wc_get_switch_editor4() }
-                        |^             |        |  [1]
-                        |^             |      make_editor()
-                        |^             |        *  [1]
-                        |^             |          *           EDITOR
-                        |^             +---+        *           |
-                        |^                 |       apply_textdelta()  >>>v
-  svn_wc_transmit_text_deltas3()           |          |^ [2]             v
-            [N] |^                         |          |^                 v
-  svn_wc__internal_transmit_text_deltas()  |          |^    HB->work_abspath
-    [N] |^                                 |          |^
-        |^                                 |          |^
-        |^  { svn_wc_process_committed_queue2() }     |^
-        |^  { svn_wc_process_committed4()       }     |^
-        |^            |                               |^
-        |^    svn_wc__process_committed_internal()    |^
-        |^            |                               |^
-        |^    process_committed_leaf()                |^
-        |^            |                               |^
-        |^    svn_wc__wq_add_post_commit()            |^
-        |^            |                               |^
-        |^    WQ:OP_POSTCOMMIT                        |^
-        |^             *                              |^
-        |^              *                             |^
-        |^               *                            |^
-        |^      run_postcommit()                      |^
-        |^                |                           |^
-        |^      log_do_committed()                    |^
-        |^                |                           |^
-        |^      install_committed_file()              |^
-        |^          |^[T]      |                      |^
-        |^          |^         +----+                 |^
-        |^          |^              |                 |^
-        |^          |^              |                 |^
-  svn_wc__text_base_path(tmp=TRUE)  |                 |^
-            |^                      |       +---------+
-            |^  svn_wc__sync_text_base()    |^
-            |^      |^                      |^
-            |^      |^          svn_wc__open_writable_base()
-            |^      |^                      |^
-            |^      |^                open_adm_file()     [initialization]
-            |^      |^                      |^                  |
-            |^      |^      +---------------+             make_adm_subdir()
-            |^      |^      |^                                  |^
-            |^      |^      |^      +---------------------------+
-            |^      |^      |^      |^
+                        |^             |
+                        |^             +---+
+                        |^                 |
+  svn_wc_transmit_text_deltas3()           |
+            [N] |^                         |
+  svn_wc__internal_transmit_text_deltas()  |
+    [N] |^                                 |
+        |^                                 |
+        |^      { svn_wc_process_committed_queue2() }
+        |^      { svn_wc_process_committed4()       }
+        |^                |
+        |^        svn_wc__process_committed_internal()
+        |^                |
+        |^        process_committed_leaf()
+        |^                |
+        |^        svn_wc__wq_add_post_commit()
+        |^                |
+        |^        WQ:OP_POSTCOMMIT
+        |^                 *
+        |^                  *
+        |^                   *
+        |^          run_postcommit()
+        |^                    |
+        |^          log_do_committed()
+        |^                    |
+        |^          install_committed_file()
+        |^            |^[T]           |
+        |^            |^              |
+        |^            |^              |
+        |^            |^              |
+  svn_wc__text_base_path(tmp=TRUE)    |
+            |^                        |
+            |^    svn_wc__sync_text_base()
+            |^      |^
+            |^      |^
+            |^      |^    [initialization]
+            |^      |^      |
+            |^      |^    make_adm_subdir()
+            |^      |^      |^
+            |^      |^      |^
           extend_with_adm_name(tmp=TRUE)
 
 
-UPDATE EDITOR
-=============
+NEW TEXT BASES IN UPDATES
+=========================
 
-This call graph shows all the uses of the WC-1 temporary text base path
+This call graph shows all the uses of a WC-1 temporary text base path
 within the update editor.
 
 
-                       [2]
-                     v<<<<<       apply_textdelta()
-                     v
-            HB->work_abspath
-                     v
-                     v [3]        window_handler()
-                     v
-        FB->new_text_base_abspath
-                     v
-                     v>>>>>         close_file()
-                       [4]              |v
-                                        |v
-                                    merge_file()
-                                   |v  |v  |v  |v
-                          +--------+   |v  |v  +--------+
-                          |v        +--+   +--+         |v
-                          |v        |v        |v        |v
-    svn_wc__internal_\    |v        |v        |v        |v
-       versioned_file_modcheck()    |v        |v        |v
-          |v                 |      |v        |v        |v
-  svn_stream_open_readonly() |      |v        |v        |v
-                             |      |v        |v        |v
-              compare_and_verify()  |v        |v        |v
-                                    |v        |v        |v
-                        svn_wc__loggy_copy()  |v        |v
-                                              |v        |v
-                              svn_wc__internal_merge()  |v
-                                                        |v
-                                                install_text_base()
-                                                        |v
-                                                svn_wc__loggy_move()
+          repos_to_wc_copy()  merge_file_added()
+                  |                   |
+                  |     +-------------+
+  LIBSVN_CLIENT   |     |
+  ..........................................................................
+  LIBSVN_WC       |     |
+                  |     |
+    svn_wc_add_repos_file4()              { svn_wc_get_update_editor4() }
+      |^  |v      v                       { svn_wc_get_switch_editor4() }
+      |^  |v      v                           | [1]
+      |^  |v  cp.to.wkg.file                  |
+      |^  |v                                make_editor()
+      |^  |v                                     * [1]
+      |^  |v                                       *
+      |^  |v                                         *
+      |^  |v                                           *
+      |^  |v                         ______ UPDATE/SWITCH EDITOR _____
+      |^  |v                         |                               |
+      |^  |v                         |                         add_file_with_history()
+      |^  |v                         |                               |^    v
+      |^  |v                   apply_textdelta()                     |^    v
+      |^  |v                     [2] |^    v                         |^  FB->copied_text_base
+      |^  |v                         |^    v                         |^    v
+      |^  |v                         |^    v                         |^    v
+      |^  |v                         |^  HB->work_abspath            |^  (to apply_textdelta
+      |^  |v                         |^    v                         |^  and close_file
+      |^  |v                         |^    v                         |^  and merge_file)
+      |^  |v                         |^  window_handler() [3]        |^        [5]
+      |^  |v                         |^    v                         |^
+      |^  |v                         |^    v                         |^
+      |^  |v                         |^  FB->new_text_base_abspath   |^
+      |^  |v                         |^    v                         |^
+      |^  |v                         |^    v                         |^
+      |^  |v                         |^  close_file() [4]            |^
+      |^  +---+                      |^        |v                    |^
+      |^      |v                     |^        |v                    |^
+      |^    install_text_base()      |^        |v                    |^
+      |^                             |^        |v                    |^
+      |^               +-------------+         |v                    |^
+      +----------+     |^    +---------------------------------------+
+                 |^    |^    |^                |v
+           svn_wc__open_writable_base()        |v
+                       |^                      |v
+        svn_wc__db_temp_wcroot_tempdir()       |v
+          f/b svn_stream_open_unique()         |v
+                                               |v
+                                               |v
+                                          merge_file()
+                                         |v  |v  |v  |v
+                                +--------+   |v  |v  +--------+
+                                |v        +--+   +--+         |v
+                                |v        |v        |v        |v
+          svn_wc__internal_\    |v        |v        |v        |v
+             versioned_file_modcheck()    |v        |v        |v
+                |v                 |      |v        |v        |v
+        svn_stream_open_readonly() |      |v        |v        |v
+                                   |      |v        |v        |v
+                    compare_and_verify()  |v        |v        |v
+                                          |v        |v        |v
+                              svn_wc__loggy_copy()  |v        |v
+                                                    |v        |v
+                                    svn_wc__internal_merge()  |v
+                                                              |v
+                                                      install_text_base()
+                                                              |v
+                                                      svn_wc__loggy_move()
 
 
 NOTES
@@ -132,6 +161,9 @@ NOTES
       a stream, not to the path.)  That is the only use of HB->work_abspath.
   [4] close_file() passes FB->new_text_base_abspath to merge_file().  That
       is the only use of FB->new_text_base_abspath.
+  [5] FB->copied_text_base is used in apply_textdelta(), close_file() and
+      merge_file(), but not in the same way as FB->new_text_base_abspath is
+      used by them which is the flow shown on the diagram.
 
 
 CHANGES REQUIRED