[svnbook commit] r1541 - in trunk/src/nb: . book

sunny256 svnbook-dev at red-bean.com
Tue Jul 12 14:47:35 CDT 2005


Author: sunny256
Date: Tue Jul 12 14:47:34 2005
New Revision: 1541

Modified:
   trunk/src/nb/LAST_UPDATED
   trunk/src/nb/book/ch02.xml
   trunk/src/nb/book/ch07.xml
   trunk/src/nb/book/ch09.xml
Log:
Sync the Norwegian svnbook against the English version, r1532:1540.

* src/nb/LAST_UPDATED
  Updated by make sync.

* src/nb/book/ch02.xml
  Updated r1539.

* src/nb/book/ch07.xml
  Updated r1540.

* src/nb/book/ch09.xml
  Updated r1536, r1537.


Modified: trunk/src/nb/LAST_UPDATED
==============================================================================
--- trunk/src/nb/LAST_UPDATED	(original)
+++ trunk/src/nb/LAST_UPDATED	Tue Jul 12 14:47:34 2005
@@ -1 +1 @@
-1532
+1540

Modified: trunk/src/nb/book/ch02.xml
==============================================================================
--- trunk/src/nb/book/ch02.xml	(original)
+++ trunk/src/nb/book/ch02.xml	Tue Jul 12 14:47:34 2005
@@ -1348,105 +1348,281 @@
     <!-- =============================================================== -->
     <sect2 id="svn.basic.in-action.mixedrevs">
       <!-- @ENGLISH {{{
-      <title>The Limitations of Mixed Revisions</title>
+      <title>Mixed Revision Working Copies</title>
       @ENGLISH }}} -->
-      <title>Begrensningene i blandede revisjoner</title>
+      <title>Arbeidskopier med blandede revisjonsnumre</title>
 
       <!-- @ENGLISH {{{
       <para>As a general principle, Subversion tries to be as flexible
         as possible.  One special kind of flexibility is the ability
-        to have a working copy containing mixed revision
-        numbers.</para>
+        to have a working copy containing files and directories with a
+        mix of different working revision numbers.  Unfortunately,
+        this flexibility tends to confuse a number of new users.  If
+        the earlier example showing mixed revisions perplexed you,
+        here's a primer on both why the feature exists and how to make
+        use of it.</para>
       @ENGLISH }}} -->
       <para>Som et generelt prinsipp prøver Subversion å være så 
         fleksibel som mulig.
-        En spesiell type av fleksibilitet er muligheten til å ha en 
-        arbeidskopi som inneholder blandede revisjonsnumre.</para>
+        En spesiell type fleksibilitet er muligheten til å ha en 
+        arbeidskopi som inneholder filer og kataloger med en blanding av 
+        forskjellige arbeidsrevisjonsnumre.
+        Uheldigvis har denne fleksibiliteten en tendens til å forvirre 
+        en del nye brukere.
+        Hvis det tidligere eksempelet som viser blandede revisjoner gjør 
+        deg litt perpleks, her kommer en forklaring på hvorfor denne 
+        funksjonaliteten finnes og hvordan du gjør bruk av den.</para>
 
-      <!-- @ENGLISH {{{
-      <para>At first, it may not be entirely clear why this sort of
-        flexibility is considered a feature, and not a liability.
-        After completing a commit to the repository, the freshly
-        committed files and directories are at a more recent working
-        revision than the rest of the working copy.  It looks like a
-        bit of a mess.  As demonstrated earlier, the working copy can
-        always be brought to a single working revision by running
-        <command>svn update</command>.  Why would someone
-        <emphasis>deliberately</emphasis> want a mixture of working
-        revisions?</para>
-      @ENGLISH }}} -->
-      <para>Til å begynne med er det ikke sikkert det er helt klart 
-        hvorfor denne typen fleksibilitet er å betrakte som en fordel, 
-        og ikke en svakhet.
-        Etter å ha fullført en innlegging i depotet, er de nylig 
-        innlagte filene og katalogene i en nyere arbeidsrevisjon enn 
-        resten av kopien.
-        Det ser ut som litt av et rot.
-        Som tidligere demonstrert, kan arbeidskopien alltid bli satt til 
-        en enkelt arbeidsrevisjon ved å kjøre <command>svn 
-        update</command>.
-        Hvorfor vil noen <emphasis>med vilje</emphasis> ønske seg en 
-        blanding av arbeidsrevisjoner?</para>
+      <sect3 id="svn.basic.in-action.mixedrevs.update-commit">
+        <!-- @ENGLISH {{{
+        <title>Updates and Commits are Separate</title>
+        @ENGLISH }}} -->
+        <title>Oppdateringer og innlegginger er separate</title>
 
