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