You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ko...@apache.org on 2021/08/27 13:51:22 UTC

svn commit: r1892644 - /subversion/branches/pristines-on-demand/BRANCH-README

Author: kotkov
Date: Fri Aug 27 13:51:22 2021
New Revision: 1892644

URL: http://svn.apache.org/viewvc?rev=1892644&view=rev
Log:
On the pristines-on-demand branch: Add BRANCH-README.

* BRANCH-README: New file.

Added:
    subversion/branches/pristines-on-demand/BRANCH-README   (with props)

Added: subversion/branches/pristines-on-demand/BRANCH-README
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand/BRANCH-README?rev=1892644&view=auto
==============================================================================
--- subversion/branches/pristines-on-demand/BRANCH-README (added)
+++ subversion/branches/pristines-on-demand/BRANCH-README Fri Aug 27 13:51:22 2021
@@ -0,0 +1,46 @@
+The purpose of this branch is to try to make the text-bases in the working
+copy optional [1][2].
+
+
+Description of the approach:
+----------------------------
+
+The core idea is that we start to maintain the following invariant: only the
+modified files have their pristine text-base files available on the disk.
+
+- To avoid having to access the text-base, the "is the file modified?" check
+  is performed by calculating the checksum of a file and comparing that to
+  what's recorded in the working copy.
+
+- A text-base of the unmodified file is the file itself, appropriately
+  detranslated.
+
+- To get into the appropriate state at the beginning of the operation, we walk
+  through the current text-base info in the db and check if the corresponding
+  working files are modified.  The missing text-bases are fetched using the
+  svn_ra layer.  The operations also include a final step during which the
+  no longer required text-bases are removed from disk.
+
+- The operations that don't need to access the text-bases (such as "svn ls"
+  or the updated "svn st") do not perform this walk and do not synchronize
+  the text-base state.
+
+
+For the production-ready state, it would probably make sense to also:
+---------------------------------------------------------------------
+
+ 1. Complete the work on ^/subversion/branches/multi-wc-format so that the
+    client would work with both the new and old working copy formats, for
+    a seamless user experience and better compatibility.
+
+ 2. For the new working copy format, incorporate a switch to a different
+    checksum type without known collisions instead of SHA-1.
+
+3. Fix the minor issues written down as TODOs in the code.
+
+
+References:
+-----------
+
+[1] https://issues.apache.org/jira/browse/SVN-525
+[2] https://lists.apache.org/thread.html/r40aa795b9e0c1aabb392c43b64e540432a31e22d8b0d9de7202b4950%40%3Cdev.subversion.apache.org%3E

Propchange: subversion/branches/pristines-on-demand/BRANCH-README
------------------------------------------------------------------------------
    svn:eol-style = native