From svnbook at googlecode.com Thu Dec 4 09:15:15 2014 From: svnbook at googlecode.com (svnbook at googlecode.com) Date: Thu, 04 Dec 2014 15:15:15 +0000 Subject: [svnbook] r4955 committed - Translation: ch06-server-configuration.xml part 1 up to and including... Message-ID: <001a11c1dfae69f08a0509656d57@google.com> Revision: 4955 Author: jmfelderhoff at gmx.eu Date: Thu Dec 4 15:15:11 2014 UTC Log: Translation: ch06-server-configuration.xml part 1 up to and including svn.serverconfig.httpd.perf.keepalive. https://code.google.com/p/svnbook/source/detail?r=4955 Modified: /branches/1.8/de/book/ch06-server-configuration.xml ======================================= --- /branches/1.8/de/book/ch06-server-configuration.xml Tue Nov 25 15:14:00 2014 UTC +++ /branches/1.8/de/book/ch06-server-configuration.xml Thu Dec 4 15:15:11 2014 UTC @@ -1,3 +1,5 @@ + + - Subversion wurde mit einer abstrakten + + + API + Schichten + Projektarchiv-Zugriffs-Schicht (RA) + Subversion wurde mit einer abstrakten Projektarchiv-Zugriffs-Schicht entworfen. Dies bedeutet, dass auf ein Projektarchiv automatisiert von beliebigen Server-Prozessen zugegriffen werden kann, und die f?r Clients @@ -70,9 +83,17 @@ allerdings nur zwei weitverbreitete Server. - Apache ist ein sehr beliebter Webserver, welcher mittels des - mod_dav_svn-Moduls auf Projektarchive - zugreifen und diese f?r Clients verf?gbar machen kann. Verwendet - wird dabei das WebDAV/DeltaV-Protokoll, welches eine Erweiterung - von HTTP ist. Da Apache ein stark erweiterbarer Webserver ist, - bietet er eine Menge an frei verf?gbaren - Funktionen/Modulen, wie mittels SSL verschl?sselte Verbindungen, - Protokollierung, sowie die Integration diverser - Authentifikationssysteme von Drittanbietern und einen - eingeschr?nkten Web-Browser-gest?tzten + + + httpd + + + Apache HTTP Server + httpd + Apache HTTP Server (auch bekannt als + httpd) ist ein sehr beliebter Webserver, + welcher mittels des mod_dav_svn-Moduls auf + Projektarchive zugreifen und diese f?r Clients verf?gbar machen + kann. Verwendet wird dabei das WebDAV/DeltaV-Protokoll, welches + eine Erweiterung von HTTP ist. Da Apache ein stark + erweiterbarer Webserver ist, bietet er eine Menge an frei + verf?gbaren Funktionen/Modulen, wie mittels SSL + verschl?sselte Verbindungen, Protokollierung, sowie die + Integration diverser Authentifikationssysteme von Drittanbietern + und einen eingeschr?nkten Web-Browser-gest?tzten Projektarchiv-Lesezugriff. - In der anderen Ecke befindet sich + + + svnserve + In der anderen Ecke befindet sich svnserve: ein kleiner, leichtgewichtiger Server, der ein einfaches Netzwerkprotokoll f?r die Zugriffe der Clients verwendet. Da dieses Protokoll f?r die Verwendung mit @@ -166,7 +201,7 @@ Vergleich der Serveroptionen f?r Subversion @@ -406,6 +441,7 @@
+ @@ -446,6 +482,7 @@ vielleicht gegen eine der M?glichkeiten sprechen.
+ - Es gibt mehrere M?glichkeiten, svnserve - zu starten: + + + svnserve + betreiben + Es gibt mehrere M?glichkeiten, + svnserve zu starten: @@ -1033,13 +1085,24 @@ svnserve als Unix-Dienst - Die einfachste Variante ist, svnserve - als eigenst?ndigen (Unix-)Dienst laufen zu lassen. Verwenden - Sie hierf?r die Option beim Aufruf: + + + svnserve + betreiben + Daemon-Modus + Die einfachste Variante ist, + svnserve als eigenst?ndigen (Unix-)Dienst + laufen zu lassen. Verwenden Sie hierf?r die + Option beim Aufruf: - Wenn Sie inetd zum Starten des - Prozesses verwenden wollen, so ?bergeben Sie + + + svnserve + betreiben + ?ber inetd + + + inetd + Wenn Sie inetd zum Starten + des Prozesses verwenden wollen, so ?bergeben Sie svnserve beim Aufruf die Option (). Im folgenden Beispiel sehen wir die Ausgaben beim Aufruf von - svnserve -i - auf der Kommandozeile. Beachten Sie aber, dass dies nicht - der Weg ist, wie der Dienst normalerweise gestartet wird - – eine genaue Beschreibung, wie - svnserve ?ber inetd - gestartet wird, folgt anschlie?end. + svnserve -i auf der Kommandozeile. + Beachten Sie aber, dass dies nicht der Weg ist, wie der + Dienst normalerweise gestartet wird – eine genaue + Beschreibung, wie svnserve ?ber + inetd gestartet wird, folgt + anschlie?end. @@ -1232,6 +1311,96 @@ hinzuf?gen, um einzuschr?nken, welche Projektarchive exportiert werden d?rfen. + + + + + + svnserve ?ber xinetd + + + + + svnserve + betreiben + ?ber xinetd + + + xinetd + Einige Betriebssysteme stellen den Daemon + xinetd als Alternative zu + inetd zur Verf?gung. Gl?cklicherweise + k?nnen Sie svnserve auch f?r die + Verwendung mit xinetd konfigurieren. Dazu + m?ssen Sie eine Konfigurationsdatei + /etc/xinetd.d/svn mit dem folgenden + Inhalt anlegen: + + + +# default: on +# description: Subversion server for the svn protocol +service svn +{ + disabled = no + port = 3690 + socket_type = stream + protocol = tcp + wait = no + user = subversion + server = /usr/local/bin/svnserve + server_args = -i -r /path/to/repositories +} + + + + + Stellen Sie sicher, dass Ihre Konfigurationsdatei + /etc/services die Definition f?r den + Port beinhaltet, der f?r das Protokoll + svn verwendet wird (wie in + beschrieben), da der Daemon ansonsten nicht korrekt + startet. + + + In Redhat-basierten Distributionen m?ssen Sie den neuen + Dienst mit chkconfig --add svn + aktivieren. Anschlie?end k?nnen Sie den Server unter + Verwendung der graphischen Konfigurations-Werkzeuge ein- und + ausschalten. + @@ -1242,7 +1411,12 @@ svnserve ?ber einen Tunnel - Eine weitere M?glichkeit ist, + + + svnserve + betreiben + Tunnel-Modus + Eine weitere M?glichkeit ist, svnserve mittels der -Option im Tunnel-Modus aufzurufen. Bei diesem Aufruf wird vorausgesetzt, dass ein anderes Programm @@ -1308,7 +1487,12 @@ svnserve als ein Dienst unter Windows - Geh?rt ihr Windows zur NT-Familie (Windows oder neuer), - so k?nnen Sie svnserve auch als normalen - Windows-Dienst laufen lassen. Dies ist wesentlich + + + svnserve + betreiben + als Windows-Dienst + Geh?rt ihr Windows zur NT-Familie (Windows oder + neuer), so k?nnen Sie svnserve auch als + normalen Windows-Dienst laufen lassen. Dies ist wesentlich sinnvoller, als die Option () zu verwenden und ihn als selbstst?ndigen Dienst zu betreiben. Sie m?ssten dann immer @@ -1485,14 +1674,30 @@ svnserve als ein launchd-Job - Mac OS X (10.4 und h?her) verwendet + + + svnserve + betreiben + uber launchd + + + launchd + Mac OS X (10.4 und h?her) verwendet launchd zur Prozessverwaltung (einschlie?lich D?monen) sowohl systemweit als auch pro Anwender. Ein launchd-Job wird durch @@ -1699,10 +1904,26 @@ Integrierte Authentifizierung und Autorisierung - Wenn sich ein Subversion-Client mit einem + + + svnserve + Authentifizierung + + + svnserve + Autorisierung + Wenn sich ein Subversion-Client mit einem svnserve-Prozess verbindet, geschieht folgendes: @@ -2153,9 +2374,9 @@ - <command>svnserve</command> mit SASL verwenden + svnserve mit SASL verwenden Bei der Verwendung eines Tunnels wird die Autorisierung gr??tenteils durch die Betriebssystem-Berechtigungen auf die @@ -2727,9 +2952,14 @@ read oder auth-access = none setzen.Beachten Sie, dass die Verwendung irgendwelcher durch svnserve - sichergestellten Zugriffskontrollen sinnlos ist, da der - Anwender ohnehin direkten Zugriff auf die - Projektarchiv-Datenbank hat. + sichergestellten Zugriffskontrollen nur dann einen Sinn + ergibt, fall die Anwender sie nicht umgehen und unter + Verwendung anderer Werkzeuge (etwa cd und + vi) direkt auf das + Projektarchiv-Verzeichnis zugreifen k?nnen; die Einrichtung + derartiger Einschr?nkungen wird in + beschrieben. Viele der folgenden Erl?uterungen beziehen sich auf @@ -3181,7 +3411,7 @@ Web-Seite frei verf?gbar ist. So befindet sich beispielsweise eine allgemeine Referenz der Konfigurationsdirektiven unter - . + Stellen Sie als n?chstes sicher, dass Apache Zugriff auf + die Module hat, die die einfache Authentifizierung und + damit zusammenh?ngende Funktionalit?t liefern: + mod_auth_basic, + mod_authn_file und + mod_authz_user. Vielfach sind diese + Module in httpd selbst hineinkompiliert + worden, aber falls nicht, k?nnte es sein, dass Sie explizit + eins oder mehrere von ihnen mit der Direktive + LoadModule laden m?ssen: + + + +LoadModule auth_basic_module modules/mod_auth_basic.so +LoadModule authn_file_module modules/mod_authn_file.so +LoadModule authz_user_module moduels/mod_authz_user.so + + + + + Nachdem sichergestellt ist, dass Apache Zugriff auf die + ben?tigte Funktionalit?t hat, m?ssen Sie noch ein paar + Direktiven innerhalb des Blocks + <Location> hinzuf?gen, um + Apache mitzuteilen, welche Art der Authentisierung Sie + verwenden m?chten, und wie das gemacht werden soll: <Location /svn> DAV svn SVNParentPath /var/svn + # Authentication: Basic AuthName "Subversion repository" AuthType Basic + AuthBasicProvider file AuthUserFile /etc/svn-auth.htpasswd </Location> @@ -3898,6 +4168,19 @@ + AuthBasicProvider gibt den + Anbieter f?r die einfache Authentifizierung an, der f?r + den Ort verwendet werden soll. In unserem Beispiel + m?chten wir in einer lokalen Datei mit Passw?rtern + nachsehen. + + + @@ -3925,8 +4208,8 @@ Anwendernamen und das Passwort vom Subversion-Client besorgen soll, falls eine Autorisierung ben?tigt wird. (Wenn eine Autorisierung erforderlich ist, - ben?tigt Apache auch eine Authentifikation.) Was hier jedoch noch - fehlt, sind Direktiven, die Apache sagen, + ben?tigt Apache auch eine Authentifizierung.) Was hier + jedoch noch fehlt, sind Direktiven, die Apache sagen, welche Arten von Client-Anfragen eine Autorisierung erfordern; momentan sind das keine. Das Einfachste ist es, anzugeben, dass @@ -3944,6 +4227,7 @@ # Authentication: Basic AuthName "Subversion repository" AuthType Basic + AuthBasicProvider file AuthUserFile /etc/svn-auth.htpasswd # Authorization: Authenticated users only @@ -3962,6 +4246,28 @@ festzulegen, sehen Sie unter nach.
+ + + Der Standardwert f?r die Option + AuthBasicProvider ist + file, also werden wir es in k?nftigen + Beispielen nicht anf?hren. Sie sollten sich aber bewusst + sein, dass, wenn Sie diesen Wert in einem erweiterten + Kontext auf etwas anderes gesetzt haben, ihn ausdr?cklich + wieder auf file in Ihrem + <Location>-Block zur?cksetzen + m?ssen, falls Sie dieses Verhalten w?nschen. + + @@ -3992,13 +4298,18 @@ Die Konfigurierung von Apache f?r die - Digest-Authentifizierung ist unkompliziert und nur eine - kleine Abweichung von unserem vorangegangenen - Beispiel: + Digest-Authentifizierung ist unkompliziert. Sie m?ssen + sicher stellen, dass das Modul + mod_auth_digest (statt + mod_auth_basic) verf?gbar ist, und dann + nur noch ein wenig von unserem vorangegangenen + Beispiel abweichen:
@@ -4009,6 +4320,7 @@ # Authentication: Digest AuthName "Subversion repository" AuthType Digest + AuthDigestProvider file AuthUserFile /etc/svn-auth.htdigest # Authorization: Authenticated users only @@ -4021,31 +4333,57 @@ Notice that AuthType is now set to Digest, and we specify a different path for AuthUserFile. Digest authentication - uses a different file format than Basic authentication; it - is created using Apache's htdigest + uses a different file format than Basic authentication, + created and managed using Apache's htdigest utilitySee . rather - than htpasswd. Digest authentication - also has the additional concept of a + />. rather than htpasswd. + Digest authentication also has the additional concept of a realm, which must match the value of the - AuthName directive. The password file - can be created as follows:
+ AuthName directive. --> Beachten Sie, dass AuthType nun auf Digest gesetzt ist, und wir einen unterschiedlichen Pfad f?r AuthUserFile angegeben haben. Digest-Authentifizierung verwendet ein - unterschiedliches Dateiformat als Basic-Authentifizierung; - es wird mit Apaches Dienstprogramm - htdigest erzeugtSiehe + unterschiedliches Dateiformat als einfache + Authentifizierung, erzeugt und verwaltet + mit Apaches Dienstprogramm htdigest + Siehe . statt mit htpasswd. Digest-Authentifizierung besitzt auch das zus?tzliche - Konzept eines Bereichs, realm, der dem Wert - der Direktive AuthName entsprechen muss. - Die Passwortdatei kann wie folgt erzeugt werden: + Konzept eines Bereichs, + realm, der dem Wert der + Direktive AuthName entsprechen + muss. + + + F?r die Digest-Authentifizierung wird der Anbieter mit + der Direkive AuthDigestProvider + ausgew?hlt, wie im vorangegangenen Beispiel gezeigt. Wie + bei der Direktive AuthBasicProvider, + ist auch hier file der Standardwert der + Option AuthDigestProvider option, so + dass diese Zeile nicht unbedingt notwendig ist, es sei + denn, Sie m?ssen einen aus einem weiteren + Konfigurations-Kontext ererbten unterschiedlichen Wert + angeben. + + + The password file can be created as follows: + Manchmal m?ssen Sie gar nicht so ein strenges Regiment - f?hren. So erlaubt beispielsweise das eigene Projektarchiv - von Subversion unter - allen auf der - Welt lesende Operationen (wie etwa das Auschecken von - Arbeitskopien und das St?bern im Projektarchiv), - beschr?nkt jedoch Schreiboperationen auf authentifizierte - Nutzer. Die Direktiven Limit und - LimitExcept erlauben diese Art der - selektiven Einschr?nkung. ?hnlich der Direktive - Location haben diese Bl?cke Start- und - Ende-Tags, die Sie innerhalb Ihres + f?hren. So erlaubt beispielsweise der Server, der das eigene + Projektarchiv von Subversion unter + beherbergt, + allen auf der Welt lesende Operationen (wie etwa das + Auschecken von Arbeitskopien und das St?bern im + Projektarchiv), beschr?nkt jedoch Schreiboperationen auf + authentifizierte Nutzer. Die Direktiven + Limit und LimitExcept + erlauben diese Art der selektiven Einschr?nkung. ?hnlich der + Direktive Location haben diese Bl?cke + Start- und Ende-Tags, die Sie innerhalb Ihres <Location>-Blocks unterbringen. @@ -4652,8 +4990,7 @@ you can disable all of this path checking. In your httpd.conf file, use the SVNPathAuthz directive as shown in - . - + . --> Auf der anderen Seite gibt es auch eine Art Notausgang, der es Ihnen erlaubt, Sicherheitsmerkmale gegen @@ -4757,12 +5094,15 @@ It's beyond the scope of this book to describe how to generate client and server SSL certificates and how to configure Apache to use them. Many other references, - including Apache's own documentation, describe the process. + including Apache's own documentation (), + describe the process. --> Es w?rde den Rahmen dieses Buches sprengen, wenn beschrieben w?rde, wie SSL Client- und Server-Zertifikate erzeugt werden und wie Apache f?r ihre Verwendung konfiguriert wird. - Viele andere B?cher, darunter Apaches eigene Dokumentation, + Viele andere B?cher, darunter Apaches eigene Dokumentation + (), erl?utern diese Aufgabe. @@ -4773,7 +5113,8 @@ tool such as OpenSSL ().While self-signed certificates are still vulnerable to a man-in-the-middle - attack, such an attack is much more difficult for a casual + attack (before a client sees the certificate for the first + time), such an attack is much more difficult for a casual observer to pull off, compared to sniffing unprotected passwords. --> @@ -4781,12 +5122,14 @@ der Regel kostenpflichtig, doch k?nnen Sie als Minimall?sung Apache so konfigurieren, das er ein selbstgezeichnetes Zertifikat verwendet, dass durch ein - Werkzeug wie etwa OpenSSL erzeugt wurde - ().Obgleich - selbstgezeichnete Zertifikate anf?llig f?r - Man-in-the-Middle-Angriffe sind, ist ein - solcher Angriff schwieriger f?r einen laienhaften - Beobachter durchzuf?hren als ungesch?tzte Passw?rter + Werkzeug wie etwa OpenSSL erzeugt wurde + ().Obgleich selbstgezeichnete + Zertifikate anf?llig f?r + Man-in-the-Middle-Angriffe sind (bevor ein + Client das Zertifikat erstmalig sieht), ist ein solcher + Angriff schwieriger f?r einen laienhaften Beobachter + durchzuf?hren als ungesch?tzte Passw?rter abzuschnorcheln. @@ -5063,6 +5406,196 @@ + + + + Auf Leistung abstimmen + + + Der Apache HTTP-Server ist zwar f?r Leistungsf?higkeit + gebaut worden, jedoch k?nnen Sie seine Standard-Konfiguration + verbessern, um noch bessere Ergebnisse beim Anbieten Ihrer + Subversion-Dienste zu erhalten. In diesem Abschnitt empfehlen + wir einige zielgerichtete Konfigurations-?nderungen zu + erw?gen. Seien Sie sich jecoch bewusst, das einige der hier + er?rterten Konfigurations-Optionen von + httpd.conf Auswirkungen auf das + allgemeine Verhalten Ihres Servers haben, nicht blo? f?r den + Subversion-Dienst. Insofern m?ssen Sie die gesamte Breite + Ihrer HTTP-Dienste ber?cksichtigen, um festzustellen, welche + Auswirkungen ?nderungen an diesen Einstellungen wegen + Subversion auf Ihre anderen Dienste haben werden. + + + + KeepAlive + + + Standardm??ig ist der Apache HTTP Server so eingestellt, + dass er es erlaubt, eine einzelne Verbindung zum Server f?r + mehrere Anfragen wiederzuverwenden. F?r Subversion ist das + sehr vorteilhaft, da, anders als bei vielen HTTP=basierten + Anwendungen, Subversion schnell f?r eine einzelne Operation + hunderte oder tausende von Anfragen an einen Server erzeugen + kann, und die Kosten beim ?ffnen einer neuen Verbindung zum + Server nicht trivial sind. Subversion versucht, so viele + Anfragen wie m?glich aus einer Verbindung herauszuquetschen, + bevor der Server sie beendet. Die Direktive + KeepAlive ist der boolsche Schalter, der + diese M?glichkeit zur Wiederverwendung einer Verbbindung + erm?glicht oder unterbindet. Wie bereits erw?hnt ist deren + Wert standardm??ig On. + + Die Sperren-?ndern-Entsperren-L?sung - + In Subversion wird das client-seitige Objekt, ?ber das + jeder Anwender verf?gt – das Verzeichnis mit + versionierten Dateien zusammen mit Metadaten, die dem System + erlauben, erstere zu ?berwachen und mit dem Server zu + kommunizieren – eine Arbeitskopie + genannt. Obwohl andere Versionskontrollsysteme den Begriff + Projektarchiv (Repository) f?r + das client-seitige Objekt verwenden, ist es sowohl falsch + als auch eine verbreitete Quelle f?r Missverst?ndnisse, + den Begriff in diesem Sinn im Kontext von Subversion zu + verwenden. + + + Arbeitskopien werden sp?ter in + beschrieben. + + @@ -848,15 +879,6 @@ --> Revisionen - - - Revisionen - Definition - - - Jedes Mal wenn das Projektarchiv eine ?bertragung annimmt, - wird ein neuer Zustand des Dateisystem-Baums erzeugt, der - Revision genannt wird. Jeder Revision - wird eine einmalige nat?rliche Zahl zugewiesen, die um eins - gr??er ist als die Vorg?nger-Revision. Die anf?ngliche + + + Revisionen + Jedes Mal wenn das Projektarchiv eine ?bertragung + annimmt, wird ein neuer Zustand des Dateisystem-Baums erzeugt, + der Revision genannt wird. Jeder + Revision wird eine einmalige nat?rliche Zahl zugewiesen, die + um eins gr??er ist als die Vorg?nger-Revision. Die anf?ngliche Revision eines frisch erzeugten Projektarchivs bekommt die Nummer 0 und besteht lediglich aus einem leeren Wurzelverzeichnis. @@ -923,24 +951,19 @@ --> Globale Revisionsnummern - - Revisionen - globale - - - - Anders als die meisten Versionskontrollsysteme werden - die Revisionsnummern von Subversion auf - den kompletten Projektarchiv-Baum - anstatt auf einzelne Dateien angewendet. Jede - Revisionsnummer w?hlt einen kompletten Baum aus; ein - bestimmter Zustand nach der ?bertragung einer ?nderung. Man - kann sich auch vorstellen, dass Revision N den Zustand des - Projektarchiv-Dateisystems nach der n-ten ?bertragung - repr?sentiert. Wenn Subversion-Benutzer von Revision - 5 von foo.c sprechen, meinen - sie tats?chlich foo.c so wie es - in Revision 5 aussieht. Beachten Sie, dass sich im + + + Revisionen + globale + Anders als die meisten Versionskontrollsysteme + werden die Revisionsnummern von Subversion auf den + kompletten Projektarchiv-Baum anstatt auf + einzelne Dateien angewendet. Jede Revisionsnummer w?hlt + einen kompletten Baum aus; ein bestimmter Zustand nach der + ?bertragung einer ?nderung. Man kann sich auch vorstellen, + dass Revision N den Zustand des Projektarchiv-Dateisystems + nach der n-ten ?bertragung repr?sentiert. Wenn + Subversion-Benutzer von Revision 5 von + foo.c sprechen, meinen sie + tats?chlich foo.c so wie es in + Revision 5 aussieht. Beachten Sie, dass sich im Allgemeinen die Revisionen N und M einer Datei nicht notwendigerweise unterscheiden! Viele andere Versionskontrollsysteme verwenden dateibezogene @@ -980,31 +1007,20 @@ --> Projektarchive adressieren - - svn - Syntax - URLs - - - svnsync - - Syntax - URLs - - - - Subversion-Client-Programme verwenden URLs, um Dateien und + + + Projektarchiv-URL + Subversion-Client-Programme verwenden URLs, um Dateien und Verzeichnisse in Subversion-Projektarchivs zu identifizieren. Meistens benutzen diese URLs die Standardsyntax, die es erlaubt, Servernamen und Portnummern als Teil des URL zu @@ -1136,7 +1152,6 @@ - - In Subversion 1.6 wurde eine neue Notation mit Zirkumflex + + + projektarchiv-relative URL + + + Yirkumflex-Syntax + + + ^ + caret syntax + In Subversion 1.6 wurde eine neue Notation mit Zirkumflex (^) als Kurzschreibweise f?r der URL des Wurzelverzeichnisses des Projektarchivs eingef?hrt. Sie k?nnen beispielsweise @@ -1295,28 +1332,24 @@ --> Subversion-Arbeitskopien - - - Arbeitskopie - Definition - - - - Eine Subversion-Arbeitskopie ist ein gew?hnlicher + + + Arbeitskopien + Eine Subversion-Arbeitskopie ist ein gew?hnlicher Verzeichnisbaum auf Ihrem lokalen System, der eine Ansammlung von Dateien enth?lt. Sie k?nnen diese Dateien nach belieben bearbeiten, und wenn es sich um Quelltexte handelt, k?nnen Sie @@ -1331,37 +1364,59 @@ After you've made some changes to the files in your working copy and verified that they work properly, Subversion provides you with commands to publish your - changes to the other people working with you on your project - (by writing to the repository). If other people publish their - own changes, Subversion provides you with commands to merge - those changes into your working copy (by reading from the - repository). + changes (by writing to the repository), thereby making them + available to the other people working with you on your + project. If other people publish their own changes, + Subversion provides you with commands to merge those changes + into your own working copy (by reading from the repository). + Notice that the central repository is the broker for + everybody's changes in Subversion—changes aren't passed + directly from working copy to working copy in the typical + workflow. --> Nachdem Sie einige ?nderungen an den Dateien Ihrer Arbeitskopie gemacht und sichergestellt haben, dass sie funktionieren, stellt Ihnen Subversion Befehle zur Verf?gung, - um Ihre ?nderungen den anderen, die an Ihrem Projekt + um Ihre ?nderungen f?r die anderen, die an Ihrem Projekt mitarbeiten, publik zu machen (indem es ins Projektarchiv schreibt). Wenn die anderen ihre ?nderungen ver?ffentlichen, stellt Ihnen Subversion Befehle zur - Verf?gung, um diese ?nderungen in Ihr Arbeitsverzeichnis - einzupflegen (indem es aus dem Projektarchiv liest). + Verf?gung, um diese ?nderungen in Ihr eigenes + Arbeitsverzeichnis einzupflegen (indem es aus dem + Projektarchiv liest). Beachten Sie, dass das zentrale + Projektarchiv der Makler f?r die ?nderungen aller in + Subversion ist – im typischen Arbeitsablauf werden + ?nderungen nicht direkt von Arbeitskopie zu Arbeitskopie + weitergegeben. - - Eine Arbeitskopie verf?gt dar?ber hinaus ?ber einige - zus?tzliche Dateien, die von Subversion erzeugt und gepflegt - werden, um es bei diesen Befehlen zu unterst?tzen. + + + Verwaltungsverzeichnis + + + .svn + Verwaltungsverzeichnis + Eine Arbeitskopie verf?gt dar?ber hinaus ?ber + einige zus?tzliche Dateien, die von Subversion erzeugt und + gepflegt werden, um es bei diesen Befehlen zu unterst?tzen. Insbesondere enth?lt jede Arbeitskopie ein Unterverzeichnis namens .svn, auch bekannt als das Verwaltungsverzeichnis der @@ -1444,6 +1499,15 @@ + + + Revisionen + Arbeits- + + - Unterbefehle - checkout - - - - Arbeitskopie - Erstellung - - - checkout - - Arbeitskopie, Erstellung - - Um eine Arbeitskopie zu erhalten, muss zun?chst irgendein - Teilbaum des Projektarchivs ausgecheckt - werden (check out). (Der Begriff check - out h?rt sich an, als habe es etwas mit dem - Sperren oder Reservieren von Ressourcen zu tun, hat es aber - nicht; es erzeugt lediglich eine Arbeitskopie des Projektes - f?r Sie.) Wenn Sie zum Beispiel /calc - auschecken, bekommen Sie eine Arbeitskopie wie diese: + + + svn + Unterbefehle + checkout + + + auschecken + + + Arbeitskopie + Erstellung + auschecken + Um eine Arbeitskopie zu erhalten, muss zun?chst + irgendein Teilbaum des Projektarchivs + ausgecheckt werden + (check out). (Der Begriff + check out h?rt sich an, als habe es + etwas mit dem Sperren oder Reservieren von Ressourcen zu + tun, hat es aber nicht; es erzeugt lediglich eine + Arbeitskopie des Projektes f?r Sie.) Wenn Sie zum Beispiel + /calc auschecken, bekommen Sie eine + Arbeitskopie wie diese: @@ -1708,57 +1777,66 @@ ben?tigt. - Angenommen, Sie nehmen ?nderungen an + + + ?bertragen + + + einchecken + ?bertragen + Angenommen, Sie nehmen ?nderungen an button.c vor. Da sich das Verzeichnis .svn den urspr?nglichen ?nderungszeitpunkt und den Inhalt der Datei merkt, kann Subversion erkennen, dass Sie die Datei ver?ndert haben. Trotzdem ver?ffentlicht Subversion Ihre ?nderungen solange - nicht, bis Sie es ausdr?cklich hierzu auffordern. Der Vorgang - des Ver?ffentlichens von ?nderungen ?ber das Projektarchiv ist - gemeinhin bekannter als commit (oder - check in). + nicht, bis Sie es ausdr?cklich hierzu auffordern. Der + Vorgang des Ver?ffentlichens von ?nderungen ?ber das + Projektarchiv ist gemeinhin bekannter als + commit (oder check + in). - - svn - - Unterbefehle - commit - - - - ?bertragen - Arbeitskopie, commit - - - - Arbeitskopie - commit - - Um Ihre ?nderungen anderen gegen?ber zu ver?ffentlichen, - k?nnen Sie den Subversion-Befehl svn commit - verwenden: + + + svn + Unterbefehle + commit + + + ?bertragen + Um Ihre ?nderungen anderen gegen?ber zu + ver?ffentlichen, k?nnen Sie den Subversion-Befehl + svn commit verwenden: @@ -1805,44 +1883,46 @@ Arbeitskopie unver?ndert; Subversion ?ndert Arbeitskopien nur auf Wunsch des Benutzers. - - svn - Unterbefehle - update - - - - Aktualisierung - Arbeitskopie, update - - - - Arbeitskopie - Aktualisierung - - - - Um ihr Projekt auf den neuesten Stand zu bringen, kann - Sally Subversion dazu auffordern, ihre Arbeitskopie zu - aktualisieren, indem sie den Befehl svn update - verwendet. Das bringt sowohl Ihre als auch alle anderen - ?nderungen die ?bertragen wurden seit sie ausgecheckt hatte in - ihre Arbeitskopie. + + + svn + Unterbefehle + update + + + altualisieren + + + Arbeitskopien + aktualisieren + aktualisieren + Um ihr Projekt auf den neuesten Stand zu + bringen, kann Sally Subversion dazu auffordern, ihre + Arbeitskopie zu aktualisieren, indem sie den Befehl + svn update verwendet. Das bringt sowohl + Ihre als auch alle anderen ?nderungen die ?bertragen wurden + seit sie ausgecheckt hatte in ihre Arbeitskopie. @@ -1888,36 +1968,37 @@ --> Arbeitskopien mit gemischten Revisionen - - Arbeitskopie - gemischte Revisionen - - - - Als allgemeing?ltiges Prinzip versucht Subversion, so - flexibel wie m?glich zu sein. Eine besondere Auspr?gung der - Flexibilit?t ist die F?higkeit, eine Arbeitskopie bestehend - aus Dateien und Verzeichnissen mit einer Mischung - unterschiedlicher Revisionsnummern zu haben. Subversions - Arbeitskopien entsprechen nicht jederzeit einer einzigen - Revision des Projektarchivs; sie k?nnen Dateien aus mehreren - unterschiedlichen Revisionen enthalten. Nehmen wir z.B. an, - Sie checken sich eine Arbeitskopie einer Datei aus einem - Projektarchiv aus, deren neueste Revision 4 ist: + + + Arbeitskopien + gemischte Revisionen + Als allgemeing?ltiges Prinzip versucht + Subversion, so flexibel wie m?glich zu sein. Eine besondere + Auspr?gung der Flexibilit?t ist die F?higkeit, eine + Arbeitskopie bestehend aus Dateien und Verzeichnissen mit + einer Mischung unterschiedlicher Revisionsnummern zu haben. + Subversions Arbeitskopien entsprechen nicht jederzeit einer + einzigen Revision des Projektarchivs; sie k?nnen Dateien aus + mehreren unterschiedlichen Revisionen enthalten. Nehmen wir + z.B. an, Sie checken sich eine Arbeitskopie einer Datei aus + einem Projektarchiv aus, deren neueste Revision 4 + ist: @@ -2007,8 +2088,8 @@ a push action does not cause a pull nor vice versa. 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, + doesn't mean you're ready to receive changes that others + have checked in. And if you have new changes still in progress, svn update should gracefully merge repository changes into your own, rather than forcing you to publish them. @@ -2040,55 +2121,60 @@ nur. Nehmen wir zum Beispiel an, Ihre Arbeitskopie besteht - komplett aus Revision 10. Sie bearbeiten die Datei - foo.html und f?hren ein svn - commit aus, das die Revision 15 im Projektarchiv - erzeugt. Nach der erfolgreichen ?bertragung w?rden viele neue - Benutzer erwarten, dass die gesamte Arbeitskopie auf - Revision 15 stehe, was aber nicht der Fall ist! Alle - m?glichen ?nderungen k?nnen sich zwischen Revision 10 und - 15 im Projektarchiv zugetragen haben. Der Client wei? - nichts ?ber diese ?nderungen im Projektarchiv, da Sie noch - nicht svn update aufgerufen haben, und - svn commit zieht keine ?nderungen - herein. Wenn andererseits svn commit - automatisch ?nderungen hereinziehen w?rde, k?nnte die - gesamte Arbeitskopie auf Revision 15 gebracht werden - – doch dann w?re die grundlegende Regel verletzt, - dass Lesen und Schreiben getrennte Aktionen sind. Deshalb - ist das einzig Sichere, das der Subversion-Client tun - kann, die eine Datei – foo.html - – als zur Revision 15 geh?rig zu kennzeichnen. Der - Rest der Arbeitskopie verbleibt bei Revision 10. Nur durch - svn update k?nnen die neuesten - ?nderungen hereingezogen und die gesamte Arbeitskopie als - Revision 15 gekennzeichnet werden. + komplett aus Revision 10, w?hrend andere ihre ?nderungen + ?bertragen haben, so dass die j?ngste Revision im + Projektarchiv nun Revision 14 ist. Sie bearbeiten die + Datei foo.html und f?hren ein + svn commit aus, das die Revision 15 im + Projektarchiv erzeugt. Nach der erfolgreichen ?bertragung + w?rden viele neue Benutzer erwarten, dass die gesamte + Arbeitskopie auf Revision 15 stehe, was aber nicht der + Fall ist! Alle m?glichen ?nderungen k?nnen sich zwischen + Revision 10 und 15 im Projektarchiv zugetragen haben. Der + Client wei? nichts ?ber diese ?nderungen im Projektarchiv, + da Sie noch nicht svn update aufgerufen + haben, und svn commit zieht keine + ?nderungen herein. Wenn andererseits svn + commit automatisch ?nderungen hereinziehen + w?rde, k?nnte die gesamte Arbeitskopie auf Revision 15 + gebracht werden – doch dann w?re die grundlegende + Regel verletzt, dass Lesen und Schreiben getrennte + Aktionen sind. Deshalb ist das einzig Sichere, das der + Subversion-Client tun kann, die eine Datei – + foo.html – als zur Revision 15 + geh?rig zu kennzeichnen. Der Rest der Arbeitskopie + verbleibt bei Revision 10. Nur durch svn + update k?nnen die neuesten ?nderungen + hereingezogen und die gesamte Arbeitskopie als Revision 15 + gekennzeichnet werden. @@ -2169,30 +2255,37 @@ Gemischte Revisionen sind n?tzlich - Wenn Ihr Projekt hinreichend komplex ist, werden Sie - entdecken, dass es manchmal ganz nett sein kann, Teile - Ihrer Arbeitskopie zur?ckzudatieren - (oder auf eine ?ltere Version als die vorliegende zu - aktualisieren); wie das gemacht wird, wird in - gezeigt. Vielleicht m?chten - Sie eine ?ltere Version eines Teilmoduls in einem - Unterverzeichnis testen, oder Sie m?chten herausbekommen, - wann ein Fehler das erste Mal in einer Datei auftauchte. - Dies ist der Zeitmaschinen-Aspekt eines + + + R?ckdatierung + Wenn Ihr Projekt hinreichend komplex ist, + werden Sie entdecken, dass es manchmal ganz nett sein + kann, Teile Ihrer Arbeitskopie + zur?ckzudatieren (oder auf eine + ?ltere Version als die vorliegende zu aktualisieren); wie + das gemacht wird, wird in + gezeigt. Vielleicht m?chten Sie eine ?ltere Version eines + Teilmoduls in einem Unterverzeichnis testen, oder Sie + m?chten herausbekommen, wann ein Fehler das erste Mal in + einer Datei auftauchte. Dies ist der + Zeitmaschinen-Aspekt eines Versionskontrollsystems – die Eigenschaft, die es erm?glicht, irgendeinen Teil Ihrer Arbeitskopie zeitlich nach vorne oder nach hinten zu verschieben. From svnbook at googlecode.com Wed Dec 10 06:49:05 2014 From: svnbook at googlecode.com (svnbook at googlecode.com) Date: Wed, 10 Dec 2014 12:49:05 +0000 Subject: Issue 225 in svnbook: Commit fails: svn: E155011: File 'file' is out of date but I have the nevest version Message-ID: <0-7155889305988986295-2647585101155598874-svnbook=googlecode.com@googlecode.com> Status: New Owner: ---- Labels: Type-Defect Priority-Medium New issue 225 by M.Forme... at gmail.com: Commit fails: svn: E155011: File 'file' is out of date but I have the nevest version https://code.google.com/p/svnbook/issues/detail?id=225 Hello, there are some files that I cannot commit, I have no conflicts and the newest version of files, everything looks fine but commit fails. So theoretically everything is fine, I can update and send new files to repository but I cannot commit changes on few files. Those are ASCII files but they have unity3d expansions like '.prefab'. When I try to commit via Eclipse (svn on Eclipse works perfectly fine on other projects): commit -m "update" /path/folder with spaces/file1.file /path/folder with spaces/file2.file /path/folder with spaces/file3.file Sending /path/folder with spaces/file1.file Sending /path/folder with spaces/file2.file Sending /path/folder with spaces/file3.file Transmitting file data ... svn: E155011: Commit failed (details follow): svn: E155011: Commit failed (details follow): svn: E155011: File '/path/folder with spaces/file1.file' is out of date svn: E155011: Commit failed (details follow): svn: E155011: File '/path/folder with spaces/file1.file' is out of date When I try to use console to commit my changes: $ svn up Updating '.': At revision 24. $ svn status M path/folder with spaces/file1.file M path/folder with spaces/file2.file M path/folder with spaces/file3.file $ svn ci Transmitting file data ..svn: E155011: Commit failed (details follow): svn: E155011: File '/path/folder with spaces/file.file' is out of date svn: E160013: File not found: transaction '24-1p', path '/path/folder%20with%20spaces/file.file' svn: E155011: Your commit message was left in a temporary file: svn: E155011: '/path/svn-commit.tmp' $ svn up Updating '.': At revision 24. I have absolutely no idea why it is out of date, for others it works fine, it seems that it happens only to me. So this file is not "out of date", I have the newest version. Best regards, Micha? -- You received this message because this project is configured to send all issue notifications to this address. You may adjust your notification preferences at: https://code.google.com/hosting/settings From svnbook at googlecode.com Wed Dec 17 02:26:34 2014 From: svnbook at googlecode.com (svnbook at googlecode.com) Date: Wed, 17 Dec 2014 08:26:34 +0000 Subject: [svnbook] r4957 committed - Translation: ch01-basic-usage.xml Message-ID: <001a1133300acc530f050a653beb@google.com> Revision: 4957 Author: jmfelderhoff at gmx.eu Date: Wed Dec 17 08:26:21 2014 UTC Log: Translation: ch01-basic-usage.xml https://code.google.com/p/svnbook/source/detail?r=4957 Modified: /branches/1.8/de/book/ch02-basic-usage.xml ======================================= --- /branches/1.8/de/book/ch02-basic-usage.xml Sun Oct 26 12:24:40 2014 UTC +++ /branches/1.8/de/book/ch02-basic-usage.xml Wed Dec 17 08:26:21 2014 UTC @@ -1,3 +1,5 @@ + + Dieses Kapitel ist nicht als ersch?pfende Liste aller Befehle von Subversion gedacht ist – es ist eher eine Einf?hrung in @@ -43,7 +45,7 @@ gelesen und verstanden haben und dass Sie mit dem allgemeinen Subversion-Modell vertraut sind. F?r eine vollst?ndige Referenz aller Befehle, siehe - . + . Aufruf: svn <Unterbefehl> [Optionen] [Parameter] -Subversion-Kommandozeilenclient, Version 1.6.13. +Subversion-Kommandozeilenclient, Version 1.7.0. Geben Sie ?svn help <Unterbefehl>? ein, um Hilfe zu einem Unterbefehl zu erhalten. Geben Sie ?svn --version? ein, um die Programmversion und die Zugriffsmodule @@ -471,12 +473,24 @@ vorhandenen Daten haben. - Um dieser Verwirrung entgegenzuwirken, empfehlen wir - Ihnen, dass Sie einer Konvention zur Gestaltung des - Projektarchivs (bereits vor langer Zeit eingef?hrt, w?hrend der - Entstehung der Subversion-Projektes) folgen, in der eine + + + Trunk + + + Tags + + + Branches + + + Zweige + Branches + + + Projektwurzel + Um dieser Verwirrung entgegenzuwirken, empfehlen + wir Ihnen, dass Sie einer Konvention zur Gestaltung des + Projektarchivs (bereits vor langer Zeit eingef?hrt, w?hrend + der Entstehung der Subversion-Projektes) folgen, in der eine handvoll strategisch benannter Verzeichnisse des Subversion-Projektarchivs eine n?tzliche Aussage ?ber die sich darin befindlichen Daten machen. Die meisten Projekte besitzen @@ -657,6 +687,42 @@ internen Gebrauch zu erzeugen, maskiert er bei Bedarf automatisch illegale Zeichen in URL-Pfaden, die Sie eingeben. + + + Nat?rlich beschr?nkt nicht allein Subversion die Wahl + g?ltiger Pfadnamen. Teams, die mehrere Betriebssysteme + verwenden, m?ssen sich auch mit den durch diese + Betriebssysteme vorgegebenen Einschr?nkungen bei der + Namenswahl auseinandersetzen. W?hrend beispielsweise Windows + die Verwendung von Doppelpunkten in Dateinamen verbietet, + kann ein Anwender unter Linux auf einfache Weise eine solche + Datei der versionskontrolle ?bergeben, was dazu f?hrt, das + diese Daten nicht mehr unter Windows ausgecheckt werden + k?nnen. Das Hinzuf?gen mehrerer Dateien in ein Verzeichnis, + deren namen sich lediglich in Gro?- und Kleinschreibung + unterscheiden f?hrt wahrscheinlich zu Problemen f?r + Anwender, die Arbeitskopien in Dateisysteme auschecken, die + keine Unterscheidung zwischen Gro?- und Kleinschreibung + machen. Deshalb empfiehlt sich ein breiteres Bewusstsein + gegen?ber diesen vielf?ltigen Einschr?nkungen, die durch + verschiedene Bertiebssysteme hervorgerufen werden. + + @@ -669,17 +735,13 @@ --> Erstellen einer Arbeitskopie - - svn - Unterbefehle - checkout - - - - In den meisten F?llen werden Sie ein Subversion-Projektarchiv - zu nutzen beginnen, indem Sie einen + + + svn + Unterbefehle + checkout + In den meisten F?llen werden Sie ein + Subversion-Projektarchiv zu nutzen beginnen, indem Sie einen Checkout Ihres Projektes vornehmen. Das - Auschecken eines Verzeichnisses aus dem Projektarchivs erzeugt eine - Arbeitskopie dieses Verzeichnisses auf Ihrem lokalen Rechner. - Falls nicht anderweitig angegeben, enth?lt diese Kopie die - j?ngste (d.h. zuletzt erzeugte oder ge?nderte) im + Auschecken eines Verzeichnisses aus dem Projektarchivs erzeugt + eine Arbeitskopie dieses Verzeichnisses auf Ihrem lokalen + Rechner. Falls nicht anderweitig angegeben, enth?lt diese Kopie + die j?ngste (d.h. zuletzt erzeugte oder ge?nderte) im Subversion-Projektarchiv aufgefundene Version des Verzeichnisses und seiner Kinder: @@ -1093,7 +1160,7 @@ to bring your working copy up to date. To find out what these letters mean, run svn help update or see in - . + . --> Wenn der Server ?ber svn update ?nderungen an Ihre Arbeitskopie schickt, wird ein @@ -1102,7 +1169,7 @@ auf den neuesten Stand zu bringen. Zur Bedeutung der Buchstaben, rufen Sie svn help update auf oder schauen sich - in an. + in an. @@ -1113,26 +1180,38 @@ Nehmen Sie Ihre ?nderungen vor - Nun k?nnen Sie loslegen und ?nderungen an Ihrer + + + Datei?nderungen + + + Baum?nderungen + Nun k?nnen Sie loslegen und ?nderungen an Ihrer Arbeitskopie vornehmen. Sie k?nnen zwei Arten von ?nderungen an Ihrer Arbeitskopie machen: Datei?nderungen und @@ -1162,15 +1241,29 @@ Versionierung symbolischer Links - Auf Nicht-Windows-Systemen kann Subversion den + + + Symlink + + + Symbolischer Link + Symlink + Auf Nicht-Windows-Systemen kann Subversion den besonderen Dateityp symbolischer Link (oder Symlink) versionieren. Ein Symlink ist eine Datei, die sich wie eine transparente @@ -1477,15 +1570,11 @@ --> ?berpr?fen Sie Ihre ?nderungen - - Protokollnachricht - - - - Sobald Sie mit Ihren ?nderungen fertig sind, m?ssen Sie - sie ins Projektarchiv bringen; es ist normalerweise eine gute - Idee, sich die ?nderungen zuvor noch einmal anzusehen. - Dadurch, dass Sie die ?nderungen noch einmal begutachten, - k?nnen Sie eine genauere + + + Protokollnachricht + Sobald Sie mit Ihren ?nderungen fertig sind, + m?ssen Sie sie ins Projektarchiv bringen; es ist normalerweise + eine gute Idee, sich die ?nderungen zuvor noch einmal + anzusehen. Dadurch, dass Sie die ?nderungen noch einmal + begutachten, k?nnen Sie eine genauere Protokollnachricht schreiben (eine menschenlesbare Beschreibung der ?bergebenen ?nderungen, die neben ihnen im Projektarchiv gespeichert wird). Es k?nnte auch @@ -1541,27 +1633,21 @@ aus anderen Gr?nden das Projektarchiv ?ber das Netz nicht erreichen k?nnen. - - Text-Base - - - - Delta - - - - Subversion bewerkstelligt das, indem es private + + + Text-Base + + + Delta + Subversion bewerkstelligt das, indem es private Zwischenspeicher der urspr?nglichen, unver?nderten Versionen jeder versionierten Datei innerhalb des Verwaltungsbereichs der Arbeitskopie (oder, vor Version 1.7, m?glicherweise @@ -1878,7 +1970,7 @@ useful information—because one of those items is also one that you have locally modified (the file README), you'll need to update and - get the servers changes for that file before you commit, or + get the server's changes for that file before you commit, or the repository will reject your commit for being out of date. We discuss this in more detail later. --> @@ -1903,7 +1995,7 @@ description of svn status and its output, run svn help status or see in - . + . --> svn status kann viel mehr Informationen ?ber Dateien und Verzeichnisse in Ihrer @@ -1912,7 +2004,7 @@ status und dessen Ausgabe, rufen Sie svn help status auf oder schauen Sie unter in - . + . @@ -1923,23 +2015,17 @@ --> Untersuchen Sie die Details Ihrer lokalen ?nderungen - - svn - Unterbefehle - diff - - - - unified-diff-Format - - - - Eine andere M?glichkeit, Ihre ?nderungen zu untersuchen, - ist es, den Befehl svn diff zu verwenden, - der Unterschiede im Dateiinhalt anzeigt. Wenn Sie - svn diff ganz oben in Ihrer - Arbeitskopie ohne Argumente aufrufen, gibt Subversion - die von Ihnen gemachten ?nderungen an menschenlesbaren - Dateien in Ihrer Arbeitskopie aus. Jene ?nderungen werden in - einem Format namens unified diff - angezeigt, welches ?nderungen als Brocken - (oder Schnipsel) des Dateiinhalts anzeigt, - wobei jeder Textzeile ein Zeichencode vorangestellt wird: - ein Leerzeichen, das bedeutet, dass die Zeile nicht ge?ndert + + + svn + Unterbefehle + diff + + + Unterschiede + unified-diff-Format + Eine andere M?glichkeit, Ihre ?nderungen zu + untersuchen, ist es, den Befehl svn diff + zu verwenden, der Unterschiede im Dateiinhalt anzeigt. Wenn + Sie svn diff ganz oben in Ihrer + Arbeitskopie ohne Argumente aufrufen, gibt Subversion die + von Ihnen gemachten ?nderungen an menschenlesbaren Dateien + in Ihrer Arbeitskopie aus. Jene ?nderungen werden in einem + Format namens unified diff angezeigt, + welches ?nderungen als Brocken (oder + Schnipsel) des Dateiinhalts anzeigt, wobei + jeder Textzeile ein Zeichencode vorangestellt wird: ein + Leerzeichen, das bedeutet, dass die Zeile nicht ge?ndert wurde, ein Minus (-), das bedeutet, dass die Zeile aus der Datei entfernt wurde oder ein Plus (+), das bedeutet, dass die Zeile der Datei hinzugef?gt wurde. Im Kontext des Befehls svn diff zeigen Ihnen diese Minus- und Pluszeilen, wie - die Zeilen vor bzw. nach Ihren ?nderungen - aussahen. + die Zeilen vor bzw. nach Ihren ?nderungen aussahen. - Der Befehl svn diff erzeugt diese + + + svn + Unterbefehle + patch + + + Patches + + + Patch-Datei + Patches + Der Befehl svn diff erzeugt diese Ausgabe, indem er Ihre Arbeitsdateien mit der unver?nderten Text-Base vergleicht. Dateien, die zum Hinzuf?gen vorgemerkt sind, werden vollst?ndig als hinzugef?gter Text dargestellt, @@ -2132,8 +2247,9 @@ find a copy of how the file looked before you changed it, and then copy its contents atop your modified version. You could attempt to apply those changes to the file again in - reverse using patch -R. And there are - probably other approaches you could take. + reverse using svn patch - -reverse-diff + or using your operating system's patch -R. + And there are probably other approaches you could take. --> Angenommen, Sie stellen beim Ansehen der Ausgabe von svn diff fest, dass alle ?nderungen, die @@ -2144,10 +2260,11 @@ ?nderungen r?ckg?ngig machen. Sie k?nnten versuchen, eine Kopie der Datei im Ursprungszustand zu bekommen und deren Inhalt ?ber Ihre ?nderungen zu kopieren. Sie k?nnten - versuchen, diese ?nderungen erneut mit patch - -R r?ckw?rts anzuwenden. Es gibt wahrscheinlich - noch andere Herangehensweisen, die Sie ausprobieren - k?nnten. + versuchen, diese ?nderungen erneut mit svn patch + --reverse-diff, oder mit Ihrem Betriebssystem, + patch -R, r?ckw?rts anzuwenden. Es + gibt wahrscheinlich noch andere Herangehensweisen, die Sie + ausprobieren k?nnten. svn @@ -2228,7 +2345,6 @@ $ svn delete README D README - $ svn revert README @@ -2262,17 +2378,12 @@ --> L?sen Sie etwaige Konflikte auf - - Konflikte - Aufl?sung - - - - Wir haben bereits gesehen, wie svn status - -u Konflikte vorhersagen kann, jedoch m?ssen wir - uns noch um diese Konflikte k?mmern. Konflikte k?nnen - jederzeit auftreten, wenn Sie versuchen, ?nderungen aus dem - Projektarchiv mit Ihrer Arbeitskopie zusammenzuf?hren oder zu - integrieren (in einem sehr allgemeinen Sinn). Bis hierher + + + Konflikte + Aufl?sung + Wir haben bereits gesehen, wie svn + status -u Konflikte vorhersagen kann, jedoch + m?ssen wir uns noch um diese Konflikte k?mmern. Konflikte + k?nnen jederzeit auftreten, wenn Sie versuchen, ?nderungen aus + dem Projektarchiv mit Ihrer Arbeitskopie zusammenzuf?hren oder + zu integrieren (in einem sehr allgemeinen Sinn). Bis hierher wissen Sie, dass svn update genau diese Art von Szenario hervorruft – der eigentliche Zweck dieses Befehls ist es, Ihre Arbeitskopie mit dem Projektarchiv auf einen Stand zu bringen, indem alle ?nderungen seit Ihrer letzten Aktualisierung mit Ihrer Arbeitskopie zusammengef?hrt - werden. Wie teilt Ihnen Subversion nun diese Konflikte mit, + werden. Wie teilt Ihnen Subversion nun diese Konflikte mit, und wie gehen Sie damit um? Interaktive Begutachtung der Konflikte - - Konflikte - ?berpr?fung - - - - Bevor Sie entscheiden, wie Sie einen Konflikt beseitigen - wollen, wollen Sie wahrscheinlich genau sehen, worin der - Konflikt besteht. Zwei der bei der interaktiven Aufforderung - zur Verf?gung stehenden Befehle k?nnen Ihnen dabei helfen. - Der erste ist der Befehl voller Diff - (df), der alle lokalen ?nderungen an - der zu begutachtenden Datei und die in Konflikt stehenden - Regionen anzeigt: + + + Konflikte + ?berpr?fung + Bevor Sie entscheiden, wie Sie einen Konflikt + beseitigen wollen, wollen Sie wahrscheinlich genau sehen, + worin der Konflikt besteht. Zwei der bei der interaktiven + Aufforderung zur Verf?gung stehenden Befehle k?nnen Ihnen + dabei helfen. Der erste ist der Befehl voller + Diff (df), der alle lokalen + ?nderungen an der zu begutachtenden Datei und die in + Konflikt stehenden Regionen anzeigt: @@ -3156,72 +3270,108 @@ If you've postponed a conflict, you need to resolve the conflict before Subversion will allow you to commit your changes. You'll do this with the svn - resolve command and one of several arguments to - the option. + resolve command. This command accepts + the option, which allows you + specify your desired approach for resolving the conflict. + Prior to Subversion 1.8, the svn resolve + required the use of this option. + Subversion now allows you to run the svn + resolve command without that option. When you do + so, Subversion cranks up its interactive conflict resolution + mechanism, which you can read about (if you haven't done so + already) in the previous section, + . We'll + take the opportunity in this section, though, to discuss + the use of the option for + conflict resolution. --> Falls Sie eine Konfliktaufl?sung aufgeschoben haben, m?ssen Sie den Konflikt aufl?sen, bevor Ihnen Subversion - erlaubt, Ihre ?nderungen in das Projektarchiv einzustellen. Sie - werden daf?r den svn resolve-Befehl mit - einem von mehreren Argumenten f?r die - -Option aufrufen. - - - Falls Sie die Dateiversion vor Ihren ?nderungen haben - m?chten, w?hlen Sie das - base-Argument. + erlaubt, Ihre ?nderungen in das Projektarchiv einzustellen. + Sie werden daf?r den Befehl svn resolve + aufrufen. Dieser Befehl akzeptiert die Option + , die es Ihnen erlaubt, den von + Ihnen gew?nschten Ansatz zur Konfliktaufl?sung anzugeben. + Vor Subversion 1.8 machte snn resolve die + Verwendung dieser Option erforderlich. + Jetzt erlaubt Ihnen Subversion, den Befehl svn + resolve ohne diese Option aufzurufen. Wenn Sie das + tun, startet Subversion seinen interaktiven + Konfliktaufl?sungs-Mechanismus, ?ber den Sie (falls Sie es + noch nicht getan haben) im vorigen Abschnitt mehr erfahren: + - - Falls Sie die Version m?chten, die nur Ihre ?nderungen - enth?lt, w?hlen Sie das - mine-full-Argument. + The option to the svn + resolve command instructs Subversion to use one of + its pre-packaged approaches to conflict resolution. If + you want Subversion to resolve the conflict using the + version of the file that you last checked out before making + your edits, use . If you'd + prefer instead to keep the version that contains only your + edits, use . You can also + select the version that your most recent update pulled from + the server (discarding your edits entirely)—that's + done using . There + are other canned resolution types, too. See + in + for details. - - Falls Sie die Version m?chten, die Ihre letzte + Die Option des Befehls + svn resolve fordert Subversion auf, einen + seiner vorgefertigten Ans?tze zur Konfliktaufl?sung zu + verwenden. Falls Sie m?chten, dass Subversion den Konflikt + dergestalt aufl?st, dass die von Ihnen zuletzt ausgecheckte + Version vor Ihren ?nderungen verwendet wird, w?hlen Sie + . Sollten Sie stattdessen die + Version behalten m?chten, die nur Ihre ?nderungen enth?lt, + verwenden Sie . Sie + k?nnen auch die Version w?hlen, die Ihre letzte Aktualisierung vom Server gezogen hat (und somit Ihre - ?nderungen vollst?ndig verwerfen wollen), w?hlen Sie das - Argument theirs-full. + ?nderungen vollst?ndig verwerfen); daf?r nehmen Sie + . Daneben gibt es + weitere Aufl?sungstypen aus der Dose. Zu + Details, siehe in + . - Wenn Sie jedoch frei aus Ihren ?nderungen und den - ?nderungen vom Server w?hlen m?chten, f?hren Sie den - konfliktbehafteten Text h?ndisch zusammen - (indem Sie die Konfliktmarken in der Datei begutachten und - editieren) und w?hlen das - working-Argument. + Sie sind jedoch nicht streng auf die + Alles-oder-Nichts-Optionen beschr?nkt. Wenn Sie frei aus + Ihren ?nderungen und den ?nderungen vom Server w?hlen + m?chten, k?nnen Sie die Arbeitsdatei manuell durch + h?ndische Bearbeitung des konfliktbehafteten + Textes reparieren (indem Sie die Konfliktmarken in der Datei + begutachten und editieren) und anschlie?end Subversion durch + den Befehl svn resolve mit der Option + mitteilen, den Konflikt + dergestalt aufzul?sen, dass die Arbeitsdatei im + gegenw?rtigen Zustand behalten wird. svn resolve entfernt die drei - tempor?ren Dateien und akzeptiert die Version, die Sie mit - der -Option angeben. Subversion - betrachtet die Datei nun als nicht mehr - konfliktbehaftet: + tempor?ren Dateien und akzeptiert die Version, die Sie + angegeben haben. Nach dem erfolgreichen Abschluss des + Befehls – und unter der Annahme, dass Sie die + Konfliktaufl?sung nat?rlich nicht interaktiv aufgeschoben + haben – betrachtet Subversion die Datei nun als nicht + mehr konfliktbehaftet: @@ -3237,7 +3387,7 @@ Manuelle Konfliktaufl?sung @@ -3253,7 +3403,7 @@ @@ -3406,25 +3556,20 @@ - Beachten Sie, dass svn resolve, - anders als die meisten anderen Befehle, die wir in diesem - Kapitel behandeln, erwartet, dass Sie ausdr?cklich alle - Dateien aufz?hlen, deren Konflikt Sie beseitigt haben. Auf - alle F?lle sollten Sie sorgf?ltig vorgehen und - svn resolve nur verwenden, falls Sie - sicher sind, den Konflikt in Ihrer Datei beseitigt zu haben - – sobald die tempor?ren Dateien entfernt sind, l?sst - Subversion zu, dass Sie die Datei in das Projektarchiv stellen, - selbst wenn sie noch Konfliktmarken enth?lt. + Wenn Sie svn resolve verwenden, + sollten Sie tunlichst darauf achten, Subversion nicht zu + sagen, dass Sie den Koflikt aufgel?st h?tten, wenn Sie es in + Wirklichkeit gar nicht getan haben. Sobald die tempor?ren + Dateien entfernt sind, l?sst Subversion zu, dass Sie die + Datei in das Projektarchiv stellen, selbst wenn sie noch + Konfliktmarken enth?lt. - - Konflikte - Aufl?sung - - - Falls Sie einen Konflikt erhalten und entscheiden, dass - Sie Ihre ?nderungen verwerfen wollen, k?nnen Sie - svn resolve --accept theirs-full + + + Konflikte + Aufl?sung + Falls Sie einen Konflikt erhalten und + entscheiden, dass Sie Ihre ?nderungen verwerfen wollen, + k?nnen Sie svn resolve --accept theirs-full CONFLICTED-PATH aufrufen, und Subversion wird Ihre ?nderungen ignorieren und die tempor?ren Dateien entfernen: @@ -3520,7 +3663,7 @@ Die Verwendung von svn revert @@ -4218,12 +4361,12 @@ Diese Befehle zeigen nur Protokolleintr?ge f?r die Revisionen, in der sich die - Arbeitsdatei (oder URL) ge?ndert hat. + genannte Datei (oder das Verzeichnis) ge?ndert hat. @@ -4624,9 +4767,9 @@ $ svn annotate images/logo.png -?berspringe Bin?rdatei: ?images/logo.png? +?berspringe Bin?rdatei (--force erzwingt Behandlung als Text): ?images/logo.png? $ @@ -5120,8 +5263,16 @@ Praxis kaum gemacht. ***The diff for this file has been truncated for email.*** From svnbook at googlecode.com Thu Dec 4 09:15:15 2014 From: svnbook at googlecode.com (svnbook at googlecode.com) Date: Thu, 04 Dec 2014 15:15:15 +0000 Subject: [svnbook] r4955 committed - Translation: ch06-server-configuration.xml part 1 up to and including... Message-ID: <001a11c1dfae69f08a0509656d57@google.com> Revision: 4955 Author: jmfelderhoff at gmx.eu Date: Thu Dec 4 15:15:11 2014 UTC Log: Translation: ch06-server-configuration.xml part 1 up to and including svn.serverconfig.httpd.perf.keepalive. https://code.google.com/p/svnbook/source/detail?r=4955 Modified: /branches/1.8/de/book/ch06-server-configuration.xml ======================================= --- /branches/1.8/de/book/ch06-server-configuration.xml Tue Nov 25 15:14:00 2014 UTC +++ /branches/1.8/de/book/ch06-server-configuration.xml Thu Dec 4 15:15:11 2014 UTC @@ -1,3 +1,5 @@ + + - Subversion wurde mit einer abstrakten + + + API + Schichten + Projektarchiv-Zugriffs-Schicht (RA) + Subversion wurde mit einer abstrakten Projektarchiv-Zugriffs-Schicht entworfen. Dies bedeutet, dass auf ein Projektarchiv automatisiert von beliebigen Server-Prozessen zugegriffen werden kann, und die für Clients @@ -70,9 +83,17 @@ allerdings nur zwei weitverbreitete Server. - Apache ist ein sehr beliebter Webserver, welcher mittels des - mod_dav_svn-Moduls auf Projektarchive - zugreifen und diese für Clients verfügbar machen kann. Verwendet - wird dabei das WebDAV/DeltaV-Protokoll, welches eine Erweiterung - von HTTP ist. Da Apache ein stark erweiterbarer Webserver ist, - bietet er eine Menge an frei verfügbaren - Funktionen/Modulen, wie mittels SSL verschlüsselte Verbindungen, - Protokollierung, sowie die Integration diverser - Authentifikationssysteme von Drittanbietern und einen - eingeschränkten Web-Browser-gestützten + + + httpd + + + Apache HTTP Server + httpd + Apache HTTP Server (auch bekannt als + httpd) ist ein sehr beliebter Webserver, + welcher mittels des mod_dav_svn-Moduls auf + Projektarchive zugreifen und diese für Clients verfügbar machen + kann. Verwendet wird dabei das WebDAV/DeltaV-Protokoll, welches + eine Erweiterung von HTTP ist. Da Apache ein stark + erweiterbarer Webserver ist, bietet er eine Menge an frei + verfügbaren Funktionen/Modulen, wie mittels SSL + verschlüsselte Verbindungen, Protokollierung, sowie die + Integration diverser Authentifikationssysteme von Drittanbietern + und einen eingeschränkten Web-Browser-gestützten Projektarchiv-Lesezugriff. - In der anderen Ecke befindet sich + + + svnserve + In der anderen Ecke befindet sich svnserve: ein kleiner, leichtgewichtiger Server, der ein einfaches Netzwerkprotokoll für die Zugriffe der Clients verwendet. Da dieses Protokoll für die Verwendung mit @@ -166,7 +201,7 @@ Vergleich der Serveroptionen für Subversion @@ -406,6 +441,7 @@
+ @@ -446,6 +482,7 @@ vielleicht gegen eine der Möglichkeiten sprechen.
+ - Es gibt mehrere Möglichkeiten, svnserve - zu starten: + + + svnserve + betreiben + Es gibt mehrere Möglichkeiten, + svnserve zu starten: @@ -1033,13 +1085,24 @@ svnserve als Unix-Dienst - Die einfachste Variante ist, svnserve - als eigenständigen (Unix-)Dienst laufen zu lassen. Verwenden - Sie hierfür die Option beim Aufruf: + + + svnserve + betreiben + Daemon-Modus + Die einfachste Variante ist, + svnserve als eigenständigen (Unix-)Dienst + laufen zu lassen. Verwenden Sie hierfür die + Option beim Aufruf: - Wenn Sie inetd zum Starten des - Prozesses verwenden wollen, so übergeben Sie + + + svnserve + betreiben + über inetd + + + inetd + Wenn Sie inetd zum Starten + des Prozesses verwenden wollen, so übergeben Sie svnserve beim Aufruf die Option (). Im folgenden Beispiel sehen wir die Ausgaben beim Aufruf von - svnserve -i - auf der Kommandozeile. Beachten Sie aber, dass dies nicht - der Weg ist, wie der Dienst normalerweise gestartet wird - – eine genaue Beschreibung, wie - svnserve über inetd - gestartet wird, folgt anschließend. + svnserve -i auf der Kommandozeile. + Beachten Sie aber, dass dies nicht der Weg ist, wie der + Dienst normalerweise gestartet wird – eine genaue + Beschreibung, wie svnserve über + inetd gestartet wird, folgt + anschließend. @@ -1232,6 +1311,96 @@ hinzufügen, um einzuschränken, welche Projektarchive exportiert werden dürfen. + + + + + + svnserve über xinetd + + + + + svnserve + betreiben + über xinetd + + + xinetd + Einige Betriebssysteme stellen den Daemon + xinetd als Alternative zu + inetd zur Verfügung. Glücklicherweise + können Sie svnserve auch für die + Verwendung mit xinetd konfigurieren. Dazu + müssen Sie eine Konfigurationsdatei + /etc/xinetd.d/svn mit dem folgenden + Inhalt anlegen: + + + +# default: on +# description: Subversion server for the svn protocol +service svn +{ + disabled = no + port = 3690 + socket_type = stream + protocol = tcp + wait = no + user = subversion + server = /usr/local/bin/svnserve + server_args = -i -r /path/to/repositories +} + + + + + Stellen Sie sicher, dass Ihre Konfigurationsdatei + /etc/services die Definition für den + Port beinhaltet, der für das Protokoll + svn verwendet wird (wie in + beschrieben), da der Daemon ansonsten nicht korrekt + startet. + + + In Redhat-basierten Distributionen müssen Sie den neuen + Dienst mit chkconfig --add svn + aktivieren. Anschließend können Sie den Server unter + Verwendung der graphischen Konfigurations-Werkzeuge ein- und + ausschalten. + @@ -1242,7 +1411,12 @@ svnserve über einen Tunnel - Eine weitere Möglichkeit ist, + + + svnserve + betreiben + Tunnel-Modus + Eine weitere Möglichkeit ist, svnserve mittels der -Option im Tunnel-Modus aufzurufen. Bei diesem Aufruf wird vorausgesetzt, dass ein anderes Programm @@ -1308,7 +1487,12 @@ svnserve als ein Dienst unter Windows - Gehört ihr Windows zur NT-Familie (Windows oder neuer), - so können Sie svnserve auch als normalen - Windows-Dienst laufen lassen. Dies ist wesentlich + + + svnserve + betreiben + als Windows-Dienst + Gehört ihr Windows zur NT-Familie (Windows oder + neuer), so können Sie svnserve auch als + normalen Windows-Dienst laufen lassen. Dies ist wesentlich sinnvoller, als die Option () zu verwenden und ihn als selbstständigen Dienst zu betreiben. Sie müssten dann immer @@ -1485,14 +1674,30 @@ svnserve als ein launchd-Job - Mac OS X (10.4 und höher) verwendet + + + svnserve + betreiben + uber launchd + + + launchd + Mac OS X (10.4 und höher) verwendet launchd zur Prozessverwaltung (einschließlich Dämonen) sowohl systemweit als auch pro Anwender. Ein launchd-Job wird durch @@ -1699,10 +1904,26 @@ Integrierte Authentifizierung und Autorisierung - Wenn sich ein Subversion-Client mit einem + + + svnserve + Authentifizierung + + + svnserve + Autorisierung + Wenn sich ein Subversion-Client mit einem svnserve-Prozess verbindet, geschieht folgendes: @@ -2153,9 +2374,9 @@ - <command>svnserve</command> mit SASL verwenden + svnserve mit SASL verwenden Bei der Verwendung eines Tunnels wird die Autorisierung größtenteils durch die Betriebssystem-Berechtigungen auf die @@ -2727,9 +2952,14 @@ read oder auth-access = none setzen.Beachten Sie, dass die Verwendung irgendwelcher durch svnserve - sichergestellten Zugriffskontrollen sinnlos ist, da der - Anwender ohnehin direkten Zugriff auf die - Projektarchiv-Datenbank hat. + sichergestellten Zugriffskontrollen nur dann einen Sinn + ergibt, fall die Anwender sie nicht umgehen und unter + Verwendung anderer Werkzeuge (etwa cd und + vi) direkt auf das + Projektarchiv-Verzeichnis zugreifen können; die Einrichtung + derartiger Einschränkungen wird in + beschrieben. Viele der folgenden Erläuterungen beziehen sich auf @@ -3181,7 +3411,7 @@ Web-Seite frei verfügbar ist. So befindet sich beispielsweise eine allgemeine Referenz der Konfigurationsdirektiven unter - . + Stellen Sie als nächstes sicher, dass Apache Zugriff auf + die Module hat, die die einfache Authentifizierung und + damit zusammenhängende Funktionalität liefern: + mod_auth_basic, + mod_authn_file und + mod_authz_user. Vielfach sind diese + Module in httpd selbst hineinkompiliert + worden, aber falls nicht, könnte es sein, dass Sie explizit + eins oder mehrere von ihnen mit der Direktive + LoadModule laden müssen: + + + +LoadModule auth_basic_module modules/mod_auth_basic.so +LoadModule authn_file_module modules/mod_authn_file.so +LoadModule authz_user_module moduels/mod_authz_user.so + + + + + Nachdem sichergestellt ist, dass Apache Zugriff auf die + benötigte Funktionalität hat, müssen Sie noch ein paar + Direktiven innerhalb des Blocks + <Location> hinzufügen, um + Apache mitzuteilen, welche Art der Authentisierung Sie + verwenden möchten, und wie das gemacht werden soll: <Location /svn> DAV svn SVNParentPath /var/svn + # Authentication: Basic AuthName "Subversion repository" AuthType Basic + AuthBasicProvider file AuthUserFile /etc/svn-auth.htpasswd </Location> @@ -3898,6 +4168,19 @@ + AuthBasicProvider gibt den + Anbieter für die einfache Authentifizierung an, der für + den Ort verwendet werden soll. In unserem Beispiel + möchten wir in einer lokalen Datei mit Passwörtern + nachsehen. + + + @@ -3925,8 +4208,8 @@ Anwendernamen und das Passwort vom Subversion-Client besorgen soll, falls eine Autorisierung benötigt wird. (Wenn eine Autorisierung erforderlich ist, - benötigt Apache auch eine Authentifikation.) Was hier jedoch noch - fehlt, sind Direktiven, die Apache sagen, + benötigt Apache auch eine Authentifizierung.) Was hier + jedoch noch fehlt, sind Direktiven, die Apache sagen, welche Arten von Client-Anfragen eine Autorisierung erfordern; momentan sind das keine. Das Einfachste ist es, anzugeben, dass @@ -3944,6 +4227,7 @@ # Authentication: Basic AuthName "Subversion repository" AuthType Basic + AuthBasicProvider file AuthUserFile /etc/svn-auth.htpasswd # Authorization: Authenticated users only @@ -3962,6 +4246,28 @@ festzulegen, sehen Sie unter nach.
+ + + Der Standardwert für die Option + AuthBasicProvider ist + file, also werden wir es in künftigen + Beispielen nicht anführen. Sie sollten sich aber bewusst + sein, dass, wenn Sie diesen Wert in einem erweiterten + Kontext auf etwas anderes gesetzt haben, ihn ausdrücklich + wieder auf file in Ihrem + <Location>-Block zurücksetzen + müssen, falls Sie dieses Verhalten wünschen. + + @@ -3992,13 +4298,18 @@ Die Konfigurierung von Apache für die - Digest-Authentifizierung ist unkompliziert und nur eine - kleine Abweichung von unserem vorangegangenen - Beispiel: + Digest-Authentifizierung ist unkompliziert. Sie müssen + sicher stellen, dass das Modul + mod_auth_digest (statt + mod_auth_basic) verfügbar ist, und dann + nur noch ein wenig von unserem vorangegangenen + Beispiel abweichen:
@@ -4009,6 +4320,7 @@ # Authentication: Digest AuthName "Subversion repository" AuthType Digest + AuthDigestProvider file AuthUserFile /etc/svn-auth.htdigest # Authorization: Authenticated users only @@ -4021,31 +4333,57 @@ Notice that AuthType is now set to Digest, and we specify a different path for AuthUserFile. Digest authentication - uses a different file format than Basic authentication; it - is created using Apache's htdigest + uses a different file format than Basic authentication, + created and managed using Apache's htdigest utilitySee . rather - than htpasswd. Digest authentication - also has the additional concept of a + />. rather than htpasswd. + Digest authentication also has the additional concept of a realm, which must match the value of the - AuthName directive. The password file - can be created as follows:
+ AuthName directive. --> Beachten Sie, dass AuthType nun auf Digest gesetzt ist, und wir einen unterschiedlichen Pfad für AuthUserFile angegeben haben. Digest-Authentifizierung verwendet ein - unterschiedliches Dateiformat als Basic-Authentifizierung; - es wird mit Apaches Dienstprogramm - htdigest erzeugtSiehe + unterschiedliches Dateiformat als einfache + Authentifizierung, erzeugt und verwaltet + mit Apaches Dienstprogramm htdigest + Siehe . statt mit htpasswd. Digest-Authentifizierung besitzt auch das zusätzliche - Konzept eines Bereichs, realm, der dem Wert - der Direktive AuthName entsprechen muss. - Die Passwortdatei kann wie folgt erzeugt werden: + Konzept eines Bereichs, + realm, der dem Wert der + Direktive AuthName entsprechen + muss. + + + Für die Digest-Authentifizierung wird der Anbieter mit + der Direkive AuthDigestProvider + ausgewählt, wie im vorangegangenen Beispiel gezeigt. Wie + bei der Direktive AuthBasicProvider, + ist auch hier file der Standardwert der + Option AuthDigestProvider option, so + dass diese Zeile nicht unbedingt notwendig ist, es sei + denn, Sie müssen einen aus einem weiteren + Konfigurations-Kontext ererbten unterschiedlichen Wert + angeben. + + + The password file can be created as follows: + Manchmal müssen Sie gar nicht so ein strenges Regiment - führen. So erlaubt beispielsweise das eigene Projektarchiv - von Subversion unter - allen auf der - Welt lesende Operationen (wie etwa das Auschecken von - Arbeitskopien und das Stöbern im Projektarchiv), - beschränkt jedoch Schreiboperationen auf authentifizierte - Nutzer. Die Direktiven Limit und - LimitExcept erlauben diese Art der - selektiven Einschränkung. Ähnlich der Direktive - Location haben diese Blöcke Start- und - Ende-Tags, die Sie innerhalb Ihres + führen. So erlaubt beispielsweise der Server, der das eigene + Projektarchiv von Subversion unter + beherbergt, + allen auf der Welt lesende Operationen (wie etwa das + Auschecken von Arbeitskopien und das Stöbern im + Projektarchiv), beschränkt jedoch Schreiboperationen auf + authentifizierte Nutzer. Die Direktiven + Limit und LimitExcept + erlauben diese Art der selektiven Einschränkung. Ähnlich der + Direktive Location haben diese Blöcke + Start- und Ende-Tags, die Sie innerhalb Ihres <Location>-Blocks unterbringen. @@ -4652,8 +4990,7 @@ you can disable all of this path checking. In your httpd.conf file, use the SVNPathAuthz directive as shown in - . - + . --> Auf der anderen Seite gibt es auch eine Art Notausgang, der es Ihnen erlaubt, Sicherheitsmerkmale gegen @@ -4757,12 +5094,15 @@ It's beyond the scope of this book to describe how to generate client and server SSL certificates and how to configure Apache to use them. Many other references, - including Apache's own documentation, describe the process. + including Apache's own documentation (), + describe the process. --> Es würde den Rahmen dieses Buches sprengen, wenn beschrieben würde, wie SSL Client- und Server-Zertifikate erzeugt werden und wie Apache für ihre Verwendung konfiguriert wird. - Viele andere Bücher, darunter Apaches eigene Dokumentation, + Viele andere Bücher, darunter Apaches eigene Dokumentation + (), erläutern diese Aufgabe. @@ -4773,7 +5113,8 @@ tool such as OpenSSL ().While self-signed certificates are still vulnerable to a man-in-the-middle - attack, such an attack is much more difficult for a casual + attack (before a client sees the certificate for the first + time), such an attack is much more difficult for a casual observer to pull off, compared to sniffing unprotected passwords. --> @@ -4781,12 +5122,14 @@ der Regel kostenpflichtig, doch können Sie als Minimallösung Apache so konfigurieren, das er ein selbstgezeichnetes Zertifikat verwendet, dass durch ein - Werkzeug wie etwa OpenSSL erzeugt wurde - ().Obgleich - selbstgezeichnete Zertifikate anfällig für - Man-in-the-Middle-Angriffe sind, ist ein - solcher Angriff schwieriger für einen laienhaften - Beobachter durchzuführen als ungeschützte Passwörter + Werkzeug wie etwa OpenSSL erzeugt wurde + ().Obgleich selbstgezeichnete + Zertifikate anfällig für + Man-in-the-Middle-Angriffe sind (bevor ein + Client das Zertifikat erstmalig sieht), ist ein solcher + Angriff schwieriger für einen laienhaften Beobachter + durchzuführen als ungeschützte Passwörter abzuschnorcheln. @@ -5063,6 +5406,196 @@ + + + + Auf Leistung abstimmen + + + Der Apache HTTP-Server ist zwar für Leistungsfähigkeit + gebaut worden, jedoch können Sie seine Standard-Konfiguration + verbessern, um noch bessere Ergebnisse beim Anbieten Ihrer + Subversion-Dienste zu erhalten. In diesem Abschnitt empfehlen + wir einige zielgerichtete Konfigurations-Änderungen zu + erwägen. Seien Sie sich jecoch bewusst, das einige der hier + erörterten Konfigurations-Optionen von + httpd.conf Auswirkungen auf das + allgemeine Verhalten Ihres Servers haben, nicht bloß für den + Subversion-Dienst. Insofern müssen Sie die gesamte Breite + Ihrer HTTP-Dienste berücksichtigen, um festzustellen, welche + Auswirkungen Änderungen an diesen Einstellungen wegen + Subversion auf Ihre anderen Dienste haben werden. + + + + KeepAlive + + + Standardmäßig ist der Apache HTTP Server so eingestellt, + dass er es erlaubt, eine einzelne Verbindung zum Server für + mehrere Anfragen wiederzuverwenden. Für Subversion ist das + sehr vorteilhaft, da, anders als bei vielen HTTP=basierten + Anwendungen, Subversion schnell für eine einzelne Operation + hunderte oder tausende von Anfragen an einen Server erzeugen + kann, und die Kosten beim Öffnen einer neuen Verbindung zum + Server nicht trivial sind. Subversion versucht, so viele + Anfragen wie möglich aus einer Verbindung herauszuquetschen, + bevor der Server sie beendet. Die Direktive + KeepAlive ist der boolsche Schalter, der + diese Möglichkeit zur Wiederverwendung einer Verbbindung + ermöglicht oder unterbindet. Wie bereits erwähnt ist deren + Wert standardmäßig On. + + Die Sperren-Ändern-Entsperren-Lösung - + In Subversion wird das client-seitige Objekt, über das + jeder Anwender verfügt – das Verzeichnis mit + versionierten Dateien zusammen mit Metadaten, die dem System + erlauben, erstere zu überwachen und mit dem Server zu + kommunizieren – eine Arbeitskopie + genannt. Obwohl andere Versionskontrollsysteme den Begriff + Projektarchiv (Repository) für + das client-seitige Objekt verwenden, ist es sowohl falsch + als auch eine verbreitete Quelle für Missverständnisse, + den Begriff in diesem Sinn im Kontext von Subversion zu + verwenden. + + + Arbeitskopien werden später in + beschrieben. + + @@ -848,15 +879,6 @@ --> Revisionen - - - Revisionen - Definition - - - Jedes Mal wenn das Projektarchiv eine Übertragung annimmt, - wird ein neuer Zustand des Dateisystem-Baums erzeugt, der - Revision genannt wird. Jeder Revision - wird eine einmalige natürliche Zahl zugewiesen, die um eins - größer ist als die Vorgänger-Revision. Die anfängliche + + + Revisionen + Jedes Mal wenn das Projektarchiv eine Übertragung + annimmt, wird ein neuer Zustand des Dateisystem-Baums erzeugt, + der Revision genannt wird. Jeder + Revision wird eine einmalige natürliche Zahl zugewiesen, die + um eins größer ist als die Vorgänger-Revision. Die anfängliche Revision eines frisch erzeugten Projektarchivs bekommt die Nummer 0 und besteht lediglich aus einem leeren Wurzelverzeichnis. @@ -923,24 +951,19 @@ --> Globale Revisionsnummern - - Revisionen - globale - - - - Anders als die meisten Versionskontrollsysteme werden - die Revisionsnummern von Subversion auf - den kompletten Projektarchiv-Baum - anstatt auf einzelne Dateien angewendet. Jede - Revisionsnummer wählt einen kompletten Baum aus; ein - bestimmter Zustand nach der Übertragung einer Änderung. Man - kann sich auch vorstellen, dass Revision N den Zustand des - Projektarchiv-Dateisystems nach der n-ten Übertragung - repräsentiert. Wenn Subversion-Benutzer von Revision - 5 von foo.c sprechen, meinen - sie tatsächlich foo.c so wie es - in Revision 5 aussieht. Beachten Sie, dass sich im + + + Revisionen + globale + Anders als die meisten Versionskontrollsysteme + werden die Revisionsnummern von Subversion auf den + kompletten Projektarchiv-Baum anstatt auf + einzelne Dateien angewendet. Jede Revisionsnummer wählt + einen kompletten Baum aus; ein bestimmter Zustand nach der + Übertragung einer Änderung. Man kann sich auch vorstellen, + dass Revision N den Zustand des Projektarchiv-Dateisystems + nach der n-ten Übertragung repräsentiert. Wenn + Subversion-Benutzer von Revision 5 von + foo.c sprechen, meinen sie + tatsächlich foo.c so wie es in + Revision 5 aussieht. Beachten Sie, dass sich im Allgemeinen die Revisionen N und M einer Datei nicht notwendigerweise unterscheiden! Viele andere Versionskontrollsysteme verwenden dateibezogene @@ -980,31 +1007,20 @@ --> Projektarchive adressieren - - svn - Syntax - URLs - - - svnsync - - Syntax - URLs - - - - Subversion-Client-Programme verwenden URLs, um Dateien und + + + Projektarchiv-URL + Subversion-Client-Programme verwenden URLs, um Dateien und Verzeichnisse in Subversion-Projektarchivs zu identifizieren. Meistens benutzen diese URLs die Standardsyntax, die es erlaubt, Servernamen und Portnummern als Teil des URL zu @@ -1136,7 +1152,6 @@ - - In Subversion 1.6 wurde eine neue Notation mit Zirkumflex + + + projektarchiv-relative URL + + + Yirkumflex-Syntax + + + ^ + caret syntax + In Subversion 1.6 wurde eine neue Notation mit Zirkumflex (^) als Kurzschreibweise für der URL des Wurzelverzeichnisses des Projektarchivs eingeführt. Sie können beispielsweise @@ -1295,28 +1332,24 @@ --> Subversion-Arbeitskopien - - - Arbeitskopie - Definition - - - - Eine Subversion-Arbeitskopie ist ein gewöhnlicher + + + Arbeitskopien + Eine Subversion-Arbeitskopie ist ein gewöhnlicher Verzeichnisbaum auf Ihrem lokalen System, der eine Ansammlung von Dateien enthält. Sie können diese Dateien nach belieben bearbeiten, und wenn es sich um Quelltexte handelt, können Sie @@ -1331,37 +1364,59 @@ After you've made some changes to the files in your working copy and verified that they work properly, Subversion provides you with commands to publish your - changes to the other people working with you on your project - (by writing to the repository). If other people publish their - own changes, Subversion provides you with commands to merge - those changes into your working copy (by reading from the - repository). + changes (by writing to the repository), thereby making them + available to the other people working with you on your + project. If other people publish their own changes, + Subversion provides you with commands to merge those changes + into your own working copy (by reading from the repository). + Notice that the central repository is the broker for + everybody's changes in Subversion—changes aren't passed + directly from working copy to working copy in the typical + workflow. --> Nachdem Sie einige Änderungen an den Dateien Ihrer Arbeitskopie gemacht und sichergestellt haben, dass sie funktionieren, stellt Ihnen Subversion Befehle zur Verfügung, - um Ihre Änderungen den anderen, die an Ihrem Projekt + um Ihre Änderungen für die anderen, die an Ihrem Projekt mitarbeiten, publik zu machen (indem es ins Projektarchiv schreibt). Wenn die anderen ihre Änderungen veröffentlichen, stellt Ihnen Subversion Befehle zur - Verfügung, um diese Änderungen in Ihr Arbeitsverzeichnis - einzupflegen (indem es aus dem Projektarchiv liest). + Verfügung, um diese Änderungen in Ihr eigenes + Arbeitsverzeichnis einzupflegen (indem es aus dem + Projektarchiv liest). Beachten Sie, dass das zentrale + Projektarchiv der Makler für die änderungen aller in + Subversion ist – im typischen Arbeitsablauf werden + Änderungen nicht direkt von Arbeitskopie zu Arbeitskopie + weitergegeben. - - Eine Arbeitskopie verfügt darüber hinaus über einige - zusätzliche Dateien, die von Subversion erzeugt und gepflegt - werden, um es bei diesen Befehlen zu unterstützen. + + + Verwaltungsverzeichnis + + + .svn + Verwaltungsverzeichnis + Eine Arbeitskopie verfügt darüber hinaus über + einige zusätzliche Dateien, die von Subversion erzeugt und + gepflegt werden, um es bei diesen Befehlen zu unterstützen. Insbesondere enthält jede Arbeitskopie ein Unterverzeichnis namens .svn, auch bekannt als das Verwaltungsverzeichnis der @@ -1444,6 +1499,15 @@ + + + Revisionen + Arbeits- + + - Unterbefehle - checkout - - - - Arbeitskopie - Erstellung - - - checkout - - Arbeitskopie, Erstellung - - Um eine Arbeitskopie zu erhalten, muss zunächst irgendein - Teilbaum des Projektarchivs ausgecheckt - werden (check out). (Der Begriff check - out hört sich an, als habe es etwas mit dem - Sperren oder Reservieren von Ressourcen zu tun, hat es aber - nicht; es erzeugt lediglich eine Arbeitskopie des Projektes - für Sie.) Wenn Sie zum Beispiel /calc - auschecken, bekommen Sie eine Arbeitskopie wie diese: + + + svn + Unterbefehle + checkout + + + auschecken + + + Arbeitskopie + Erstellung + auschecken + Um eine Arbeitskopie zu erhalten, muss zunächst + irgendein Teilbaum des Projektarchivs + ausgecheckt werden + (check out). (Der Begriff + check out hört sich an, als habe es + etwas mit dem Sperren oder Reservieren von Ressourcen zu + tun, hat es aber nicht; es erzeugt lediglich eine + Arbeitskopie des Projektes für Sie.) Wenn Sie zum Beispiel + /calc auschecken, bekommen Sie eine + Arbeitskopie wie diese: @@ -1708,57 +1777,66 @@ benötigt. - Angenommen, Sie nehmen Änderungen an + + + übertragen + + + einchecken + Übertragen + Angenommen, Sie nehmen Änderungen an button.c vor. Da sich das Verzeichnis .svn den ursprünglichen Änderungszeitpunkt und den Inhalt der Datei merkt, kann Subversion erkennen, dass Sie die Datei verändert haben. Trotzdem veröffentlicht Subversion Ihre Änderungen solange - nicht, bis Sie es ausdrücklich hierzu auffordern. Der Vorgang - des Veröffentlichens von Änderungen über das Projektarchiv ist - gemeinhin bekannter als commit (oder - check in). + nicht, bis Sie es ausdrücklich hierzu auffordern. Der + Vorgang des Veröffentlichens von Änderungen über das + Projektarchiv ist gemeinhin bekannter als + commit (oder check + in). - - svn - - Unterbefehle - commit - - - - Übertragen - Arbeitskopie, commit - - - - Arbeitskopie - commit - - Um Ihre Änderungen anderen gegenüber zu veröffentlichen, - können Sie den Subversion-Befehl svn commit - verwenden: + + + svn + Unterbefehle + commit + + + Übertragen + Um Ihre Änderungen anderen gegenüber zu + veröffentlichen, können Sie den Subversion-Befehl + svn commit verwenden: @@ -1805,44 +1883,46 @@ Arbeitskopie unverändert; Subversion ändert Arbeitskopien nur auf Wunsch des Benutzers. - - svn - Unterbefehle - update - - - - Aktualisierung - Arbeitskopie, update - - - - Arbeitskopie - Aktualisierung - - - - Um ihr Projekt auf den neuesten Stand zu bringen, kann - Sally Subversion dazu auffordern, ihre Arbeitskopie zu - aktualisieren, indem sie den Befehl svn update - verwendet. Das bringt sowohl Ihre als auch alle anderen - Änderungen die übertragen wurden seit sie ausgecheckt hatte in - ihre Arbeitskopie. + + + svn + Unterbefehle + update + + + altualisieren + + + Arbeitskopien + aktualisieren + aktualisieren + Um ihr Projekt auf den neuesten Stand zu + bringen, kann Sally Subversion dazu auffordern, ihre + Arbeitskopie zu aktualisieren, indem sie den Befehl + svn update verwendet. Das bringt sowohl + Ihre als auch alle anderen Änderungen die übertragen wurden + seit sie ausgecheckt hatte in ihre Arbeitskopie. @@ -1888,36 +1968,37 @@ --> Arbeitskopien mit gemischten Revisionen - - Arbeitskopie - gemischte Revisionen - - - - Als allgemeingültiges Prinzip versucht Subversion, so - flexibel wie möglich zu sein. Eine besondere Ausprägung der - Flexibilität ist die Fähigkeit, eine Arbeitskopie bestehend - aus Dateien und Verzeichnissen mit einer Mischung - unterschiedlicher Revisionsnummern zu haben. Subversions - Arbeitskopien entsprechen nicht jederzeit einer einzigen - Revision des Projektarchivs; sie können Dateien aus mehreren - unterschiedlichen Revisionen enthalten. Nehmen wir z.B. an, - Sie checken sich eine Arbeitskopie einer Datei aus einem - Projektarchiv aus, deren neueste Revision 4 ist: + + + Arbeitskopien + gemischte Revisionen + Als allgemeingültiges Prinzip versucht + Subversion, so flexibel wie möglich zu sein. Eine besondere + Ausprägung der Flexibilität ist die Fähigkeit, eine + Arbeitskopie bestehend aus Dateien und Verzeichnissen mit + einer Mischung unterschiedlicher Revisionsnummern zu haben. + Subversions Arbeitskopien entsprechen nicht jederzeit einer + einzigen Revision des Projektarchivs; sie können Dateien aus + mehreren unterschiedlichen Revisionen enthalten. Nehmen wir + z.B. an, Sie checken sich eine Arbeitskopie einer Datei aus + einem Projektarchiv aus, deren neueste Revision 4 + ist: @@ -2007,8 +2088,8 @@ a push action does not cause a pull nor vice versa. 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, + doesn't mean you're ready to receive changes that others + have checked in. And if you have new changes still in progress, svn update should gracefully merge repository changes into your own, rather than forcing you to publish them. @@ -2040,55 +2121,60 @@ nur. Nehmen wir zum Beispiel an, Ihre Arbeitskopie besteht - komplett aus Revision 10. Sie bearbeiten die Datei - foo.html und führen ein svn - commit aus, das die Revision 15 im Projektarchiv - erzeugt. Nach der erfolgreichen Übertragung würden viele neue - Benutzer erwarten, dass die gesamte Arbeitskopie auf - Revision 15 stehe, was aber nicht der Fall ist! Alle - möglichen Änderungen können sich zwischen Revision 10 und - 15 im Projektarchiv zugetragen haben. Der Client weiß - nichts über diese Änderungen im Projektarchiv, da Sie noch - nicht svn update aufgerufen haben, und - svn commit zieht keine Änderungen - herein. Wenn andererseits svn commit - automatisch Änderungen hereinziehen würde, könnte die - gesamte Arbeitskopie auf Revision 15 gebracht werden - – doch dann wäre die grundlegende Regel verletzt, - dass Lesen und Schreiben getrennte Aktionen sind. Deshalb - ist das einzig Sichere, das der Subversion-Client tun - kann, die eine Datei – foo.html - – als zur Revision 15 gehörig zu kennzeichnen. Der - Rest der Arbeitskopie verbleibt bei Revision 10. Nur durch - svn update können die neuesten - Änderungen hereingezogen und die gesamte Arbeitskopie als - Revision 15 gekennzeichnet werden. + komplett aus Revision 10, während andere ihre Änderungen + übertragen haben, so dass die jüngste Revision im + Projektarchiv nun Revision 14 ist. Sie bearbeiten die + Datei foo.html und führen ein + svn commit aus, das die Revision 15 im + Projektarchiv erzeugt. Nach der erfolgreichen Übertragung + würden viele neue Benutzer erwarten, dass die gesamte + Arbeitskopie auf Revision 15 stehe, was aber nicht der + Fall ist! Alle möglichen Änderungen können sich zwischen + Revision 10 und 15 im Projektarchiv zugetragen haben. Der + Client weiß nichts über diese Änderungen im Projektarchiv, + da Sie noch nicht svn update aufgerufen + haben, und svn commit zieht keine + Änderungen herein. Wenn andererseits svn + commit automatisch Änderungen hereinziehen + würde, könnte die gesamte Arbeitskopie auf Revision 15 + gebracht werden – doch dann wäre die grundlegende + Regel verletzt, dass Lesen und Schreiben getrennte + Aktionen sind. Deshalb ist das einzig Sichere, das der + Subversion-Client tun kann, die eine Datei – + foo.html – als zur Revision 15 + gehörig zu kennzeichnen. Der Rest der Arbeitskopie + verbleibt bei Revision 10. Nur durch svn + update können die neuesten Änderungen + hereingezogen und die gesamte Arbeitskopie als Revision 15 + gekennzeichnet werden. @@ -2169,30 +2255,37 @@ Gemischte Revisionen sind nützlich - Wenn Ihr Projekt hinreichend komplex ist, werden Sie - entdecken, dass es manchmal ganz nett sein kann, Teile - Ihrer Arbeitskopie zurückzudatieren - (oder auf eine ältere Version als die vorliegende zu - aktualisieren); wie das gemacht wird, wird in - gezeigt. Vielleicht möchten - Sie eine ältere Version eines Teilmoduls in einem - Unterverzeichnis testen, oder Sie möchten herausbekommen, - wann ein Fehler das erste Mal in einer Datei auftauchte. - Dies ist der Zeitmaschinen-Aspekt eines + + + Rückdatierung + Wenn Ihr Projekt hinreichend komplex ist, + werden Sie entdecken, dass es manchmal ganz nett sein + kann, Teile Ihrer Arbeitskopie + zurückzudatieren (oder auf eine + ältere Version als die vorliegende zu aktualisieren); wie + das gemacht wird, wird in + gezeigt. Vielleicht möchten Sie eine ältere Version eines + Teilmoduls in einem Unterverzeichnis testen, oder Sie + möchten herausbekommen, wann ein Fehler das erste Mal in + einer Datei auftauchte. Dies ist der + Zeitmaschinen-Aspekt eines Versionskontrollsystems – die Eigenschaft, die es ermöglicht, irgendeinen Teil Ihrer Arbeitskopie zeitlich nach vorne oder nach hinten zu verschieben. From svnbook at googlecode.com Wed Dec 10 06:49:05 2014 From: svnbook at googlecode.com (svnbook at googlecode.com) Date: Wed, 10 Dec 2014 12:49:05 +0000 Subject: Issue 225 in svnbook: Commit fails: svn: E155011: File 'file' is out of date but I have the nevest version Message-ID: <0-7155889305988986295-2647585101155598874-svnbook=googlecode.com@googlecode.com> Status: New Owner: ---- Labels: Type-Defect Priority-Medium New issue 225 by M.Forme... at gmail.com: Commit fails: svn: E155011: File 'file' is out of date but I have the nevest version https://code.google.com/p/svnbook/issues/detail?id=225 Hello, there are some files that I cannot commit, I have no conflicts and the newest version of files, everything looks fine but commit fails. So theoretically everything is fine, I can update and send new files to repository but I cannot commit changes on few files. Those are ASCII files but they have unity3d expansions like '.prefab'. When I try to commit via Eclipse (svn on Eclipse works perfectly fine on other projects): commit -m "update" /path/folder with spaces/file1.file /path/folder with spaces/file2.file /path/folder with spaces/file3.file Sending /path/folder with spaces/file1.file Sending /path/folder with spaces/file2.file Sending /path/folder with spaces/file3.file Transmitting file data ... svn: E155011: Commit failed (details follow): svn: E155011: Commit failed (details follow): svn: E155011: File '/path/folder with spaces/file1.file' is out of date svn: E155011: Commit failed (details follow): svn: E155011: File '/path/folder with spaces/file1.file' is out of date When I try to use console to commit my changes: $ svn up Updating '.': At revision 24. $ svn status M path/folder with spaces/file1.file M path/folder with spaces/file2.file M path/folder with spaces/file3.file $ svn ci Transmitting file data ..svn: E155011: Commit failed (details follow): svn: E155011: File '/path/folder with spaces/file.file' is out of date svn: E160013: File not found: transaction '24-1p', path '/path/folder%20with%20spaces/file.file' svn: E155011: Your commit message was left in a temporary file: svn: E155011: '/path/svn-commit.tmp' $ svn up Updating '.': At revision 24. I have absolutely no idea why it is out of date, for others it works fine, it seems that it happens only to me. So this file is not "out of date", I have the newest version. Best regards, Michał -- You received this message because this project is configured to send all issue notifications to this address. You may adjust your notification preferences at: https://code.google.com/hosting/settings From svnbook at googlecode.com Wed Dec 17 02:26:34 2014 From: svnbook at googlecode.com (svnbook at googlecode.com) Date: Wed, 17 Dec 2014 08:26:34 +0000 Subject: [svnbook] r4957 committed - Translation: ch01-basic-usage.xml Message-ID: <001a1133300acc530f050a653beb@google.com> Revision: 4957 Author: jmfelderhoff at gmx.eu Date: Wed Dec 17 08:26:21 2014 UTC Log: Translation: ch01-basic-usage.xml https://code.google.com/p/svnbook/source/detail?r=4957 Modified: /branches/1.8/de/book/ch02-basic-usage.xml ======================================= --- /branches/1.8/de/book/ch02-basic-usage.xml Sun Oct 26 12:24:40 2014 UTC +++ /branches/1.8/de/book/ch02-basic-usage.xml Wed Dec 17 08:26:21 2014 UTC @@ -1,3 +1,5 @@ + + Dieses Kapitel ist nicht als erschöpfende Liste aller Befehle von Subversion gedacht ist – es ist eher eine Einführung in @@ -43,7 +45,7 @@ gelesen und verstanden haben und dass Sie mit dem allgemeinen Subversion-Modell vertraut sind. Für eine vollständige Referenz aller Befehle, siehe - . + . Aufruf: svn <Unterbefehl> [Optionen] [Parameter] -Subversion-Kommandozeilenclient, Version 1.6.13. +Subversion-Kommandozeilenclient, Version 1.7.0. Geben Sie »svn help <Unterbefehl>« ein, um Hilfe zu einem Unterbefehl zu erhalten. Geben Sie »svn --version« ein, um die Programmversion und die Zugriffsmodule @@ -471,12 +473,24 @@ vorhandenen Daten haben. - Um dieser Verwirrung entgegenzuwirken, empfehlen wir - Ihnen, dass Sie einer Konvention zur Gestaltung des - Projektarchivs (bereits vor langer Zeit eingeführt, während der - Entstehung der Subversion-Projektes) folgen, in der eine + + + Trunk + + + Tags + + + Branches + + + Zweige + Branches + + + Projektwurzel + Um dieser Verwirrung entgegenzuwirken, empfehlen + wir Ihnen, dass Sie einer Konvention zur Gestaltung des + Projektarchivs (bereits vor langer Zeit eingeführt, während + der Entstehung der Subversion-Projektes) folgen, in der eine handvoll strategisch benannter Verzeichnisse des Subversion-Projektarchivs eine nützliche Aussage über die sich darin befindlichen Daten machen. Die meisten Projekte besitzen @@ -657,6 +687,42 @@ internen Gebrauch zu erzeugen, maskiert er bei Bedarf automatisch illegale Zeichen in URL-Pfaden, die Sie eingeben. + + + Natürlich beschränkt nicht allein Subversion die Wahl + gültiger Pfadnamen. Teams, die mehrere Betriebssysteme + verwenden, müssen sich auch mit den durch diese + Betriebssysteme vorgegebenen Einschränkungen bei der + Namenswahl auseinandersetzen. Während beispielsweise Windows + die Verwendung von Doppelpunkten in Dateinamen verbietet, + kann ein Anwender unter Linux auf einfache Weise eine solche + Datei der versionskontrolle übergeben, was dazu führt, das + diese Daten nicht mehr unter Windows ausgecheckt werden + können. Das Hinzufügen mehrerer Dateien in ein Verzeichnis, + deren namen sich lediglich in Groß- und Kleinschreibung + unterscheiden führt wahrscheinlich zu Problemen für + Anwender, die Arbeitskopien in Dateisysteme auschecken, die + keine Unterscheidung zwischen Groß- und Kleinschreibung + machen. Deshalb empfiehlt sich ein breiteres Bewusstsein + gegenüber diesen vielfältigen Einschränkungen, die durch + verschiedene Bertiebssysteme hervorgerufen werden. + + @@ -669,17 +735,13 @@ --> Erstellen einer Arbeitskopie - - svn - Unterbefehle - checkout - - - - In den meisten Fällen werden Sie ein Subversion-Projektarchiv - zu nutzen beginnen, indem Sie einen + + + svn + Unterbefehle + checkout + In den meisten Fällen werden Sie ein + Subversion-Projektarchiv zu nutzen beginnen, indem Sie einen Checkout Ihres Projektes vornehmen. Das - Auschecken eines Verzeichnisses aus dem Projektarchivs erzeugt eine - Arbeitskopie dieses Verzeichnisses auf Ihrem lokalen Rechner. - Falls nicht anderweitig angegeben, enthält diese Kopie die - jüngste (d.h. zuletzt erzeugte oder geänderte) im + Auschecken eines Verzeichnisses aus dem Projektarchivs erzeugt + eine Arbeitskopie dieses Verzeichnisses auf Ihrem lokalen + Rechner. Falls nicht anderweitig angegeben, enthält diese Kopie + die jüngste (d.h. zuletzt erzeugte oder geänderte) im Subversion-Projektarchiv aufgefundene Version des Verzeichnisses und seiner Kinder: @@ -1093,7 +1160,7 @@ to bring your working copy up to date. To find out what these letters mean, run svn help update or see in - . + . --> Wenn der Server über svn update Änderungen an Ihre Arbeitskopie schickt, wird ein @@ -1102,7 +1169,7 @@ auf den neuesten Stand zu bringen. Zur Bedeutung der Buchstaben, rufen Sie svn help update auf oder schauen sich - in an. + in an. @@ -1113,26 +1180,38 @@ Nehmen Sie Ihre Änderungen vor - Nun können Sie loslegen und Änderungen an Ihrer + + + Dateiänderungen + + + Baumänderungen + Nun können Sie loslegen und Änderungen an Ihrer Arbeitskopie vornehmen. Sie können zwei Arten von Änderungen an Ihrer Arbeitskopie machen: Dateiänderungen und @@ -1162,15 +1241,29 @@ Versionierung symbolischer Links - Auf Nicht-Windows-Systemen kann Subversion den + + + Symlink + + + Symbolischer Link + Symlink + Auf Nicht-Windows-Systemen kann Subversion den besonderen Dateityp symbolischer Link (oder Symlink) versionieren. Ein Symlink ist eine Datei, die sich wie eine transparente @@ -1477,15 +1570,11 @@ --> Überprüfen Sie Ihre Änderungen - - Protokollnachricht - - - - Sobald Sie mit Ihren Änderungen fertig sind, müssen Sie - sie ins Projektarchiv bringen; es ist normalerweise eine gute - Idee, sich die Änderungen zuvor noch einmal anzusehen. - Dadurch, dass Sie die Änderungen noch einmal begutachten, - können Sie eine genauere + + + Protokollnachricht + Sobald Sie mit Ihren Änderungen fertig sind, + müssen Sie sie ins Projektarchiv bringen; es ist normalerweise + eine gute Idee, sich die Änderungen zuvor noch einmal + anzusehen. Dadurch, dass Sie die Änderungen noch einmal + begutachten, können Sie eine genauere Protokollnachricht schreiben (eine menschenlesbare Beschreibung der übergebenen Änderungen, die neben ihnen im Projektarchiv gespeichert wird). Es könnte auch @@ -1541,27 +1633,21 @@ aus anderen Gründen das Projektarchiv über das Netz nicht erreichen können. - - Text-Base - - - - Delta - - - - Subversion bewerkstelligt das, indem es private + + + Text-Base + + + Delta + Subversion bewerkstelligt das, indem es private Zwischenspeicher der ursprünglichen, unveränderten Versionen jeder versionierten Datei innerhalb des Verwaltungsbereichs der Arbeitskopie (oder, vor Version 1.7, möglicherweise @@ -1878,7 +1970,7 @@ useful information—because one of those items is also one that you have locally modified (the file README), you'll need to update and - get the servers changes for that file before you commit, or + get the server's changes for that file before you commit, or the repository will reject your commit for being out of date. We discuss this in more detail later. --> @@ -1903,7 +1995,7 @@ description of svn status and its output, run svn help status or see in - . + . --> svn status kann viel mehr Informationen über Dateien und Verzeichnisse in Ihrer @@ -1912,7 +2004,7 @@ status und dessen Ausgabe, rufen Sie svn help status auf oder schauen Sie unter in - . + . @@ -1923,23 +2015,17 @@ --> Untersuchen Sie die Details Ihrer lokalen Änderungen - - svn - Unterbefehle - diff - - - - unified-diff-Format - - - - Eine andere Möglichkeit, Ihre Änderungen zu untersuchen, - ist es, den Befehl svn diff zu verwenden, - der Unterschiede im Dateiinhalt anzeigt. Wenn Sie - svn diff ganz oben in Ihrer - Arbeitskopie ohne Argumente aufrufen, gibt Subversion - die von Ihnen gemachten Änderungen an menschenlesbaren - Dateien in Ihrer Arbeitskopie aus. Jene Änderungen werden in - einem Format namens unified diff - angezeigt, welches Änderungen als Brocken - (oder Schnipsel) des Dateiinhalts anzeigt, - wobei jeder Textzeile ein Zeichencode vorangestellt wird: - ein Leerzeichen, das bedeutet, dass die Zeile nicht geändert + + + svn + Unterbefehle + diff + + + Unterschiede + unified-diff-Format + Eine andere Möglichkeit, Ihre Änderungen zu + untersuchen, ist es, den Befehl svn diff + zu verwenden, der Unterschiede im Dateiinhalt anzeigt. Wenn + Sie svn diff ganz oben in Ihrer + Arbeitskopie ohne Argumente aufrufen, gibt Subversion die + von Ihnen gemachten Änderungen an menschenlesbaren Dateien + in Ihrer Arbeitskopie aus. Jene Änderungen werden in einem + Format namens unified diff angezeigt, + welches Änderungen als Brocken (oder + Schnipsel) des Dateiinhalts anzeigt, wobei + jeder Textzeile ein Zeichencode vorangestellt wird: ein + Leerzeichen, das bedeutet, dass die Zeile nicht geändert wurde, ein Minus (-), das bedeutet, dass die Zeile aus der Datei entfernt wurde oder ein Plus (+), das bedeutet, dass die Zeile der Datei hinzugefügt wurde. Im Kontext des Befehls svn diff zeigen Ihnen diese Minus- und Pluszeilen, wie - die Zeilen vor bzw. nach Ihren Änderungen - aussahen. + die Zeilen vor bzw. nach Ihren Änderungen aussahen. - Der Befehl svn diff erzeugt diese + + + svn + Unterbefehle + patch + + + Patches + + + Patch-Datei + Patches + Der Befehl svn diff erzeugt diese Ausgabe, indem er Ihre Arbeitsdateien mit der unveränderten Text-Base vergleicht. Dateien, die zum Hinzufügen vorgemerkt sind, werden vollständig als hinzugefügter Text dargestellt, @@ -2132,8 +2247,9 @@ find a copy of how the file looked before you changed it, and then copy its contents atop your modified version. You could attempt to apply those changes to the file again in - reverse using patch -R. And there are - probably other approaches you could take. + reverse using svn patch - -reverse-diff + or using your operating system's patch -R. + And there are probably other approaches you could take. --> Angenommen, Sie stellen beim Ansehen der Ausgabe von svn diff fest, dass alle Änderungen, die @@ -2144,10 +2260,11 @@ Änderungen rückgängig machen. Sie könnten versuchen, eine Kopie der Datei im Ursprungszustand zu bekommen und deren Inhalt über Ihre Änderungen zu kopieren. Sie könnten - versuchen, diese Änderungen erneut mit patch - -R rückwärts anzuwenden. Es gibt wahrscheinlich - noch andere Herangehensweisen, die Sie ausprobieren - könnten. + versuchen, diese Änderungen erneut mit svn patch + --reverse-diff, oder mit Ihrem Betriebssystem, + patch -R, rückwärts anzuwenden. Es + gibt wahrscheinlich noch andere Herangehensweisen, die Sie + ausprobieren könnten. svn @@ -2228,7 +2345,6 @@ $ svn delete README D README - $ svn revert README @@ -2262,17 +2378,12 @@ --> Lösen Sie etwaige Konflikte auf - - Konflikte - Auflösung - - - - Wir haben bereits gesehen, wie svn status - -u Konflikte vorhersagen kann, jedoch müssen wir - uns noch um diese Konflikte kümmern. Konflikte können - jederzeit auftreten, wenn Sie versuchen, Änderungen aus dem - Projektarchiv mit Ihrer Arbeitskopie zusammenzuführen oder zu - integrieren (in einem sehr allgemeinen Sinn). Bis hierher + + + Konflikte + Auflösung + Wir haben bereits gesehen, wie svn + status -u Konflikte vorhersagen kann, jedoch + müssen wir uns noch um diese Konflikte kümmern. Konflikte + können jederzeit auftreten, wenn Sie versuchen, Änderungen aus + dem Projektarchiv mit Ihrer Arbeitskopie zusammenzuführen oder + zu integrieren (in einem sehr allgemeinen Sinn). Bis hierher wissen Sie, dass svn update genau diese Art von Szenario hervorruft – der eigentliche Zweck dieses Befehls ist es, Ihre Arbeitskopie mit dem Projektarchiv auf einen Stand zu bringen, indem alle Änderungen seit Ihrer letzten Aktualisierung mit Ihrer Arbeitskopie zusammengeführt - werden. Wie teilt Ihnen Subversion nun diese Konflikte mit, + werden. Wie teilt Ihnen Subversion nun diese Konflikte mit, und wie gehen Sie damit um? Interaktive Begutachtung der Konflikte - - Konflikte - Überprüfung - - - - Bevor Sie entscheiden, wie Sie einen Konflikt beseitigen - wollen, wollen Sie wahrscheinlich genau sehen, worin der - Konflikt besteht. Zwei der bei der interaktiven Aufforderung - zur Verfügung stehenden Befehle können Ihnen dabei helfen. - Der erste ist der Befehl voller Diff - (df), der alle lokalen Änderungen an - der zu begutachtenden Datei und die in Konflikt stehenden - Regionen anzeigt: + + + Konflikte + Überprüfung + Bevor Sie entscheiden, wie Sie einen Konflikt + beseitigen wollen, wollen Sie wahrscheinlich genau sehen, + worin der Konflikt besteht. Zwei der bei der interaktiven + Aufforderung zur Verfügung stehenden Befehle können Ihnen + dabei helfen. Der erste ist der Befehl voller + Diff (df), der alle lokalen + Änderungen an der zu begutachtenden Datei und die in + Konflikt stehenden Regionen anzeigt: @@ -3156,72 +3270,108 @@ If you've postponed a conflict, you need to resolve the conflict before Subversion will allow you to commit your changes. You'll do this with the svn - resolve command and one of several arguments to - the option. + resolve command. This command accepts + the option, which allows you + specify your desired approach for resolving the conflict. + Prior to Subversion 1.8, the svn resolve + required the use of this option. + Subversion now allows you to run the svn + resolve command without that option. When you do + so, Subversion cranks up its interactive conflict resolution + mechanism, which you can read about (if you haven't done so + already) in the previous section, + . We'll + take the opportunity in this section, though, to discuss + the use of the option for + conflict resolution. --> Falls Sie eine Konfliktauflösung aufgeschoben haben, müssen Sie den Konflikt auflösen, bevor Ihnen Subversion - erlaubt, Ihre Änderungen in das Projektarchiv einzustellen. Sie - werden dafür den svn resolve-Befehl mit - einem von mehreren Argumenten für die - -Option aufrufen. - - - Falls Sie die Dateiversion vor Ihren Änderungen haben - möchten, wählen Sie das - base-Argument. + erlaubt, Ihre Änderungen in das Projektarchiv einzustellen. + Sie werden dafür den Befehl svn resolve + aufrufen. Dieser Befehl akzeptiert die Option + , die es Ihnen erlaubt, den von + Ihnen gewünschten Ansatz zur Konfliktauflösung anzugeben. + Vor Subversion 1.8 machte snn resolve die + Verwendung dieser Option erforderlich. + Jetzt erlaubt Ihnen Subversion, den Befehl svn + resolve ohne diese Option aufzurufen. Wenn Sie das + tun, startet Subversion seinen interaktiven + Konfliktauflösungs-Mechanismus, über den Sie (falls Sie es + noch nicht getan haben) im vorigen Abschnitt mehr erfahren: + - - Falls Sie die Version möchten, die nur Ihre Änderungen - enthält, wählen Sie das - mine-full-Argument. + The option to the svn + resolve command instructs Subversion to use one of + its pre-packaged approaches to conflict resolution. If + you want Subversion to resolve the conflict using the + version of the file that you last checked out before making + your edits, use . If you'd + prefer instead to keep the version that contains only your + edits, use . You can also + select the version that your most recent update pulled from + the server (discarding your edits entirely)—that's + done using . There + are other canned resolution types, too. See + in + for details. - - Falls Sie die Version möchten, die Ihre letzte + Die Option des Befehls + svn resolve fordert Subversion auf, einen + seiner vorgefertigten Ansätze zur Konfliktauflösung zu + verwenden. Falls Sie möchten, dass Subversion den Konflikt + dergestalt auflöst, dass die von Ihnen zuletzt ausgecheckte + Version vor Ihren Änderungen verwendet wird, wählen Sie + . Sollten Sie stattdessen die + Version behalten möchten, die nur Ihre Änderungen enthält, + verwenden Sie . Sie + können auch die Version wählen, die Ihre letzte Aktualisierung vom Server gezogen hat (und somit Ihre - Änderungen vollständig verwerfen wollen), wählen Sie das - Argument theirs-full. + Änderungen vollständig verwerfen); dafür nehmen Sie + . Daneben gibt es + weitere Auflösungstypen aus der Dose. Zu + Details, siehe in + . - Wenn Sie jedoch frei aus Ihren Änderungen und den - Änderungen vom Server wählen möchten, führen Sie den - konfliktbehafteten Text händisch zusammen - (indem Sie die Konfliktmarken in der Datei begutachten und - editieren) und wählen das - working-Argument. + Sie sind jedoch nicht streng auf die + Alles-oder-Nichts-Optionen beschränkt. Wenn Sie frei aus + Ihren Änderungen und den Änderungen vom Server wählen + möchten, können Sie die Arbeitsdatei manuell durch + händische Bearbeitung des konfliktbehafteten + Textes reparieren (indem Sie die Konfliktmarken in der Datei + begutachten und editieren) und anschließend Subversion durch + den Befehl svn resolve mit der Option + mitteilen, den Konflikt + dergestalt aufzulösen, dass die Arbeitsdatei im + gegenwärtigen Zustand behalten wird. svn resolve entfernt die drei - temporären Dateien und akzeptiert die Version, die Sie mit - der -Option angeben. Subversion - betrachtet die Datei nun als nicht mehr - konfliktbehaftet: + temporären Dateien und akzeptiert die Version, die Sie + angegeben haben. Nach dem erfolgreichen Abschluss des + Befehls – und unter der Annahme, dass Sie die + Konfliktauflösung natürlich nicht interaktiv aufgeschoben + haben – betrachtet Subversion die Datei nun als nicht + mehr konfliktbehaftet: @@ -3237,7 +3387,7 @@ Manuelle Konfliktauflösung @@ -3253,7 +3403,7 @@ @@ -3406,25 +3556,20 @@ - Beachten Sie, dass svn resolve, - anders als die meisten anderen Befehle, die wir in diesem - Kapitel behandeln, erwartet, dass Sie ausdrücklich alle - Dateien aufzählen, deren Konflikt Sie beseitigt haben. Auf - alle Fälle sollten Sie sorgfältig vorgehen und - svn resolve nur verwenden, falls Sie - sicher sind, den Konflikt in Ihrer Datei beseitigt zu haben - – sobald die temporären Dateien entfernt sind, lässt - Subversion zu, dass Sie die Datei in das Projektarchiv stellen, - selbst wenn sie noch Konfliktmarken enthält. + Wenn Sie svn resolve verwenden, + sollten Sie tunlichst darauf achten, Subversion nicht zu + sagen, dass Sie den Koflikt aufgelöst hätten, wenn Sie es in + Wirklichkeit gar nicht getan haben. Sobald die temporären + Dateien entfernt sind, lässt Subversion zu, dass Sie die + Datei in das Projektarchiv stellen, selbst wenn sie noch + Konfliktmarken enthält. - - Konflikte - Auflösung - - - Falls Sie einen Konflikt erhalten und entscheiden, dass - Sie Ihre Änderungen verwerfen wollen, können Sie - svn resolve --accept theirs-full + + + Konflikte + Auflösung + Falls Sie einen Konflikt erhalten und + entscheiden, dass Sie Ihre Änderungen verwerfen wollen, + können Sie svn resolve --accept theirs-full CONFLICTED-PATH aufrufen, und Subversion wird Ihre Änderungen ignorieren und die temporären Dateien entfernen: @@ -3520,7 +3663,7 @@ Die Verwendung von svn revert @@ -4218,12 +4361,12 @@ Diese Befehle zeigen nur Protokolleinträge für die Revisionen, in der sich die - Arbeitsdatei (oder URL) geändert hat. + genannte Datei (oder das Verzeichnis) geändert hat. @@ -4624,9 +4767,9 @@ $ svn annotate images/logo.png -Überspringe Binärdatei: »images/logo.png« +Überspringe Binärdatei (--force erzwingt Behandlung als Text): »images/logo.png« $ @@ -5120,8 +5263,16 @@ Praxis kaum gemacht. ***The diff for this file has been truncated for email.***