-      <!-- @ENGLISH {{{
-      <para>Assuming your project is sufficiently complex, you'll
-        discover that it's sometimes nice to forcibly
-        <quote>backdate</quote> portions of your working copy to an
-        earlier revision; you'll learn how to do that in Chapter 3.
-        Perhaps you'd like to test an earlier version of a sub-module,
-        contained in a subdirectory, or perhaps you'd like to examine
-        a number of previous versions of a file in the context of the
-        latest tree.</para>
-      @ENGLISH }}} -->
-      <para>Forutsatt at prosjektet ditt er komplekst nok, vil du 
-        oppdage at det noen ganger er fint å kunne 
-        <quote>tilbakedatere</quote> deler av arbeidskopien til en 
-        tidligere revisjon; du vil lære hvordan du gjør dette i kapittel 
-        3.
-        Kanskje vil du prøve en tidligere versjon av en delmodul, lagret 
-        i en underkatalog, eller kanskje du vil utforske et antall 
-        tidligere versjoner av en fil sett i forhold til det seneste 
-        treet.</para>
-        
-      <!-- @ENGLISH {{{
-      <para>However you make use of mixed-revisions in your working
-        copy, there are limitations to this flexibility.</para>
-      @ENGLISH }}} -->
-      <para>Hvordan du enn gjør bruk av blandede revisjoner i 
-        arbeidskopien, er det begrensninger i denne 
-        fleksibiliteten.</para>
+        <!-- @ENGLISH {{{
+        <para>One of the fundamental rules of Subversion is that
+          a <quote>push</quote> action does not cause
+          a <quote>pull</quote>, nor the other way around.  Just
+          because you're ready to submit new changes to the repository
+          doesn't mean you're ready to receive changes from other
+          people.  And if you have new changes still in progress,
+          then <command>svn update</command> should gracefully merge
+          repository changes into your own, rather than forcing you to
+          publish them.</para>
+        @ENGLISH }}} -->
+        <para>En av de fundamentale reglene til Subversion er at en <!-- 
+          ¤ --><quote>skyveoperasjon</quote> ikke forårsaker en 
+          <quote>trekkoperasjon</quote>, heller ikke den andre veien.
+          Det at du er klar til å legge inn nye forandringer i depotet 
+          betyr ikke at du er klar til å motta forandringer fra andre 
+          folk.
+          Og hvis du har nye forandringer som fortsatt er under 
+          utvikling, bør <command>svn update</command> flette 
+          forandringer i depotet fint og forsiktig inn i dine egne 
+          istedenfor å tvinge deg til å publisere dem.</para>
 
