jkois 2011-10-08 12:29:06 UTC
FreeBSD German Documentation Repository
Modified files:
books/porters-handbook book.sgml
Log:
MFen 1.1109 -> 1.110 cvs diff
Revision Changes Path
1.238 +138 -4 de-docproj/books/porters-handbook/book.sgml
Index: book.sgml
===================================================================
RCS file: /home/cvs/de-docproj/books/porters-handbook/book.sgml,v
retrieving revision 1.237
retrieving revision 1.238
diff -u -I$FreeBSDde.*$ -r1.237 -r1.238
--- book.sgml 31 Aug 2011 18:34:34 -0000 1.237
+++ book.sgml 8 Oct 2011 12:29:06 -0000 1.238
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/porters-handbook/book.sgml,v 1.237 2011/08/31 18:34:34 jkois Exp $
- basiert auf: 1.1109
+ $FreeBSDde: de-docproj/books/porters-handbook/book.sgml,v 1.238 2011/10/08 12:29:06 jkois Exp $
+ basiert auf: 1.1110
-->
<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
@@ -10649,7 +10649,9 @@
<screen>&prompt.user; <userinput>/usr/bin/diff dateiname.orig dateiname > dateiname.diff</userinput></screen>
</informalexample>
- <para>Soll mehr als eine Datei gepatcht werden, kopieren Sie den
+ <para>Soll mehr als eine Datei gepatcht werden, können Sie
+ entweder <command>cvs diff</command> verwenden (siehe dazu <xref
+ linkend="cvs-diff">) oder Sie kopieren
den kompletten Port in ein neues Verzeichnis und speichern die
Ausgabe des rekursiven &man.diff.1; auf das neue und alte
Portverzeichniss (wenn Ihr verändertes Portverzeichnis z.B.
@@ -10726,10 +10728,142 @@
Ihre Änderungen nachzuvollziehen.</para>
</note>
- <para>Nun, da Sie all das geschafft haben, werden Sie in <xref
- linkend="keeping-up"> nachlesen können, wie Sie den Port
+ <para>Nun, da Sie all das geschafft haben, können Sie in <xref
+ linkend="keeping-up"> nachlesen, wie Sie den Port
aktuell halten.</para>
+ <sect1 id="cvs-diff">
+ <title>Patches mit CVS erstellen</title>
+
+ <para>Wenn möglich, sollten Sie stets eine &man.cvs.1;-Differenz
+ einreichen. Diese sind leichter zu bearbeiten als Differenzen
+ zwischen <quote>neuen und alten</quote> Verzeichnissen. Außerdem
+ könenn Sie so einfacher feststellen, welche Änderungen Sie
+ vorgenommen haben oder Ihren Patch modifizieren, falls dies durch
+ Änderungen in einem anderen Bereich der Ports-Sammlung notwendig
+ wird oder Sie vom Committer um eine Korrektur Ihres Patches gebeten
+ werden.</para>
+
+ <screen>&prompt.user; <userinput>cd ~/my_wrkdir</userinput> <co id="my-wrkdir">
+&prompt.user; <userinput>cvs -d R_CVSROOT co pdnsd</userinput> <co id="R-CVSROOT"> <co id="module-name">
+&prompt.user; <userinput>cd ~/my_wrkdir/pdnsd</userinput></screen>
+
+ <calloutlist>
+ <callout arearefs="my-wrkdir">
+ <para>Das Verzeichnis, in dem Sie den Port bauen wollen. Dieses
+ Arbeitsverzeichnis kann sich auch außerhalb von
+ <filename class="directory">/usr/ports/</filename> befinden.</para>
+ </callout>
+
+ <callout arearefs="R-CVSROOT">
+ <para>R_CVSROOT steht für einen öffentlichen CVS-Server.
+ Eine Liste aller verfügbaren Server finden Sie im <ulink
+ url="&url.books.handbook;/cvsup.html">&os; Handbuch</ulink>.</para>
+ </callout>
+
+ <callout arearefs="module-name">
+ <para>Ersetzen Sie <quote>pdnsd</quote> durch den Modulnamen des
+ Ports. Dieser entspricht in der Regel dem Namen des Ports.
+ Allerdings gibt es einige Ausnahmen von dieser Regel, insbesondere
+ bei sprachspezifischen Ports (beispielsweise lautet der Modulname
+ für den Port <filename role="package">german/selfhtml</filename>
+ de-selfhtml). Um den Namen des Moduls herauszufinden, können
+ Sie entweder die <ulink
+ url="&url.base;/cgi/cvsweb.cgi/ports">cvsweb-Schnittstelle</ulink>
+ verwenden oder den kompletten Pfad des Ports angeben (in unserem
+ Beispiel wäre der komplette Pfad also <filename
+ class="directory">ports/dns/pdnsd</filename>).</para>
+ </callout>
+ </calloutlist>
+
+ <para>Danach modifizieren Sie den Port in gewohnter Weise. Falls Sie
+ Dateien hinzufügen oder entfernen, sollten Sie dies mit
+ <command>cvs</command> protokollieren:</para>
+
+ <screen>&prompt.user; <userinput>cvs add new_file</userinput>
+&prompt.user; <userinput>cvs remove deleted_file</userinput></screen>
+
+ <para>Überprüfen Sie die Funktion Ihres Ports anhand der
+ Checklisten in <xref linkend="porting-testing"> und
+ <xref linkend="porting-portlint">.</para>
+
+ <screen>&prompt.user; <userinput>cvs status</userinput>
+&prompt.user; <userinput>cvs update</userinput> <co id="cvs-update"></screen>
+
+ <calloutlist>
+ <callout arearefs="cvs-update">
+ <para>Dadurch wird versucht, die Differenz zwischen Ihrer
+ geänderten Version und dem aktuellen Stand im CVS zu
+ kombinieren. Achten Sie dabei unbedingt auf die Ausgabe dieses
+ Befehls. Vor jeder Datei wird ein Buchstabe angezeigt, der
+ Ihnen mitteilt, was mit dieser Datei passiert ist. Eine
+ vollständige Liste dieser Präfixe finden Sie in
+ <xref linkend="table-cvs-up">.</para>
+ </callout>
+ </calloutlist>
+
+ <table pgwide="1" frame="none" id="table-cvs-up">
+ <title>Von cvs update verwendete Präfixe</title>
+
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>U</entry>
+ <entry>Die Datei wurde aktualisiert. Es traten dabei keine
+ Probleme auf.</entry>
+ </row>
+
+ <row>
+ <entry>P</entry>
+ <entry>Die Datei wurde ohne Probleme aktualisiert (dieses
+ Präfix wird nur verwendet, wenn Sie mit einem
+ entfernten Repository arbeiten).</entry>
+ </row>
+
+ <row>
+ <entry>M</entry>
+ <entry>Die Datei wurde modifiziert. Es traten keine Konflikte
+ auf.</entry>
+ </row>
+
+ <row>
+ <entry>C</entry>
+ <entry>Die Datei wurde modifiziert, allerdings kam es dabei zu
+ Konflikten zwischen Ihrer geänderten Version und der
+ aktuellen Version im CVS.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>Wird das Präfix <literal>C</literal> nach einem
+ <literal>cvs update</literal> angezeigt, bedeutet dies, dass im CVS
+ etwas geändert wurde und &man.cvs.1; daher nicht in der Lage war,
+ Ihre Änderungen und die Änderungen im CVS zu kombinieren.
+ Es ist immer sinnvoll, sich die Änderungen anzusehen, da
+ <command>cvs</command> keine Informationen darüber hat, wie ein
+ Port aufgebaut sein soll. Es kann (und wird wahrscheinlich) daher
+ vorkommen, dass sich manchmal Änderungen ergeben, die keinen
+ Sinn machen.</para>
+
+ <para>Im letzten Schritt erzeugen Sie einen <quote>unified
+ &man.diff.1;</quote> gegen die derzeit im CVS vorhandenen Dateien:</para>
+
+ <screen>&prompt.user; <userinput>cvs diff -uN > ../`basename ${PWD}`.diff</userinput></screen>
+
+ <note>
+ <para>Verwenden Sie unbedingt die Option <option>-N</option>, um
+ sicherzustellen, dass von hinzugefügte oder gelöschte
+ Dateien im Patch erfasst sind. Der Patch enthät auch
+ von Ihnen gelöschte Dateien (allerdings ohne Inhalt). Dies
+ ist wichtig, da nur so der Committer wissen kann, welche Dateien
+ er entfernen muss.</para>
+ </note>
+
+ <para>Zuletzt reichen Sie Ihren Patch ein, indem Sie der Anleitung in
+ <xref linkend="port-upgrading"> folgen.</para>
+ </sect1>
+
<sect1 id="moved-and-updating-files">
<title>Die Dateien UPDATING und MOVED</title>
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-cvs-doc" in the body of the message
Received on Sat 08 Oct 2011 - 14:29:24 CEST