[svnbook commit] r2122 - trunk/src/en/book

sussman svnbook-dev at red-bean.com
Sat Apr 15 20:42:16 CDT 2006


Author: sussman
Date: Sat Apr 15 20:42:15 2006
New Revision: 2122

Modified:
   trunk/src/en/book/appb.xml
   trunk/src/en/book/ch09.xml

Log:
Some final additions for the 1.2 svnbook.

* src/en/book/appb.xml: describe how to have mod_mime automatically
                        set svn:mime-type on new files added via
                        autoversioning.  This closes ticket #10.

* src/en/book/ch09.xml: add a list of all defined 'svn:' properties to
                        reference section.



Modified: trunk/src/en/book/appb.xml
==============================================================================
--- trunk/src/en/book/appb.xml	(original)
+++ trunk/src/en/book/appb.xml	Sat Apr 15 20:42:15 2006
@@ -327,11 +327,11 @@
       <literal>MKACTIVITY</literal>, <literal>CHECKOUT</literal>,
       <literal>PUT</literal>, <literal>CHECKIN</literal>.  But if the
       DeltaV server supports autoversioning, then write-requests from
-      basic WebDAV clients are accepted.  The server behaves *as if*
-      the client had issued the proper series of versioning requests,
+      basic WebDAV clients are accepted.  The server behaves as if the
+      client had issued the proper series of versioning requests,
       performing a commit under the hood.  In other words, it allows a
       DeltaV server to interoperate with ordinary WebDAV
-      clients.</para>
+      clients that don't understand versioning.</para>
 
     <para>Because so many operating systems already have integrated
       WebDAV clients, the use case for this feature borders on
@@ -373,17 +373,53 @@
       many applications auto-save every few minutes, resulting in even
       more commits.</para>
 
-    <para>If you have a post-commit hook program that sends email, for
-      example, you may want to disable email generation either
-      altogether, or on certain sections of the repository; it depends
-      on whether you think the influx of emails will still prove to be
-      valuable notifications or not.  Also, a smart post-commit hook
-      program can distinguish between a transaction created via
-      autoversioning and one created through a normal <command>svn
-      commit</command>.  The trick is to look for a revision property
+    <para>If you have a post-commit hook program that sends email, you
+      may want to disable email generation either altogether, or on
+      certain sections of the repository; it depends on whether you
+      think the influx of emails will still prove to be valuable
+      notifications or not.  Also, a smart post-commit hook program
+      can distinguish between a transaction created via autoversioning
+      and one created through a normal <command>svn commit</command>.
+      The trick is to look for a revision property
       named <literal>svn:autoversioned</literal>.  If present, the
       commit was made by a generic WebDAV client.</para>
 
+    <para>Another feature that may be a useful complement
+      for <literal>SVNAutoversioning</literal> comes from
+      Apache's <literal>mod_mime</literal> module.  If a generic
+      WebDAV client adds a new file to the repository, there's no
+      opportunity for the user to set the
+      the <literal>svn:mime-type</literal> property.  This might cause
+      the file to appear as <quote>generic</quote> icon when viewed
+      within a WebDAV shared folder, not having an association with
+      any application.  One remedy is to have a sysadmin (or other
+      Subversion-knowledgable person) check out a working copy and
+      manually set the <literal>svn:mime-type</literal> property on
+      necessary files. But there's potentially no end to such cleanup
+      tasks.  Instead, you can use
+      the <literal>ModMimeUsePathInfo</literal> directive in
+      your Subversion <literal><Location></literal>
+      block:</para>
+ 
+    <screen>
+<Location /repos>
+  DAV svn
+  SVNPath /path/to/repository
+  SVNAutoversioning on
+
+  ModMimeUsePathInfo on
+
+</Location>
+</screen>
+
+    <para>This directive allows <literal>mod_mime</literal> to attempt
+      automatic deduction of the mime-type on new files that enter the
+      repository via autoversioning.  The module looks at the file's
+      named extension and possibly the contents as well; if the file
+      matches some common patterns, then the the
+      file's <literal>svn;mime-type</literal> property will be set
+      automatically.</para>
+
   </sect1>
 
   <!-- ================================================================= -->

Modified: trunk/src/en/book/ch09.xml
==============================================================================
--- trunk/src/en/book/ch09.xml	(original)
+++ trunk/src/en/book/ch09.xml	Sat Apr 15 20:42:15 2006
@@ -6247,6 +6247,204 @@
     </refentry>
   </sect1>
 