-      <!-- @ENGLISH {{{
-      <para>First, you cannot commit the deletion of a file or
-        directory which isn't fully up-to-date.  If a newer version of
-        the item exists in the repository, your attempt to delete will
-        be rejected, to prevent you from accidentally
-        destroying changes you've not yet seen.</para>
-      @ENGLISH }}} -->
-      <para>For det første kan du ikke legge inn sletting av en fil 
-        eller katalog som ikke er fullstendig oppdatert.
-        Hvis en nyere versjon av elementet eksisterer i depotet, vil 
-        forsøket ditt på å slette bli avslått, for å forhindre deg å 
-        feilaktig ødelegge forandringer som du enda ikke har 
-        sett.</para>
+        <!-- @ENGLISH {{{
+        <para>The main side-effect of this rule is that it means a
+          working copy has to do extra bookkeeping to track mixed
+          revisions, and be tolerant of the mixture as well.  It's
+          made more complicated by the fact that directories
+          themselves are versioned.</para>
+        @ENGLISH }}} -->
+        <para>Den største sideeffekten av denne regelen er at det betyr 
+          at arbeidskopien må holde ekstra regnskap for å følge med på 
+          miksede revisjoner, og også være tolerant i forhold til 
+          blandingen.
+          Det blir ytterligere komplisert fordi også selve katalogene er 
+          versjonerte.</para>
+
+        <!-- @ENGLISH {{{
+        <para>For example, suppose you have a working copy entirely at
+          revision 10.  You edit the
+          file <filename>foo.html</filename> and then perform
+          an <command>svn commit</command>, which creates revision 15
+          in the repository.  After the commit succeeds, many new
+          users would expect the working copy to be entirely at
+          revision 15, but that's not the case!  Any number of changes
+          might have happened in the repository between revisions 10
+          and 15.  It would be a lie to claim that we had a working
+          copy of revision 15, the client simply doesn't know.  If, on
+          the other hand, <command>svn commit</command> were to
+          automatically download the newest changes, then it would be
+          possible to set the entire working copy to revision
+          15—but then we'd be breaking the fundamental rule
+          of <quote>push</quote> and <quote>pull</quote> remaining
+          separate actions.  Therefore the only safe thing the
+          Subversion client can do is mark the one
+          file—<filename>foo.html</filename>—as being at
+          revision 15.  The rest of the working copy remains at
+          revision 10.  Only by running <command>svn update</command>
+          can the latest changes be downloaded, and the whole working
+          copy be marked as revision 15.</para>
+        @ENGLISH }}} -->
+        <para>For eksempel, tenk deg at du har en arbeidskopi der alle 
+          elementene er på revisjon 10.
+          Du redigerer filen <filename>foo.html</filename> og utfører 
+          deretter en <command>svn commit</command> som lager revisjon 
+          15 i depotet.
+          Etter at innleggingen er fullført, vil mange brukere forvente 
+          at hele arbeidskopien er på revisjon 15, men det er ikke 
+          tilfellet!
+          Alle mulige forandringer kan ha skjedd mellom revisjonene 10 
+          og 15.
+          Det ville vært en løgn å påstå at vi har en arbeidskopi av 
+          revisjon 15, klienten kan rett og slett ikke vite det.
+          Hvis <command>svn commit</command> på den annen side hentet de 
+          nyeste forandringene automatisk, ville det være mulig å sette 
+          hele arbeidskopien til revisjon 15 – men da ville vi brutt den 
+          fundamentale regelen om at <!-- ¤ 
+          --><quote>skyveoperasjoner</quote> og 
+          <quote>trekkoperasjoner</quote> skal være separate handlinger.
+          Derfor, den eneste trygge tingen som Subversionklienten kan 
+          gjøre er å kun merke den ene fila – 
+          <filename>foo.html</filename> – som å være på revisjon 15.
+          Resten av arbeidskopien forblir på revisjon 10.
+          Bare ved å kjøre <command>svn update</command> kan de nyeste 
+          forandringene bli hentet, og hele arbeidskopien kan merkes som 
+          revisjon 15.</para>
+
+        </sect3>
+
+        <sect3 id="svn.basic.in-action.mixedrevs.normal">
+          <!-- @ENGLISH {{{
+          <title>Mixed revisions are normal</title>
+          @ENGLISH }}} -->
+          <title>Blandede revisjoner er normalt</title>
+          
+          <!-- @ENGLISH {{{
+          <para>The fact is, <emphasis>every time</emphasis> you
+            run <command>svn commit</command>, your working copy ends
+            up with some mixture of revisions.  The things you just
+            committed are marked as having larger working revisions
+            than everything else.  After several commits (with no
+            updates in-between) your working copy will contain a whole
+            mixture of revisions.  Even if you're the only person
+            using the repository, you will still see this phenomenon.
+            To examine your mixture of working revisions, use
+            the <command>svn status -ﳢ-verbose</command> command (see
+            <xref linkend="svn.tour.cycle.examine.status"/> for more
+            information.)</para>
+          @ENGLISH }}} -->
+          <para>Faktum er at <emphasis>hver gang</emphasis> du kjører 
+            <command>svn commit</command> ender arbeidskopien din opp 
+            med en form for blanding av revisjoner.
+            Det elementet som du akkurat la inn er merket som om det har 
+            et større revisjonsnummer enn alt det andre.
+            Etter flere innlegginger (uten noen oppdateringer i 
+            mellomtiden) vil arbeidskopien din inneholde en stor 
+            blanding av revisjoner.
+            Selv om du er den eneste personen som bruker depotet vil du 
+            fortsatt se dette fenomenet.
+            For å utforske blandingen din av blandede revisjoner kan du 
+            bruke kommandoen <command>svn status --verbose</command> (se 
+            <xref linkend="svn.tour.cycle.examine.status"/> for mer 
+            informasjon).</para>
+
+          <!-- @ENGLISH {{{
+          <para>Often, new users are completely unaware that their
+            working copy contains mixed revisions.  This can be
+            confusing, because many client commands are sensitive to
+            the working revision of the item they're examining.  For
+            example, the <command>svn log</command> command is used to
+            display the history of changes to a file or directory (see
+            <xref linkend="svn.tour.history.log"/>).  When the user
+            invokes this command on a working copy object, they expect
+            to see the entire history of the object.  But if the
+            object's working revision is quite old (often
+            because <command>svn update</command> hasn't been run in a
+            long time), then the history of
+            the <emphasis>older</emphasis> version of the object is
+            shown.</para>
+          @ENGLISH }}} -->
+          <para>Ofte er nye brukere ikke klar over at arbeidskopiene 
+            deres inneholder miksede revisjoner.
+            Dette kan være forvirrende, fordi mange klientkommandoer er 
+            sensitiv ovenfor arbeidsrevisjonen til elementet som de 
+            utforsker.
+            For eksempel, <command>svn log</command>-kommandoen blir 
+            brukt til å vise historien til en fil eller katalog (se 
+            <xref linkend="svn.tour.history.log"/>).
+            Når brukeren kjører denne kommandoen på et objekt i 
+            arbeidskopien, forventer de å se hele historien til 
+            objektet.
+            Men hvis objektets arbeidsrevisjon er ganske gammel (ofte 
+            fordi <command>svn update</command> ikke har vært kjørt på 
+            aldri så lenge), blir historien til den 
+            <emphasis>eldre</emphasis> versjonen av objektet 
+            vist.</para>
+        </sect3>
+
+        <sect3 id="svn.basic.in-action.mixedrevs.useful">
+          <!-- @ENGLISH {{{
+          <title>Mixed revisions are useful</title>
+          @ENGLISH }}} -->
+          <title>Blandede revisjoner er nyttige</title>
+
+          <!-- @ENGLISH {{{
+          <para>If your project is sufficiently complex, you'll
+            discover that it's sometimes nice to forcibly
+            <quote>backdate</quote> portions of your working copy to
+            an earlier revision; you'll learn how to do that in
+            Chapter 3.  Perhaps you'd like to test an earlier version
+            of a sub-module contained in a subdirectory, or perhaps
+            you'd like to figure out when a bug first came into
+            existence in a specific file.  This is the <quote>time
+            machine</quote> aspect of a version control system —
+            the feature which allows you to move any portion of your
+            working copy forward and backward in history.</para>
+          @ENGLISH }}} -->
+          <para>Forutsatt at prosjektet ditt er komplekst nok, vil du 
+            oppdage at det noen ganger er fint å kunne 
+            <quote>tilbakedatere</quote> deler av arbeidskopien til en 
+            tidligere revisjon; du vil lære hvordan du gjør dette i 
+            kapittel 3.
+            Kanskje vil du prøve en tidligere versjon av en delmodul som 
+            ligger i en underkatalog lagret i en underkatalog, eller 
+            kanskje du vil finne ut når en feil først oppsto i en 
+            spesiell fil.
+            Dette er <quote>tidsmaskin-aspektet</quote> i et 
+            versjonskontrollsystem – funksjonaliteten som lar deg flytte 
+            alle deler av arbeidskopien din framover og bakover i 
+            historien.</para>
+
+        </sect3>
+
+        <sect3 id="svn.basic.in-action.mixedrevs.limits">
+          <!-- @ENGLISH {{{
+          <title>Mixed revisions have limitations</title>
+          @ENGLISH }}} -->
+          <title>Blandede revisjoner har begrensninger</title>
+
+          <!-- @ENGLISH {{{
+          <para>However you make use of mixed revisions in your
+            working copy, there are limitations to this
+            flexibility.</para>
+          @ENGLISH }}} -->
+          <para>Hvordan du enn gjør bruk av blandede revisjoner i 
+            arbeidskopien din, er det begrensninger i denne 
+            fleksibiliteten.</para>
+          
+          <!-- @ENGLISH {{{
+          <para>First, you cannot commit the deletion of a file or
+            directory which isn't fully up-to-date.  If a newer
+            version of the item exists in the repository, your attempt
+            to delete will be rejected, to prevent you from
+            accidentally destroying changes you've not yet
+            seen.</para>
+          @ENGLISH }}} -->
+          <para>For det første kan du ikke legge inn sletting av en fil 
+            eller katalog som ikke er fullstendig oppdatert.
+            Hvis en nyere versjon av elementet eksisterer i depotet, vil 
+            forsøket ditt på å slette bli avslått, for å forhindre deg å 
+            feilaktig ødelegge forandringer som du enda ikke har 
+            sett.</para>
+
+          <!-- @ENGLISH {{{
+          <para>Second, you cannot commit a metadata change to a
+            directory unless it's fully up-to-date.  You'll learn
+            about attaching
+            <quote>properties</quote> to items in Chapter 6.  A
+            directory's working revision defines a specific set of
+            entries and properties, and thus committing a property
+            change to an out-of-date directory may destroy properties
+            you've not yet seen.</para>
+          @ENGLISH }}} -->
+          <para>For det andre kan du ikke legge inn en 
+            metadata-forandring til en katalog hvis den ikke er 
+            fullstendig oppdatert.
+            Du vil få lære om å legge til <quote>egenskaper</quote> til 
+            elementer i kapittel 6.
+            En katalogs arbeidsrevisjon definerer et spesifikt sett med 
+            poster og egenskaper, og en innlegging av forandringer i en 
+            egenskap for en utdatert katalog kan ødelegge egenskaper som 
+            du enda ikke har sett.</para>
+
+        </sect3>
 
