blob: 3a1b47820bc8b98108c98d00d3de04c158cf7db7 [file]
About this directory.
This subdirectory has two branches.
They are copies of /trunk:13253 and are merged from trunk from time
to time.
- text-time
This branch is dedicated for the versioning of the text-time
attribute for files. See below for details.
This part has beta-quality.
- owner-group-mode
Here the versioning of owner, group, and unix-filemode is implemented.
This part is more like an early alpha.
- patches
Here I will store patches of the functionalities above; this is meant
for people running of /trunk, who want to test this parts.
The patches for owner-group-mode will not depend on the text-time-patches;
they will include them.
Why meta-data versioning?
There has been much discussion whether, and to a smaller extent, how
meta-data should be versioned.
Some argue that this is not a requirement of subversion itself, but
should be done by wrapper scripts; IMO it makes much sense to do that
inside subversion, as only one run through a wc is required on commit.
How does this work?
The general approach is as follows:
- A file about to be committed is checked for the properties
svn:text-time, svn:owner, svn:group, svn:unix-mode
- Each of these properties gets set to the current value of the file,
if it exists.
So the mtime of a file is only versioned, if the file has the property
svn:text-time set (to any value)
- The initial property setting can be achieved by auto-props.
- If the configuration value "use-commit-times" is set to "yes", then
on checkout/update/export the stored values should [1] be used
to restore the files' meta-data.
Example of ~/.subversion/config:
[miscellany]
use-commit-times = yes
enable-auto-props = yes
[auto-props]
* = svn:text-time=yes;svn:owner=yes;svn:group=yes;svn:unix-mode=yes
Known problems:
- The functionality is incomplete/has bugs, the meta-data is not restored
on every occasion.
Whereas text-time is mostly complete, the other properties need work.
- As mentioned by Philip Martin in
http://marc.theaimsgroup.com/?l=subversion-dev&m=110729651620515&w=2,
the way conflicts are treated has to be specified.
Last updated: 04 Mar 2005.
References
1. Issue 1256. Discussion about svn:text-time.
http://subversion.tigris.org/issues/show_bug.cgi?id=1256
2. Feb. 2005 - discussion about mtime versioning on the mailing list.
Fwd: Feature request: Keep file dates
http://marc.theaimsgroup.com/?l=subversion-dev&m=110917936530930&w=2
3. Feb. 2005 - Announce of first o-g-m patch on ml
[PATCH] svn now stores unix-owner, -group, and -mode too
http://marc.theaimsgroup.com/?l=subversion-dev&m=110724160930812&w=2
4. May 2003 - Thread with first patches for mtime versioning on ml
saving time stamps of files
http://marc.theaimsgroup.com/?l=subversion-dev&m=105238644900470&w=2
Notes
[1] "Should". If they *would* be used in every case, the branches would
be finished (and not alpha or beta quality).