+  <!-- ================================================================= -->
+  <!-- ================================================================= -->
+  <!-- ================================================================= -->
+  <sect1 id="svn.ref.properties">
+
+    <title><command>Subversion properties</command></title>
+
+
+    <refentry id="svn.ref.mod_dav_svn.conf">
+      <refnamediv>
+
+        <refname>Subversion-defined properties</refname> <refpurpose>
+        properties defined by Subversion to control behavior.</refpurpose>
+
+      </refnamediv>
+
+      <refsect1 id="svn.ref.mod_dav_svn.conf.desc">
+        <title>Description</title>
+
+        <para>Subversion allows users to invent arbitrarily-named
+          versioned properties on files and directories, as well as
+          unversioned properties on revisions.  The only restriction
+          is on properties prefixed with <quote>svn:</quote>.
+          Properties in that namespace are reserved for Subversion's
+          own use.  While these properties may be set by users to
+          control Subversion's behavior, users may not invent new
+          <quote>svn:</quote> properties.</para>
+
+      </refsect1>
+
+      <refsect1 id="svn.ref.properties.versioned-props">
+        <title>Versioned Properties</title>
+
+        <variablelist>
+
+          <varlistentry>
+            <term><literal>svn:executable</literal></term>
+            <listitem>
+
+              <para>If present on a file, the client will make the
+                file executable in Unix-hosted working copies.  See
+                <xref
+                linkend="svn.advanced.props.special.executable"/>.</para>
+
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><literal>svn:mime-type</literal></term>
+            <listitem>
+
+              <para>If present on a file, the value indicates the
+                file's mime-type.  This allows the client to decide
+                whether line-based contextual merging is safe to
+                perform during updates, and can also affect how the
+                file behaves when fetched via web browser.  See
+                <xref
+                linkend="svn.advanced.props.special.mime-type"/>. </para>
+
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><literal>svn:ignore</literal></term>
+            <listitem>
+
+              <para>If present on a directory, the value is a list of
+                unversioned file patterns to be ignored
+                by <command>svn status</command> and other
+                subcommands.  See
+                <xref
+                linkend="svn.advanced.props.special.ignore"/></para>
+
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><literal>svn:keywords</literal></term>
+            <listitem>
+
+              <para>If present on a file, the value tells the client
+                how to expand particular keywords within the file.
+                See
+                <xref
+                linkend="svn.advanced.props.special.keywords"/>.</para>
+
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><literal>svn:eol-style</literal></term>
+            <listitem>
+
+              <para>If present on a file, the value tells the client
+                how to manipulate the file's line-endings in the
+                working copy.  See
+                <xref
+                linkend="svn.advanced.props.special.eol-style"/>.</para>
+
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><literal>svn:externals</literal></term>
+            <listitem>
+
+              <para>If present on a directory, the value is a
+                multi-line list of other paths and URLs the client
+                should check out.  See
+                <xref
+                linkend="svn.advanced.props.special.externals"/>.</para>
+
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><literal>svn:special</literal></term>
+            <listitem>
+
+              <para>If present on a file, indicates that the file is
+                not an ordinary file, but a symbolic link or other
+                special object.  See
+                <xref
+                linkend="svn.advanced.props.special.special"/>.</para>
+
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><literal>svn:needs-lock</literal></term>
+            <listitem>
+
+              <para>If present on a file, tells the client to make the
+                file read-only in the working copy, as a reminder that
+                the file should be locked before editing begins.  See
+                <xref
+                linkend="svn.advanced.locking.lock-communication"/>.</para>
+
+            </listitem>
+          </varlistentry>
+
+        </variablelist>
+      </refsect1>
+
+      <refsect1 id="svn.ref.properties.unversioned-props">
+        <title>Unversioned Properties</title>
+
+        <variablelist>
+
+          <varlistentry>
+            <term><literal>svn:author</literal></term>
+            <listitem>
+
+              <para>If present, contains the authenticated username of
+                the person who created the revision.  (If not present,
+                then the revision was committed anonymously.)</para>
+
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><literal>svn:date</literal></term>
+            <listitem>
+
+              <para>Contains the UTC time the revision was created, in
+                ISO format.  The value comes from the server
+                machine's clock.</para>
+
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><literal>svn:log</literal></term>
+            <listitem>
+
+              <para>Contains the log message describing the
+                revision.</para>
+
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><literal>svn:autoversioned</literal></term>
+            <listitem>
+
+              <para>If present, the revision was created via the
+                autoversioning feature.  See
+                <xref linkend="svn.webdav.autoversioning"/>.</para>
+
+            </listitem>
+          </varlistentry>
+
+        </variablelist>
+      </refsect1>
+
+    </refentry>
+  </sect1>
+
 
 
 </chapter>




More information about the svnbook-dev mailing list