-      <!-- @ENGLISH {{{
-      <para>Second, you cannot commit a metadata change to a directory
-        unless it's fully up-to-date.  You'll learn about attaching
-        <quote>properties</quote> to items in Chapter 6.  A
-        directory's working revision defines a specific set of entries
-        and properties, and thus committing a property change to an
-        out-of-date directory may destroy properties you've not yet
-        seen.</para>
-      @ENGLISH }}} -->
-      <para>For det andre kan du ikke legge inn en metadata-forandring 
-        til en katalog hvis den ikke er fullstendig oppdatert.
-        Du vil få lære om å legge til <quote>egenskaper</quote> til 
-        elementer i kapittel 6.
-        En katalogs arbeidsrevisjon definerer et spesifikt sett med 
-        poster og egenskaper, og en innlegging av forandringer i en 
-        egenskap for en utdatert katalog kan ødelegge egenskaper som du 
-        enda ikke har sett.</para>
 
     </sect2>
 

Modified: trunk/src/nb/book/ch07.xml
==============================================================================
--- trunk/src/nb/book/ch07.xml	(original)
+++ trunk/src/nb/book/ch07.xml	Tue Jul 12 14:47:34 2005
@@ -2446,23 +2446,45 @@
       sorts, and we know <emphasis>exactly</emphasis> where to
       go.</para>
 
-    <para>Subversion performs a fairly straightforward algorithm when
-      using peg and operative revisions to find real stuff to work on.
-      First, the path associated with the peg revision is located in
-      that revision in the repository.  From there, Subversion begins
-      stepping backwards through historical predecessors of the object
-      located at that path and peg revision.  Each of these
-      predecessors represents an earlier version of the object, and
-      each stores a record of which revision it was created in, and at
-      what path.  So, while traversing the set of predecessors,
-      Subversion notices whenever one of them is the youngest version
-      of the object to exist as of one of the operative revisions, and
-      if so, maps that operative revision to the created path/created
-      revision pair of the predecessor.  The algorithm terminates
-      either when all the operative revisions have been mapped to real
-      object locations, or once there are no more predecessors to
-      traverse, in which case any unmapped operative revisions are
-      marked as invalid for the object being operated on.</para>
+    <sidebar>
+      <title>The "peg-revision" algorithm</title>
+      
+      <para>When the commandline client sees a command of the
+        form:</para>
+
+      <screen>
+$ svn <emphasis>command</emphasis> -r <emphasis>OPERATIVE-REV</emphasis> item@<emphasis>PEG-REV</emphasis>
+</screen>
+      
+      <para>...it performs the following algorithm:</para>
+
+      <itemizedlist>
+        
+        <listitem>
+          <para>Go to revision <emphasis>PEG-REV</emphasis>, and
+          find <emphasis>item</emphasis>.  This locates a unique
+          object in the repository.</para>
+        </listitem>
+
+        <listitem>
+          <para>Trace the object's history backwards (through any
+            possible renames) to its ancestor in
+            revision <emphasis>OPERATIVE-REV</emphasis>.</para>
+        </listitem>
+
+        <listitem>
+          <para>Perform the requested action on that ancestor,
+            wherever it is located, or whatever its name might
+            be.</para>
+        </listitem>
+
+      </itemizedlist>
+
+      <para>Remember that even when you don't explicitly supply a
+        peg-revision, it's still present.  It defaults to BASE for
+        working copy items, and to HEAD for URLs.</para>
+        
+    </sidebar>
 
     <para>Say that long ago we created our repository, and in revision 1
       added our first <filename>concept</filename> directory, plus an

Modified: trunk/src/nb/book/ch09.xml
==============================================================================
--- trunk/src/nb/book/ch09.xml	(original)
+++ trunk/src/nb/book/ch09.xml	Tue Jul 12 14:47:34 2005
@@ -218,6 +218,15 @@
               concatenation.</para>
           </listitem>
         </varlistentry>
+      
+        <varlistentry>
+          <term><option>--limit</option>
+            <replaceable>NUM</replaceable></term>
+          <listitem>
+            <para>Show only the first <replaceable>NUM</replaceable>
+              log messages.</para>
+          </listitem>
+        </varlistentry>
         
         <varlistentry>
           <term><option>--message</option> (<option>-m</option>)
@@ -261,6 +270,17 @@
         </varlistentry>
 
         <varlistentry>
+          <term><option>--no-diff-added</option></term>
+        <listitem>
+          <para>Prevents Subversion from printing differences for
+            added files.  The default behavior when you add a file is
+            for <command>svn diff</command> to print the same
+            differences that you would see if you had added the entire
+            contents of an existing (empty) file.</para>
+          </listitem>
+        </varlistentry>
+        
+        <varlistentry>
           <term><option>--no-diff-deleted</option></term>
         <listitem>
             <para>Prevents Subversion from printing differences for
@@ -285,6 +305,16 @@
         </varlistentry>
 
         <varlistentry>
+          <term><option>--no-unlock</option></term>
+          <listitem>
+            <para>Don't automatically unlock files (the default commit
+              behavior is to unlock all files listed as part of the
+              commit).  See <xref linkend="svn.advanced.locking"/> for
+              more information.</para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
           <term><option>--non-interactive</option></term>
           <listitem>
             <para>In the case of an authentication failure, or
@@ -602,7 +632,7 @@
         </refnamediv>
         <refsect1>
           <title>Synopsis</title>
-          <programlisting>svn blame TARGET...</programlisting>
+          <programlisting>svn blame TARGET[@REV]...</programlisting>
         </refsect1>
         <refsect1>
           <title>Description</title>
@@ -783,6 +813,7 @@
 --password PASS
 --no-auth-cache
 --non-interactive
+--ignore-externals
 --config-dir DIR
 </screen>
         </refsect1>
@@ -956,6 +987,11 @@
             <literal>editor-cmd</literal> section in <xref
             linkend="svn.advanced.confarea.opts.config"/>.</para>
 
+          <para><command>svn commit</command> will send found lock
+            tokens and release locks on all
+            <replaceable>PATHS</replaceable> committed (recursively)
+            unless <option>--no-unlock</option> is passed.</para>
+
           <tip>
             <para>If you begin a commit and Subversion launches your
               editor to compose the commit message, you can still
@@ -994,6 +1030,7 @@
 --message (-m) TEXT
 --file (-F) FILE
 --quiet (-q)
+--no-unlock
 --non-recursive (-N)
 --targets FILENAME
 --force-log
@@ -1588,7 +1625,7 @@
         <refsect1>
           <title>Synopsis</title>
           <programlisting>svn export [-r REV] URL[@PEGREV] [PATH]</programlisting>
-          <programlisting>svn export PATH1[@PEGREV] PATH2</programlisting>
+          <programlisting>svn export [-r REV] PATH1[@PEGREV] [PATH2]</programlisting>
         </refsect1>
         <refsect1>
           <title>Description</title>
@@ -1636,6 +1673,7 @@
 --password PASS
 --no-auth-cache
 --non-interactive
+--non-recursive
 --config-dir DIR
 --native-eol EOL
 --ignore-externals
@@ -1828,19 +1866,21 @@
         </refnamediv>
         <refsect1>
           <title>Synopsis</title>
-          <programlisting>svn info [PATH...]</programlisting>
+          <programlisting>svn info [TARGET...]</programlisting>
         </refsect1>
         <refsect1>
           <title>Description</title>
 
-          <para>Print information about paths in your working copy,
-            including:</para>
+          <para>Print information about both working copy paths and
+            URLs, including:</para>
 
           <itemizedlist>
             <listitem><para>Path</para></listitem>
             <listitem><para>Name</para></listitem>
             <listitem><para>URL</para></listitem>
             <listitem><para>Revision</para></listitem>
+            <listitem><para>Repository Root</para></listitem>
+            <listitem><para>Repository UUID</para></listitem>
             <listitem><para>Node Kind</para></listitem>
             <listitem><para>Last Changed Author</para></listitem>
             <listitem><para>Last Changed Revision</para></listitem>
@@ -1848,6 +1888,9 @@
             <listitem><para>Text Last Updated</para></listitem>
             <listitem><para>Properties Last Updated</para></listitem>
             <listitem><para>Checksum</para></listitem>
+            <listitem><para>Lock Token</para></listitem>
+            <listitem><para>Lock Owner</para></listitem>
+            <listitem><para>Lock Creation Date</para></listitem>
           </itemizedlist>
         </refsect1>
 
@@ -1872,6 +1915,7 @@
           <screen>
 --targets FILENAME
 --recursive (-R)
+--revision (-r)
 --config-dir DIR
 </screen>
         </refsect1>
@@ -1888,6 +1932,8 @@
 Path: foo.c
 Name: foo.c
 URL: http://svn.red-bean.com/repos/test/foo.c
+Repository Root: http://svn.red-bean.com/repos/test
+Repository UUID: 5e7d134a-54fb-0310-bd04-b611643e5c25
 Revision: 4417
 Node Kind: file
 Schedule: normal
@@ -1903,8 +1949,10 @@
 
           <screen>
 $ svn info vendors
-Path: trunk
+Path: vendors
 URL: http://svn.red-bean.com/repos/test/vendors
+Repository Root: http://svn.red-bean.com/repos/test
+Repository UUID: 5e7d134a-54fb-0310-bd04-b611643e5c25
 Revision: 19
 Node Kind: directory
 Schedule: normal
@@ -1912,6 +1960,32 @@
 Last Changed Rev: 19
 Last Changed Date: 2003-01-16 23:21:19 -0600 (Thu, 16 Jan 2003)
 </screen>
