[prev in list] [next in list] [prev in thread] [next in thread]
List: subversion-issues
Subject: [Issue 677] Changed - support versioning of symlinks
From: issues () subversion ! tigris ! org
Date: 2002-10-29 16:13:47
[Download RAW message or body]
http://subversion.tigris.org/issues/show_bug.cgi?id=677
*** Old
--- New
***************
*** 52,54 ****
--- 52,117 ----
------- Additional Comments From kfogel@tigris.org 2002-08-01 07:26 PDT -------
Front page now says Post-1.0.
+
+ ------- Additional Comments From hadaka@tigris.org 2002-10-29 08:13 PST -------
+ Attaching my mail about the issue here so it doesn't get lost
+
+ ***
+
+ I've gotten a few Profound Revelations, from which the
+ most important one is this:
+
+ Special file storage is just another case of working copy file
+ translation.
+
+ First of all it's completely client side. It doesn't affect the
+ text-base at all. To find the differences in a file, one has to first
+ de-translate the file and then compare that to the working copy
+ base. Everything fits. So, newline translation, keyword substitution
+ and special file handling should all be done mostly at the same places
+ - everything else is just edge-cases.
+
+ So - good - how to do it then? Again, I have two options in how to
+ proceed. The first is the straightforward one - and the second
+ is... well you'll see. So, on to the first choice.
+
+ * Straightforward extension for special files
+
+ Add a new argument to svn_wc_copy_and_translate, which controls the
+ translation of the text form to the actual special file and back. Then
+ specify a single property, which tells if a file is a special file or
+ not.
+
+ After that, it's a simple case of fixing up all callers of
+ svn_wc_copy_and_translate - and fixing up snv_wc_translated_file,
+ svn_wc_text_modified_p and such special functions.
+
+ And then finally just testing it around in several situations and fix
+ up the edge-cases that pop up.
+
+ This sounds straightforward, not too cumbersome - but not too elegant
+ either. In the worst places right now, there's checks of
+ svn:executable, svn:keywords and svn:line-style - after this, there'd
+ be one more again.
+
+ * Visions of grandeur - pluggable translation
+
+ Instead of adding a yet another parameter to the translation functions
+ - abstract them more. Decide the forms a file can appear in - I've
+ been initially thinking about: untranslated (eg. text-base form),
+ fully translated (normal working copy form), merge form (eg. used in
+ conflicted files). Then start separating the hard-coded keyword and
+ newline parameters and instead use a generic translation
+ interface. Once there's just simple functions for translating and
+ de-translating files, separate newline translation and keyword
+ substitution into separate files.
+
+ After that, make the translations pluggable - come up with a dynamic
+ loading scheme for pluggable translations, like the ra-interface. And
+ then, finally, implement the special file storage.
+
+ Obviously, special properties, such as svn:executable, should be tied
+ in at some point as well, even though they do not consist of
+ translation as such.
+
+ ***
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@subversion.tigris.org
For additional commands, e-mail: issues-help@subversion.tigris.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic