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/18 12:54:26 UTC
svn commit: r924735 - /subversion/trunk/notes/wc-ng/use-of-tmp-text-base-path
Author: julianfoad
Date: Thu Mar 18 11:54:26 2010
New Revision: 924735
URL: http://svn.apache.org/viewvc?rev=924735&view=rev
Log:
* notes/wc-ng/use-of-tmp-text-base-path: New file.
Added:
subversion/trunk/notes/wc-ng/use-of-tmp-text-base-path
Added: 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=924735&view=auto
==============================================================================
--- subversion/trunk/notes/wc-ng/use-of-tmp-text-base-path (added)
+++ subversion/trunk/notes/wc-ng/use-of-tmp-text-base-path Thu Mar 18 11:54:26 2010
@@ -0,0 +1,118 @@
+
+Call graphs of the use of the WC-1 temporary text base path, as of r924197.
+
+This is to help us eliminate the use of this path and replace it with a more
+encapsulated way of refering to the new text base, as part of migration to a
+WC-NG pristine text store.
+
+
+PRIMARY USES
+============
+
+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.
+
+
+ svn_client_commit4()
+ | |^[T] wc_to_repos_copy()
+ +-----------+ +--------+ |
+ | ^| |
+ | svn_client__do_commit()
+ LIBSVN_CLIENT | ^|
+ ..........................................................................
+ LIBSVN_WC | ^|
+ | ^|
+ { svn_wc_process_committed_queue2() } ^|
+ { svn_wc_process_committed4() } ^|
+ | ^|
+ svn_wc__process_committed_internal() ^|
+ | ^|
+ process_committed_leaf() ^|
+ | svn_wc_transmit_text_deltas3()
+ svn_wc__wq_add_post_commit() ^|
+ | svn_wc__internal_transmit_text_deltas()
+ WQ:OP_POSTCOMMIT ^|
+ ^|
+ run_postcommit() ^|
+ | ^|
+ log_do_committed() ^|
+ | ^|
+ install_committed_file() ^|
+ | [T]^| ^|
+ | ^| +------------------------+
+ | ^| |^
+ | ^| |^
+ | ^| |^ { svn_wc_get_update_editor4() }
+ | ^| |^ { svn_wc_get_switch_editor4() }
+ | ^| |^ | [1]
+ | ^| |^ make_editor()
+ | ^| |^ * [1]
+ | ^| |^ * EDITOR
+ | ^| |^ * |
+ | ^| |^ apply_textdelta() >>>>v
+ | ^| |^ ^| [2] v
+ | ^| |^ ^| v
+ | ^| |^ ^| HB->work_abspath
+ | { svn_wc__text_base_path(tmp=TRUE) } ^| [3]
+ | { svn_wc__open_writable_base() } ------+
+ | { +--- open_adm_file() }
+ +--- { svn_wc__sync_text_base() }
+ { make_adm_subdir() } --- initialization only
+ |^
+ |^
+ extend_with_adm_name(tmp=TRUE)
+
+
+UPDATE EDITOR
+=============
+
+This call graph shows all the uses of the 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
+ merge_file()
+ --------------------------------------
+ |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
+=====
+
+ All callers are shown if any are shown, except for deprecated wrappers.
+ ^,v,<,> indicates passing of the tmp text base path.
+ { ... } marks a group of functions that all call the same sub-function.
+ [T] Propagation terminates here.
+ [1] These just return an editor that points to
+ update_editor.c:apply_textdelta(). Calls to the editor are not shown.
+ [2] apply_textdelta() puts tmp text base path in HB->work_abspath only.
+ [3] window_handler() copies HB->work_abspath to
+ HB->fb->new_text_base_abspath when it is finished. (It writes data to
+ 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.
+