+
+           <para><command>svn info</command> also acts on URLs (also
+             note that the file readme.doc in this example is locked,
+             so lock information is also provided):</para>
+
+           <screen>
+$ svn info http://svn.red-bean.com/repos/test/readme.doc
+Path: readme.doc
+Name: readme.doc
+URL: http://svn.red-bean.com/repos/test/readme.doc
+Repository Root: http://svn.red-bean.com/repos/test
+Repository UUID: 5e7d134a-54fb-0310-bd04-b611643e5c25
+Revision: 1
+Node Kind: file
+Schedule: normal
+Last Changed Author: sally
+Last Changed Rev: 42
+Last Changed Date: 2003-01-14 23:21:19 -0600 (Tue, 14 Jan 2003)
+Text Last Updated: 2003-01-14 23:21:19 -0600 (Tue, 14 Jan 2003)
+bChecksum: d41d8cd98f00b204e9800998ecf8427e
+Lock Token: opaquelocktoken:14011d4b-54fb-0310-8541-dbd16bd471b2
+Lock Owner: harry
+Lock Created: 2003-01-15 17:35:12 -0600 (Wed, 15 Jan 2003)
+</screen>
+
+
           
         </refsect1>
       </refentry>
@@ -2021,6 +2095,100 @@
         </refsect1>
       </refentry>
 
+
+      <refentry id="svn.ref.svn.c.lock">
+        <refnamediv>
+          <refname>svn lock</refname> 
+            <refpurpose>Lock working copy paths or URLs in the
+              repository, so that no other user can commit changes to
+              them.</refpurpose>
+        </refnamediv>
+        <refsect1>
+          <title>Synopsis</title>
+          <programlisting>svn lock TARGET...</programlisting>
+        </refsect1>
+        <refsect1>
+          <title>Description</title>
+
+          <para>Lock each <replaceable>TARGET</replaceable>.  If any
+            <replaceable>TARGET</replaceable> is already locked by
+            another user, print a warning and continue locking the
+            rest of the <replaceable>TARGET</replaceable>s.  Use
+            <option>--force</option> to steal a lock from another user
+            or working copy.</para>
+
+        </refsect1>
+
+        <refsect1>
+          <title>Alternate Names</title>
+          <para>None</para>
+        </refsect1>
+
+        <refsect1>
+          <title>Changes</title>
+          <para>Working Copy, Repository</para>
+        </refsect1>
+
+        <refsect1>
+          <title>Accesses Repository</title>
+          <para>Yes</para>
+        </refsect1>
+
+        <refsect1>
+          <title>Switches</title>
+
+          <screen>
+--targets ARG
+--message (-m) ARG
+--file (-F) ARG
+--force-log
+--encoding ARG
+--username ARG
+--password ARG
+--no-auth-cache
+--non-interactive
+--config-dir ARG
+--force
+</screen>
+        </refsect1>
+
+        <refsect1>
+          <title>Examples</title>
+
+          <para>Lock two files in your working copy:</para>
+
+          <screen>
+
+$ svn lock tree.jpg house.jpg
+'tree.jpg' locked by user 'harry'.
+'house.jpg' locked by user 'harry'.
+</screen>
+
+          <para>Lock a file in your working copy that is currently
+            locked by another user:</para>
+
+          <screen>
+$ svn lock tree.jpg
+svn: warning: Path '/tree.jpg is already locked by user 'harry in \
+     filesystem '/svn/repos/db'
+garibaldi: /tmp/r>svn lock --force foo
+'tree.jpg' locked by user 'sally'.
+</screen>
+
+          <para>Lock a file without a working copy:</para>
+
+          <screen>
+$ svn lock http://svn.red-bean.com/repos/test/tree.jpg
+'tree.jpg' locked by user 'sally'.
+</screen>
+
+          <para>For further details, see <xref
+            linkend="svn.advanced.locking"/>.</para>
+
+        </refsect1>
+      </refentry>
+
+
       <refentry id="svn.ref.svn.c.log">
         <refnamediv>
           <refname>svn log</refname>
@@ -2088,6 +2256,7 @@
 --targets FILENAME
 --stop-on-copy
 --incremental
+--limit NUM
 --xml
 --username USER
 --password PASS
@@ -3183,10 +3352,9 @@
             <option>--verbose</option>, print full revision
             information on every item.</para>
 
-          <para>The first five columns in the output are each one
+          <para>The first six columns in the output are each one
             character wide, and each column gives you information
-            about different aspects of each working copy
-            item.</para>
+            about different aspects of each working copy item.</para>
           
           <para>The first column indicates that an item
             was added, deleted, or otherwise changed.</para>
@@ -3375,7 +3543,64 @@
 
           </variablelist>
 
-          <para>The out-of-date information appears in the eighth
+          <para>The sixth column is populated with lock information.</para>
+          
+          <variablelist>
+            
+            <varlistentry>
+              <term>' '</term>
+              <listitem>
+                <para>When <option>--show-updates</option> is used,
+                the file is not locked.  If
+                <option>--show-updates</option> is
+                <emphasis>not</emphasis> used, this merely means that
+                the file is not locked in this working copy.</para>
+              </listitem>
+            </varlistentry>
+
+            <varlistentry>
+              <term>K</term>
+              <listitem>
+                <para>File is locked in this working copy.</para>
+              </listitem>
+            </varlistentry>
+            
+            <varlistentry>
+              <term>O</term>
+              <listitem>
+                <para>File is locked either by another user or in
+                another working copy.  This only appears when
+                <option>--show-updates</option> is used.</para>
+              </listitem>
+            </varlistentry>
+
+            <varlistentry>
+              <term>T</term>
+              <listitem>
+                <para>File was locked in this working copy, but the
+                lock has been <quote>stolen</quote>and is invalid.
+                The file is currently locked in the repository.  This
+                only appears when <option>--show-updates</option> is
+                used.</para>
+              </listitem>
+            </varlistentry>
+
+            <varlistentry>
+              <term>B</term>
+              <listitem>
+                <para>File was locked in this working copy, but the
+                lock has been <quote>broken</quote>and is invalid.
+                The file is no longer locked This only appears when
+                <option>--show-updates</option> is used.</para>
+              </listitem>
+            </varlistentry>
+
+          </variablelist>
+
+
+
+
+          <para>The out-of-date information appears in the seventh
             column (only if you pass the
             <option>--show-updates</option> switch).</para>
 
@@ -3655,6 +3880,95 @@
         </refsect1>
       </refentry>
 
+
+      <refentry id="svn.ref.svn.c.unlock">
+        <refnamediv>
+          <refname>svn unlock</refname> 
+            <refpurpose>Unlock working copy paths or
+              URLs..</refpurpose>
+        </refnamediv>
+        <refsect1>
+          <title>Synopsis</title>
+          <programlisting>svn unlock TARGET...</programlisting>
+        </refsect1>
+        <refsect1>
+          <title>Description</title>
+
+          <para>Unlock each <replaceable>TARGET</replaceable>.  If any
+            <replaceable>TARGET</replaceable> is either locked by
+            another user or no valid lock token exists in the working
+            copy, print a warning and continue unlocking the rest of
+            the <replaceable>TARGET</replaceable>s.  Use
+            <option>--force</option> to break a lock belonging to
+            another user or working copy.</para>
+
+        </refsect1>
+
+        <refsect1>
+          <title>Alternate Names</title>
+          <para>None</para>
+        </refsect1>
+
+        <refsect1>
+          <title>Changes</title>
+          <para>Working Copy, Repository</para>
+        </refsect1>
+
+        <refsect1>
+          <title>Accesses Repository</title>
+          <para>Yes</para>
+        </refsect1>
+
+        <refsect1>
+          <title>Switches</title>
+
+          <screen>
+--targets ARG
+--username ARG
+--password ARG
+--no-auth-cache
+--non-interactive
+--config-dir ARG
+--force
+</screen>
+        </refsect1>
+
+        <refsect1>
+          <title>Examples</title>
+
+          <para>Unlock two files in your working copy:</para>
+
+          <screen>
+
+$ svn unlock tree.jpg house.jpg
+'tree.jpg' unlocked.
+'house.jpg' unlocked.
+</screen>
+
+          <para>Unlock a file in your working copy that is currently
+            locked by another user:</para>
+
+          <screen>
+$ svn unlock tree.jpg
+svn: 'tree.jpg' is not locked in this working copy
+$ svn unlock --force tree.jpg
+'tree.jpg' unlocked.
+</screen>
+
+          <para>Unlock a file without a working copy:</para>
+
+          <screen>
+$ svn unlock http://svn.red-bean.com/repos/test/tree.jpg
+'tree.jpg unlocked.
+</screen>
+
+          <para>For further details, see <xref
+            linkend="svn.advanced.locking"/>.</para>
+
+        </refsect1>
+      </refentry>
+
+
       <refentry id="svn.ref.svn.c.update">
         <refnamediv>
           <refname>svn update</refname>
@@ -3672,7 +3986,9 @@
             it brings your working copy up-to-date with the
             <literal>HEAD</literal> revision.  Otherwise, it
             synchronizes the working copy to the revision given by the
-            <option>--revision</option> switch.</para>
+            <option>--revision</option> switch.  As part of the
+            synchronization, <command>svn update</command> also
+            removes any stale locks found in the working copy.</para>
 
           <para>For each updated item a line will start with a
             character reporting the action taken.  These characters
@@ -3950,7 +4266,10 @@
               created for you.<footnote><para>Remember,
               <command>svnadmin</command> works only with local
               <emphasis>paths</emphasis>, not
-              <emphasis>URLs</emphasis>.</para></footnote></para>
+              <emphasis>URLs</emphasis>.</para></footnote> As of
+              Subversion 1.2, <command>svnadmin</command> creates new
+              repositories with the <literal>fsfs</literal> filesystem
+              backend by default.</para>
           </refsect1>
 
         <refsect1>
@@ -4284,6 +4603,47 @@
         </refsect1>
       </refentry>
 
+      <refentry id="svn.ref.svnadmin.c.lslocks">
+        <refnamediv>
+          <refname>svnadmin lslocks</refname> 
+          <refpurpose>Print descriptions of all locks.</refpurpose>
+        </refnamediv>
+        <refsect1>
+          <title>Synopsis</title>
+          <programlisting>svnadmin lslocks REPOS_PATH</programlisting>
+        </refsect1>
+        <refsect1>
+          <title>Description</title>
+
+          <para>Print descriptions of all locks in a repository.</para>
+        </refsect1>
+
+        <refsect1>
+          <title>Switches</title>
+          
+          <para>None</para>
+        </refsect1>
+
+        <refsect1>
+          <title>Example</title>
+
+
+          <para>This lists the one locked file in the repository at
+            <filename>/svn/repos</filename></para>
+
+          <screen>
+$ svnadmin lslocks /svn/repos
+Path: /tree.jpg
+UUID Token: opaquelocktoken:ab00ddf0-6afb-0310-9cd0-dda813329753
+Owner: harry
+Created: 2005-07-08 17:27:36 -0500 (Fri, 08 Jul 2005)
+Expires: 
+Comment (1 line):
+Rework the uppermost branches on the bald cypress in the foreground.
+</screen>
+        </refsect1>
+      </refentry>
+
       <refentry id="svn.ref.svnadmin.c.lstxns">
         <refnamediv>
           <refname>svnadmin lstxns</refname>
@@ -4320,9 +4680,13 @@
       <refentry id="svn.ref.svnadmin.c.recover">
         <refnamediv>
           <refname>svnadmin recover</refname>
+
           <refpurpose>Bring a repository database back into a
           consistent state (applies only to repositories using the
-          <literal>bdb</literal> backend).</refpurpose>
+          <literal>bdb</literal> backend).  In addition, if
+          <filename>repos/conf/passwd</filename> does not exist, it
+          will create a default password file .</refpurpose>
+
         </refnamediv>
         <refsect1>
           <title>Synopsis</title>
@@ -4387,6 +4751,45 @@
       </refentry>
 
 
+      <refentry id="svn.ref.svnadmin.c.rmlocks">
+        <refnamediv>
+          <refname>svnadmin rmlocks</refname>
+          <refpurpose>Unconditionally remove one or more locks from a
+          repository.</refpurpose>
+        </refnamediv>
+        <refsect1>
+          <title>Synopsis</title>
+          <programlisting>svnadmin rmlocks REPOS_PATH LOCKED_PATH...</programlisting>
+        </refsect1>
+        <refsect1>
+          <title>Description</title>
+
+          <para>Remove lock from each <replaceable>LOCKED_PATH</replaceable>.</para>
+        </refsect1>
+
+        <refsect1>
+          <title>Switches</title>
+          
+          <para>None</para>
+        </refsect1>
+
+        <refsect1>
+          <title>Example</title>
+
+          <para>This deletes the locks on
+            <filename>tree.jpg</filename> and
+            <filename>house.jpg</filename> in the repository at
+            <filename>/svn/repos</filename></para>
+
+          <screen>
+$ svnadmin rmlocks /svn/repos tree.jpg house.jpg
+Removed lock on '/tree.jpg.
+Removed lock on '/house.jpg.
+</screen>
+        </refsect1>
+      </refentry>
+
+
       <refentry id="svn.ref.svnadmin.c.rmtxns">
         <refnamediv>
           <refname>svnadmin rmtxns</refname>
@@ -4579,6 +4982,19 @@
         </varlistentry>
 
         <varlistentry>
+          <term><option>--revprop</option></term>
+          <listitem>
+            <para>Operates on a revision property instead of a
+              Subversion property specific to a file or directory.
+              This switch requires that you also pass a revision
+              with the <option>--revision</option>
+              (<option>-r</option>) switch. See <xref
+              linkend="svn.reposadmin.basics.revprops"/> for more details on
+              unversioned properties.</para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
           <term><option>--transaction</option>
             (<option>-t</option>)</term>
           <listitem>
@@ -4801,6 +5217,7 @@
           <screen>
 --revision (-r)
 --transaction (-t)
+--no-diff-added
 --no-diff-deleted
 </screen>
         </refsect1>
@@ -5008,6 +5425,52 @@
         </refsect1>
       </refentry>
 
+
+      <refentry id="svn.ref.svnlook.c.lock">
+        <refnamediv>
+          <refname>svnlook lock</refname>
+          <refpurpose>If a lock exists on a path in the repository,
+            describe it.</refpurpose>
+        </refnamediv>
+        <refsect1>
+          <title>Synopsis</title>
+          <programlisting>svnlook lock REPOS_PATH PATH_IN_REPOS</programlisting>
+        </refsect1>
+        <refsect1>
+          <title>Description</title>
+
+          <para>Print all information available for the lock at
+              <replaceable>PATH_IN_REPOS</replaceable>.  If
+              <replaceable>PATH_IN_REPOS</replaceable> is not locked,
+              print nothing.</para>
+        </refsect1>
+
+        <refsect1>
+          <title>Switches</title>
+            
+          <para>None</para>
+        </refsect1>
+
+        <refsect1>
+          <title>Examples</title>
+
+          <para>This describes the lock on the file
+            <filename>tree.jpg</filename>.</para>
+
+          <screen>
+$ svnlook lock /svn/repos tree.jpg
+UUID Token: opaquelocktoken:ab00ddf0-6afb-0310-9cd0-dda813329753
+Owner: harry
+Created: 2005-07-08 17:27:36 -0500 (Fri, 08 Jul 2005)
+Expires: 
+Comment (1 line):
+Rework the uppermost branches on the bald cypress in the foreground.
+</screen>
+          
+        </refsect1>
+      </refentry>
+
+
       <refentry id="svn.ref.svnlook.c.log">
         <refnamediv>
           <refname>svnlook log</refname>
@@ -5075,6 +5538,7 @@
           <screen>
 --revision (-r)
 --transaction (-t)
+--revprop
 </screen>
         </refsect1>
 
@@ -5123,6 +5587,7 @@
 --revision (-r)
 --transaction (-t)
 --verbose (-v)
+--revprop
 </screen>
         </refsect1>
 
@@ -5594,6 +6059,25 @@
           </varlistentry>
 
           <varlistentry>
+            <term><literal>SVNAutoversioning On</literal></term>
+            <listitem>
+
+              <para>This directive allows write requests from WebDAV
+                clients to result in automatic commits.  A generic log
+                message is auto-generated and attached to each
+                revision.  If you enable Autoversioning, you'll likely
+                want to set <literal>ModMimeUsePathInfo On</literal>
+                so that <literal>mod_mime</literal> can set
+                <literal>svn:mime-type</literal> to the correct
+                mime-type automatically (as best as
+                <literal>mod_mime</literal> is able to, of course).
+                For more information, see <xref
+                linkend="svn.webdav"/></para>
+
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
             <term><literal>SVNPath</literal></term>
             <listitem>
 



More information about the svnbook-dev mailing list