Show cvs-zh_CN.xml syntax highlighted
<?xml version="1.0" encoding="utf-8"?>
<!-- $Id: -->
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY BOILERPLATE "This header makes editing XML easier" >
<!ENTITY FC "Fedora Core" >
<!ENTITY RH "Red Hat" >
]>
<chapter id="ch-cvs">
<title>CVS</title>
<para>å¹¶åçæ¬æ§å¶ç³»ç» (<application>CVS</application>) æä¾äºä¸ä¸ªæ¡æ¶ï¼ä½¿å¤ä¸ªç¨æ·å¯ä»¥ä¿®æ¹ç¸åçä¸ç»æä»¶ãå¯ä»¥æ³è±¡ï¼å¦æç¨æ·ä»¬å¨åä¸ä¸ªç®å½ä¸ä¿®æ¹æä»¶ï¼å°äº§çæå¤§çæ··ä¹±ãä½¿ç¨ <application>CVS</application>ï¼ç¨æ·ä»¬å°±å¯ä»¥å®å
¨å°ä¿®æ¹ç¸åçä¸ç»æä»¶äºã<application>CVS</application> ä¿çæä»¶ç主å¤ä»½ï¼å¹¶ä¸å¨ä¸ä¸ªä¸å¤®ä»åºä¸è®°å½è°å¨ä½æ¶ä¿®æ¹äºåªäºå
容ã妿åºç°äºå²çªï¼<application>CVS</application> å¯ä»¥åè¯ç¨æ·ã<application>CVS</application> é常ç¨å¨ç¨åºåé´å
±äº«ä»£ç ï¼ä½æ¯å¨ææ¡£æ°åä¸ä¹å¾æ¹ä¾¿ã</para>
<indexterm>
<primary>cvs</primary>
</indexterm>
<section id="sn-cvs-overview">
<title>CVS å¦ä½è¿ä½</title>
<indexterm>
<primary>cvs</primary>
<secondary>CVS å¦ä½è¿ä½</secondary>
</indexterm>
<indexterm>
<primary>cvs</primary>
<secondary>æ¦è¿°</secondary>
</indexterm>
<para>夿°æ
åµä¸ï¼ææé¡¹ç®çæä»¶éå¨ CVS æå¡å¨ä¸ä¿å为 <firstterm>module</firstterm>(模å)ã</para>
<para>å¨ä½¿ç¨ <application>CVS</application> æ¶ï¼å
å°æ¨¡å <firstterm>checkout</firstterm>(æ£åº)ä¸ä»½å°æ¬å°æä»¶ç³»ç»ä¸ãä¿®æ¹ä¸ä¸ªæå¤ä¸ªæä»¶åï¼å°å®ä»¬ <firstterm>commit</firstterm>(æäº¤)åä¸å¤® <application>CVS</application> æå¡å¨ã</para>
<para>ä½¿ç¨ <application>CVS</application> æ¶ï¼ä¸å¿
è·åè®¸å¯æå éå°±å¯ä»¥ä¿®æ¹æä»¶ã<application>CVS</application> çååä¸ï¼<wordasword>concurrent</wordasword>(å¹¶å)è¿ä¸ªè¯æ¥æºäºå®å
许ä¸åç人ç¼è¾å䏿件çä¸åé¨åè¿ä¸è½åãåªè¦è¿äºä¿®æ¹ä¸éå ï¼<application>CVS</application> å°±å¯ä»¥æ£ç¡®å°è®°å½ä¿®æ¹ã妿åºç°éå¤çä¿®æ¹ï¼ä¼è¢«æ è¯å¨æä»¶ä¸ï¼ä½è
å¿
é¡»èªè¡è§£å³å®ä»¬ã</para>
<para>å¨æäº¤ä¿®æ¹æ¶ï¼åªææå¡å¨ç¥éçæä»¶æä¼å¾å°æäº¤ãä¹å°±æ¯è¯´ï¼å¦ææ¨å¨æ¬å°å·¥ä½ç®å½ä¸å建äºä¸ä¸ªæä»¶ï¼æ°æä»¶ä¸ä¼èªå¨ä¼ è¾å°æå¡å¨ãæ¨å¿
é¡» <firstterm>add</firstterm>(æ·»å )æä»¶å°ä»åºä¸ï¼ç¶ååæäº¤å®ã妿æ¨è¦å é¤ä¸ä¸ªæä»¶ï¼å¿
须说æè¦ä» CVS æå¡å¨çä»åºä¸å 餿件ï¼ç¶åå°æä»¶çå é¤æäº¤ã</para>
<para>æ§è¡è¿äºå¨ä½çå½ä»¤è¯·åé
<xref linkend="sn-cvs-cvscommands"/>ã</para>
<para>ä»ä¸æ¬¡æ¨ä» CVS è·åæä»¶ï¼å°æç®æäº¤æä¸ªä¿®æ¹ï¼è¿æ®µæ¶é´é妿æäººä¿®æ¹è¿è¿ä¸ªæä»¶ï¼<application>CVS</application> å°å°è¯å°ä¿®æ¹åå¹¶å° <application>CVS</application> æå¡å¨ä¸ç夿¬ä¸ã妿æ¨ä¸ä»äººä¿®æ¹çæ¯æä»¶çä¸åé¨åï¼æäº¤ä¹è®¸ä¸ä¼æä»»ä½ <firstterm>conflict</firstterm>(å²çª)é®é¢ã妿ä»äººä¿®æ¹çæ£æ¯æ¨æç®æäº¤çé¨åï¼æ¨å°çå°åçå²çªçæç¤ºãè¿æ¶ï¼æ¨å¿
é¡» <firstterm>update</firstterm>(æ´æ°)æä»¶ãå¨ä¿®æ¹æä»¶åæ»æ¯æ´æ°å®æ¯ä¸ªå¥½ä¹ æ¯ã请åè <xref linkend="sn-cvs-cvscommands-conflicts"/> ä¸è§£å³å²çªçæ¥éª¤ã</para>
</section>
<section id="sn-cvs-preparation">
<title>为 CVS ä½åå¤</title>
<indexterm>
<primary>cvs</primary>
<secondary>为 cvs ä½åå¤</secondary>
</indexterm>
<para>å¨ä½¿ç¨ <application>CVS</application> ä¹åï¼æ¨å¿
é¡»å¨ <application>CVS</application> æå¡å¨ä¸å»ºç«å¸æ·ãå¾å°å¸æ·åï¼å°±ä¸å¿
åæ§è¡è¿äºæä½äºã</para>
<section id="sn-cvs-rpm-check">
<title>CVS æ¯å¦å·²å®è£
å¨ç³»ç»ä¸</title>
<indexterm>
<primary>cvs</primary>
<secondary>RPM æ¹å¼å®è£
</secondary>
</indexterm>
<para>æ¨å¿
é¡»å®è£
<application>CVS</application> ç <abbrev>RPM</abbrev>ãå¯ä»¥è¿æ ·æ£æ¥æ¯å¦å·²ç»å®è£
ï¼</para>
<screen><prompt>$</prompt> <command>rpm -q cvs</command> </screen>
<para>妿æ¨çå°äºç±»ä¼¼ <computeroutput>cvs-1.11.19-1</computeroutput> çè¾åºï¼é£ä¹å·²ç»å®è£
äºã妿çå°ç±»ä¼¼ <computeroutput>package cvs is not installed</computeroutput> çè¾åºï¼è¿æå³çæ¨éè¦å®è£
å®ã妿æ¨ä¸ç¥éæä¹å®è£
ï¼è¯·å管çåæ±å©ã</para>
</section>
<section id="sn-cvs-generate-keys">
<title>çæ SSH å¯é¥</title>
<indexterm>
<primary>OpenSSH</primary>
<secondary>认è¯å¯é¥</secondary>
</indexterm>
<para>
<application>CVS</application> æå¡å¨ä½¿ç¨ <application>SSH</application> 2 åè®®å¯é¥æ¥è®¤è¯ç¨æ·ãå æ¤ï¼æ¨éè¦çæä¸å¯¹å¯é¥ï¼æè½å¾å° <application>CVS</application> å¸å·ã妿æ¨å·²ç»æäº <application>SSH</application> <abbrev>DSA</abbrev> å¯é¥ï¼å°±å¯ä»¥è·³è¿è¿ä¸æ¥ã</para>
<tip>
<title>æå·§</title>
<para>å¦æç³»ç»ä¸æ <filename>~/.ssh/id_dsa.pub</filename> è¿ä¸ªæä»¶ï¼é£ä¹æ¨å·²ç»æäº <abbrev>DSA</abbrev> å¯é¥ã</para>
<para>å¦æç°æç <abbrev>DSA</abbrev> å¯é¥ä¸éè¦ <wordasword>passphrase</wordasword>(å£ä»¤)ï¼æ¨æå¥½å°½å¿«çæä¸ä¸ªéè¦å£ä»¤çå¯é¥ã</para>
</tip>
<para>æç
§ä¸åæ¥éª¤æ¥çæ <application>SSH</application> 2 å议使ç¨ç <abbrev>DSA</abbrev> å¯é¥ãè¿æ¯ <computeroutput>cvs.fedora.redhat.com</computeroutput> <application>CVS</application> å¸å·å¿
éçã</para>
<orderedlist>
<indexterm>
<primary>OpenSSH</primary>
<secondary>
<command>ssh-keygen</command>
</secondary>
</indexterm>
<indexterm>
<primary>
<command>ssh-keygen</command>
</primary>
</indexterm>
<listitem>
<para>è¦çæ SSH2 åè®®ç <acronym>DSA</acronym> å¯é¥ï¼å¨ shell æç¤ºç¬¦ä¸ï¼è¾å
¥å½ä»¤ï¼</para>
<screen><prompt>$</prompt> <command>ssh-keygen -t dsa</command> </screen>
<para>æ¥åé»è®¤çæä»¶ä½ç½® <filename>~/.ssh/id_dsa</filename>ãæ¨åºå½ä½¿ç¨å£ä»¤æ¥å 强å¯é¥çå®å
¨ãè¾å
¥ä¸å¸å·å¯ç ä¸åçå£ä»¤ï¼ç¶å确认å®ï¼åªè¦éæ°è¾å
¥ä¸æ¬¡ã</para>
</listitem>
<listitem>
<para>è¾å
¥ä¸åå½ä»¤ï¼å°æ°çå¯é¥å¤å¶å°æ£ç¡®çæä»¶ä¸ï¼</para>
<screen><prompt>$</prompt> <command>cat ~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys</command> </screen>
<note>
<para>å¨æä¸ <guibutton>ENTER</guibutton>(å车)é®ä¹åä»ç»æ£æ¥å½ä»¤ã妿 <filename>~/.ssh/authorized_keys</filename> å·²ç»åå¨ï¼ <filename>~/.ssh/id_dsa.pub</filename> çå
容å°è¢«è¿½å å° <filename>~/.ssh/authorized_keys</filename> æä»¶çç»å°¾ã</para>
</note>
</listitem>
<listitem>
<para>è¾å
¥ä¸åå½ä»¤ï¼ä¿®æ¹ <filename>~/.ssh</filename> ç®å½åå¯é¥æä»¶çæéï¼</para>
<screen><prompt>$</prompt> <command>chmod 755 ~/.ssh</command>
<prompt>$</prompt> <command>chmod 644 ~/.ssh/authorized_keys</command> </screen>
</listitem>
</orderedlist>
<tip>
<title>æå·§</title>
<para>æ¨å¯ä»¥è®©ç³»ç»è®°ä½å£ä»¤ï¼è¿æ ·è®¿é® <application>CVS</application> æå¡å¨æ¶å°±ä¸å¿
æ¯æ¬¡è¾å
¥äºã请åè <application>ssh-add</application> ç¨åºçææ¡£ã</para>
</tip>
</section>
</section>
<section id="sn-cvs-config">
<title>é
ç½® CVS 访é®</title>
<indexterm>
<primary>cvs</primary>
<secondary>é
ç½® cvs 访é®</secondary>
</indexterm>
<indexterm>
<primary>cvs</primary>
<secondary>CVSROOT</secondary>
</indexterm>
<indexterm>
<primary>cvs</primary>
<secondary>CVS_RSH</secondary>
</indexterm>
<indexterm>
<primary>CVSROOT</primary>
</indexterm>
<indexterm>
<primary>CVS_RSH</primary>
</indexterm>
<indexterm>
<primary>cvs</primary>
<secondary>
<filename>.cvsrc</filename>
</secondary>
</indexterm>
<indexterm>
<primary>
<filename>.cvsrc</filename>
</primary>
</indexterm>
<section id="sn-cvs-config-cvsrc">
<title>é¿å
éå¤è¾å
¥</title>
<indexterm>
<primary>cvs</primary>
<secondary>é¿å
éå¤è¾å
¥</secondary>
</indexterm>
<para>è®¸å¤ <application>CVS</application> å½ä»¤éè¦ç¹å®çå½ä»¤è¡é项æè½æé
使ç¨ãä¸å
¶æ¯æ¬¡ç¨å°æ¶è¾å
¥è¿äºéé¡¹ï¼æ¨å¯ä»¥å°å®ä»¬ä¿å卿件éï¼è®© <application>CVS</application> æ¯æ¬¡æ§è¡å读åå®ã</para>
<para>å¨ä¸ªäººç®å½ä¸å建ä¸ä¸ªå«å <filename>~/.cvsrc</filename> çæä»¶ãå®åºå½å
å«ä¸åå½ä»¤ï¼æ¯ä¸ªå½ä»¤å ä¸è¡ï¼ <screen><computeroutput>cvs -z3
diff -uNp
rdiff -uNp
update -dP</computeroutput></screen></para>
</section>
<section id="sn-cvs-config-anon">
<title>é
ç½®åªè¯»ç CVS 访é®</title>
<indexterm>
<primary>cvs</primary>
<secondary>é
ç½®åªè¯»è®¿é®</secondary>
</indexterm>
<indexterm>
<primary>cvs</primary>
<secondary>å¿å访é®</secondary>
</indexterm>
<para>妿æ¨çç®çæ¯ä¸è½½åç¯ &FC; ææ¡£å¹¶å¨èªå·±çç³»ç»ä¸ç¼è¯ï¼é£ä¹åªè¯»è®¿é®å°±å¤äºãç
§åæ¬èçæä»¤ï¼ç¶åç´æ¥è·³è½¬å° <xref linkend="sn-cvs-cvscommands-co"/>ã</para>
<para>忢å°å°åæ¾ <application>CVS</application> 䏿件çç®å½ï¼ç¶åæ§è¡ä¸é¢çå½ä»¤ï¼</para>
<screen><prompt>$</prompt> <command>export CVSROOT=:pserver:cvs.fedora.redhat.com:/cvs/docs</command>
<prompt>$</prompt> <command>cvs login</command>
<prompt>$</prompt> <command>cvs checkout docs-common</command> <replaceable>module-name</replaceable>
<prompt>$</prompt> <command>cvs checkout</command> <replaceable>module-name</replaceable>
<prompt>$</prompt> <command>cd</command> <replaceable>module-name</replaceable></screen>
<para>æ£åºæ¨¡åä¹åï¼<envar>CVSROOT</envar> ç¯å¢åéç设置就ä¸åæç¨ï¼å 为æ£ç¡®çå¼å·²ç»ä¿åå¨äºæ¬å°å·¥ä½ç®å½çæ¯ä¸ªåç®å½ä¸ï¼æä»¶ <filename>CVS/Root</filename> éé¢ãåªè¦å½åå·¥ä½ç®å½å
å« <filename>CVS/</filename> ç®å½ï¼<application>CVS</application> ç¨åºå°±å¯ä»¥èªå¨æ¾å° &FC; ä»åºã</para>
</section>
<section id="sn-cvs-config-author">
<title>é
ç½®å¯è¯»åç CVS 访é®</title>
<indexterm>
<primary>cvs</primary>
<secondary>é
置读å访é®</secondary>
</indexterm>
<indexterm>
<primary>cvs</primary>
<secondary>ä½ä¸ºä½è
ç设置</secondary>
</indexterm>
<para>è¦å使°ææ¡£ï¼ææ¯ä¿®æ¹å·²æçï¼å¿
é¡»å¾å° &FC; Docs <application>CVS</application> ä»åºç宿´è¯»åæéãå
³äºè¿ä¸ªè¿ç¨ï¼è¯·åè <ulink url="http://fedoraproject.org/wiki/DocsProject/NewWriters"><filename>http://fedoraproject.org/wiki/DocsProject/NewWriters</filename></ulink> 页é¢ãä¸é¢æ¯å¤§è´çæ¥éª¤ï¼</para>
<itemizedlist>
<listitem>
<para>订é
<ulink url="https://listman.redhat.com/mailman/listinfo/fedora-docs-list"><filename>fedora-docs-list</filename></ulink> é®ä»¶å表ï¼è¿æ¯é¡¹ç®ä¸»è¦ç讨论åºã</para>
</listitem>
<listitem>
<para>å建ä¸ä¸ª GNU Privacy Guard (<abbrev>GPG</abbrev>) å¯é¥æ¥åå
¶ä»äººæ è¯èªå·±ç身份ã</para>
</listitem>
<listitem>
<para>注å <ulink url="http://bugzilla.redhat.com/"><filename>Bugzilla</filename></ulink> å¸å·ï¼å¦æä»¥åæ²¡ææ³¨åè¿çè¯ã<filename>Bugzilla</filename> æ¯è·è¸ªé®é¢ãä¿®æ¹åé¡¹ç®æ´æ°çéå¾ã</para>
</listitem>
<listitem>
<para>åé®ä»¶å表ååº <ulink url="http://fedoraproject.org/wiki/DocsProject/SelfIntroduction">self introduction</ulink>(èªæä»ç»)ã</para>
</listitem>
</itemizedlist>
<para>彿¨ç <ulink url="http://fedoraproject.org/wiki/DocsProject/SelfIntroduction">èªæä»ç»</ulink> 被æ¥ååï¼æ¨å°è·å¾ <application>CVS</application> è®¿é®æã</para>
<para>æ¯ä½ä½è
ï¼ä¹å
æ¬æ¨ï¼å¨èªæä»ç»è¢«æ¥çº³ä¹åï¼å°±ä½¿ç¨ç¬ä¸æ äºç <envar>$CVSROOT</envar> æ¥è®¿é® <application>CVS</application> ä»åºï¼</para>
<screen><prompt>$</prompt> <command>export CVSROOT=:ext:</command> <replaceable>yourname</replaceable> <command>@cvs.fedora.redhat.com:/cvs/docs</command>
<prompt>$</prompt> <command>export CVS_RSH=/usr/bin/ssh</command> </screen>
<para>è®¾ç½®äº <envar>$CVSROOT</envar> å <envar>$CVS_RSH</envar> ç¯å¢åéåï¼å°±å¯ä»¥è®¿é®ä»åºäºï¼</para>
<screen><prompt>$</prompt> <command>cvs co -c</command> </screen>
<para>æ¨å°è¢«æç¤ºè¾å
¥ <application>SSH</application> å¯é¥çå£ä»¤ãæä¸ <guibutton>ENTER</guibutton> å¯ä»¥çå°ä»åºä¸å·²ææ¨¡åçå表ã</para>
</section>
</section>
<section id="sn-cvs-cvscommands">
<title>åºæ¬ç CVS å½ä»¤</title>
<indexterm>
<primary>cvs</primary>
<secondary>å½ä»¤</secondary>
</indexterm>
<para>é
置好系ç»ç CVS 访é®ä¹åï¼æ£åºè¦å¤ççæ¨¡åã</para>
<tip>
<title>æå·§</title>
<para>å
³äºæ¯å¦éè¦è®¾ç½® <envar>$CVSROOT</envar> ç¯å¢åéï¼æå½ä»¤è¡é项 <option>-m </option><replaceable>repository</replaceable>ï¼åºå½çå½åå·¥ä½ç®å½æ¯å¦æä¸ä¸ª <filename>CVS/</filename> åç®å½ã</para>
<para>妿æ <filename>CVS/</filename> åç®å½ï¼<application>CVS</application> 忽ç¥ä»»ä½ <envar>$CVSROOT</envar> æ <option>-m</option> å½ä»¤è¡é项设置ã</para>
</tip>
<section id="sn-cvs-cvscommands-co">
<title>æ£åºæ¨¡å</title>
<indexterm>
<primary>cvs</primary>
<secondary>æ£åºæ¨¡å</secondary>
</indexterm>
<para>æ¨åªéæ£åºæ¨¡å䏿¬¡ãå½ä¸ä¸ªæ¨¡åæ£åºå°æ¬å°ä¹åï¼å®å°±ä¸ç´å¨é£å¿äºã</para>
<para>è¦æ£åºä¸ä¸ªæ¨¡åï¼æ§è¡ä¸é¢çå½ä»¤ï¼</para>
<screen><prompt>$</prompt> <command>cvs co</command> <replaceable><module-name></replaceable></screen>
<para>ä¾å¦ï¼è¦æ£åº <computeroutput>example-tutorial</computeroutput> 模åï¼å
è¿å
¥å·¥ä½ç®å½ï¼ç¶åæ§è¡ä¸é¢çå½ä»¤ï¼</para>
<screen><prompt>$</prompt> <command>cvs co example-tutorial</command> </screen>
<para>å½åç®å½ä¸å°æ°å»ºä¸ä¸ªå忝 <filename>example-tutorial/</filename> çåç®å½ã</para>
<para>妿æ£åºæ¨¡åæ¶æ²¡ææå®åæ¯åç§°ï¼é»è®¤å°±æ¯ <application>CVS</application> 䏿¨¡åç <firstterm>HEAD</firstterm> 忝ã</para>
<section id="sn-cvs-cvscommands-co-branch">
<title>æ£åºæ¨¡åç忝</title>
<indexterm>
<primary>cvs</primary>
<secondary>æ£åºæ¨¡å</secondary>
<tertiary>æ£åºåæ¯</tertiary>
</indexterm>
<para>å¯ä»¥å° <application>CVS</application> 忝è§ä¸ºä¸ç¯æåçæä¸ªçæ¬ï¼ææ¯ä¸ä¸ªæä»¶çä¸åçæ¬ã</para>
<para>è¦æ£åºæ¨¡åç忝ï¼è¿è¡ä¸é¢çå½ä»¤ï¼</para>
<screen><prompt>$</prompt> <command>cvs co</command> <option>-d</option> <replaceable><directory></replaceable> <option>-r</option> <replaceable><branchname></replaceable> <replaceable><module-name></replaceable></screen>
<para>å°å建å为 <replaceable><directory></replaceable> çç®å½ï¼ 模å <replaceable><module-name></replaceable> ç <replaceable><branchname></replaceable> 忝çæä»¶å°è¢«å¤å¶å°è¿ä¸ªç®å½ä¸ã</para>
<para>ä¾å¦ï¼è¦æ£åº <computeroutput>mymodule</computeroutput> 模åç BRANCH-VERSION-1.2 忝ï¼è¿è¡å½ä»¤ï¼</para>
<screen><prompt>$</prompt> <command>cvs co -d mymodule-1.2 -r BRANCH-VERSION-1.2 mymodule</command> </screen>
<para>模åç BRANCH-VERSION-1.2 忝å°è¢«æ£åºå° <filename>mymodule-1.2</filename> ç®å½ä¸ã</para>
<para>è¦æ¥çæä»¶æåªäºåæ¯åæ è®°ï¼è¿è¡å½ä»¤ï¼</para>
<screen><prompt>$</prompt> <command>cvs status</command> <option>-v</option> <replaceable><filename></replaceable></screen>
<para>ä¾å¦ï¼æä»¶ <filename>foo.sgml</filename> çç¶æå¦ä¸ï¼</para>
<screen>
<computeroutput>
===================================================================
File: foo.sgml Status: Up-to-date
Working revision: 1.47
Repository revision: 1.47 /cvs/docs/custom-guide/rhl-cg-en.sgml,v
Sticky Tag: (none)
Sticky Date: (none)
Sticky Options: (none)
Existing Tags:
BRANCH-VERSION-1.2 (branch: 1.25.2)
</computeroutput>
</screen>
<para>åªæå¨ <computeroutput>Existing Tags</computeroutput>(ç°ææ è®°)䏿¾ç¤ºä¸º"忝"çæ è®°æå¯ä»¥ä½ä¸ºåæ¯æ£åºã</para>
</section>
</section>
<section id="sn-cvs-cvscommands-up">
<title>æ´æ°æä»¶</title>
<indexterm>
<primary>cvs</primary>
<secondary>æ´æ°æä»¶</secondary>
</indexterm>
<para>è¦è·å模åä¸æä»¶çææ°çæ¬ï¼åæ¢å°å
嫿¨¡åæä»¶çç®å½ï¼æ§è¡å½ä»¤ï¼</para>
<screen><prompt>$</prompt> <command>cvs update</command> </screen>
<para>æ¨¡åæææä»¶çææ°çæ¬å°ä¸è½½å°æ¬å°ã妿æ¨çå°äºæä»¶å²çªæç¤ºï¼è¯·åè <xref linkend="sn-cvs-cvscommands-conflicts"/>ã</para>
</section>
<section id="sn-cvs-cvscommands-commit">
<title>æäº¤æä»¶</title>
<indexterm>
<primary>cvs</primary>
<secondary>æäº¤æä»¶</secondary>
</indexterm>
<para>卿¬å°ä¿®æ¹æ¨¡åçæä»¶ä¹åï¼å°å®ä»¬æäº¤ï¼ä»¥å¨ <application>CVS</application> æå¡å¨ä¸ä¿åæ´æ¹ï¼</para>
<screen><prompt>$</prompt> <command>cvs commit</command> <option>-m</option> "<replaceable>some log message</replaceable>" <replaceable>filename</replaceable></screen>
<note>
<para>å¦ææ¨æ³ç¨åæ¬¢çææ¬ç¼è¾å¨æ¥æ°åæ¥å¿ä¿¡æ¯ï¼å¹¶ä¸å·²ç»å®ä¹äº $VISUAL æ $EDITOR ç¯å¢åéï¼å°±å¯ä»¥å¿½ç¥ <userinput>-m "some log message"</userinput>ãç¼è¾ç¼å²åºä¸ä¼å
å«ä¸äºæè¿°ä¿®æ¹ç注éï¼æ¨å¨æ·»å èªå·±çæåæ¶ï¼ä¸å¿
å æå®ä»¬ã</para>
</note>
<para>æ¥å¿ä¿¡æ¯åºå½å°½å¯è½ææè¿°æ§ï¼è¿æ ·æ¨åå
±åä½è
é½å¯ä»¥äºè§£åè¿äºåªäºä¿®æ¹ã妿æ¥å¿æ¶æ¯æ¯ <userinput>updated some files</userinput>(æ´æ°äºä¸äºæä»¶)ï¼é£å®æ æ³æè¿°ä¿®æ¹äºä»ä¹ï¼å°æ¥å¯¹æ¨æ¯«æ ç¨å¤ã妿æ¨ä¿®æ£äºä¸ä¸ªé误ï¼åºå½å
å« <application>Bugzilla</application> å¼ç¨ã</para>
<para>
<replaceable><filename></replaceable> å¯ä»¥æ¯ä¸ä¸ªæä»¶åï¼ä¸ç³»åä»¥ç©ºæ ¼åéçæä»¶åï¼æè
ä¸ç»ä»¥éé
符æå®çæä»¶åï¼ç±»ä¼¼ <filename>*.png</filename> æ <filename>foo-*.sgml</filename>ã</para>
<para>å¦æå¨ <command>commit</command> å½ä»¤ä¸æ²¡æç»åºæä»¶åæéé
ç¬¦ï¼ææä¿®æ¹é½ä¼è¢«æäº¤å°æå¡å¨ãè¿ä¸ªå½ä»¤æ¯éå½çï¼æ¨¡åä¸ä»»ä½åç®å½çä¿®æ¹ä¹é½ä¼è¢«æäº¤ãä¸å¸¦æä»¶åæ§è¡ <command>commit</command> å½ä»¤æ¶è¦å°å¿ï¼å 为æ¨å¯è½ä¸è®°å¾æ¹è¿äºä»ä¹ã</para>
<para>妿æ¨çå°äºæä»¶å²çªï¼è¯·åè <xref linkend="sn-cvs-cvscommands-conflicts"/>ã</para>
</section>
<section id="sn-cvs-cvscommands-add">
<title>æ·»å æä»¶</title>
<indexterm>
<primary>cvs</primary>
<secondary>æ·»å æä»¶</secondary>
</indexterm>
<para>è¦åæ¨¡åæ·»å æä»¶ï¼å¨æ¬å°ç®å½ä¸å建è¿ä¸ªæä»¶ï¼ç¶åæ§è¡ä¸é¢çå½ä»¤ï¼</para>
<screen><prompt>$</prompt> <command>cvs add</command> <replaceable>file-to-add</replaceable></screen>
<para>æ·»å æä»¶ä¹åï¼å¿
é¡» <command>commit</command>(æäº¤)æ·»å çæä»¶å°æå¡å¨ï¼</para>
<screen><prompt>$</prompt> <command>cvs commit</command> <option>-m</option> "<replaceable>some log message</replaceable>" <replaceable>file-to-add</replaceable></screen>
</section>
<section id="sn-cvs-cvscommands-admin">
<title>管çäºè¿å¶æä»¶</title>
<indexterm>
<primary>cvs</primary>
<secondary>äºè¿å¶æä»¶</secondary>
</indexterm>
<para>é叏忡£çæä»¶æ¯ç®åçææ¬æä»¶ï¼ä½æ¯ææ¶ä¹ä¼åæ¡£äºè¿å¶æä»¶ã<application>CVS</application> ç¨åºå¯ä»¥è¯å«å¤§å¤æ°æä»¶æ©å±åï¼ç±»ä¼¼ <filename>.png</filename> æ <filename>.jpg</filename>ï¼è¿æ ·å°±ä¸ä¼ååäºã</para>
<para>å½æä»¶è¢«æ£åºæ¶ï¼<application>cvs</application> æ«æå®ï¼æ¥æ¾ç¹æ®çå
³é®åï¼ç±»ä¼¼ "<computeroutput>$id:$</computeroutput>"ï¼ç¶åæ¿æ¢ä¸ºç¸åºçå¼ï¼ ä¾å¦çæ¬å·ã</para>
<para>å
³é®åæ¿æ¢é叏伿åäºè¿å¶æä»¶ï¼å æ¤å¦æ <application>CVS</application> æ æ³æ£ç¡®è¯å«æä»¶ä¸ºäºè¿å¶æä»¶ï¼å¿
é¡»å
³éæ¿æ¢ãæ è¯æä»¶ä¸ºäºè¿å¶å°±å
³éäºå
³é®åæ¿æ¢ï¼è¾å
¥å½ä»¤ï¼</para>
<screen width="60"> <prompt>$</prompt> <command>cvs</command> <option>admin</option> <option>-kk</option> <replaceable>filename</replaceable></screen>
<para>注æå¨ä½¿ç¨ <option>admin</option> å½ä»¤åï¼æä»¶å¿
须已被æ£å
¥ <abbrev>CVS</abbrev> ä»åºãè¿æ ·ä¸ä¼åºéï¼å 为å
³é®åæ©å±æ¯å¨æä»¶è¢«æ£åºå¹¶å¤å¶å°æ¬å°ç®å½æ¶è¿è¡çï¼è䏿¯æäº¤å°ä»åºä¸çæ¶åã</para>
<tip>
<title>æ¢å¤äºè¿å¶æä»¶</title>
<para>妿æ¨å°äºè¿å¶æä»¶æ£å
¥ä»åºï¼åç°å®å¨æ£åºæ¶è¢«æåäºï¼ä¸è¦å¿æ¥ãåªè¦è¿è¡ä¸é¢ç <option>admin</option> å½ä»¤ï¼åå ææ¬å°æä»¶ï¼ç¶å忬¡æ£åºå°±å¯ä»¥äºã</para>
</tip>
</section>
<section id="sn-cvs-cvscommands-rm">
<title>å 餿件</title>
<indexterm>
<primary>cvs</primary>
<secondary>å 餿件</secondary>
</indexterm>
<para>å¦ææ¨¡åä¸åéè¦æä¸ªæä»¶ï¼ä½¿ç¨ <command>remove</command> å½ä»¤æ¥å é¤å®ï¼ç¶åç¨ <command>commit</command> å½ä»¤å°å é¤æäº¤å°æå¡å¨ãå³ä½¿æ¨¡åçå½åçæ¬å é¤äºæä¸ªæä»¶ï¼è¿ä¸ªæä»¶ç坿¬è¿ä¼è¢«ä¿ç卿å¡å¨ä¸ï¼å¯ä»¥éæ¶ç¨ <command>add</command> å½ä»¤æ¢å¤ã</para>
<screen><prompt>$</prompt> <command>cvs rm -f</command> <replaceable>file-to-remove</replaceable></screen>
<para>å 餿件åï¼å¿
é¡» <command>commit</command>(æäº¤)å é¤ï¼</para>
<screen><prompt>$</prompt> <command>cvs commit</command> <option>-m</option>"<replaceable>some log message</replaceable>" <replaceable>file-to-remove</replaceable></screen>
<para>å¨ç¨ <command>commit</command> å½ä»¤æäº¤å 餿¶ä¸è½ä½¿ç¨éé
符ãå¿
é¡»æç¡®å°æå®æä»¶åã</para>
<para>妿éè¦éå½åæä¸ªæä»¶ï¼æå¥½å¨ <application>CVS</application> æå¡å¨ä¸éå½åå®ï¼è¿æ ·æä»¶çåå²å¯ä»¥ä¿ç䏿¥ã妿éè¦éå½åæä»¶ï¼å°±å <ulink url="mailto:cvsdocs-administrator@fedora.redhat.com"><filename>cvsdocs-administrator@fedora.redhat.com</filename></ulink> åéä¸å°é®ä»¶ï¼åæè¦éå½åçæä»¶ã</para>
</section>
<section id="sn-cvs-cvscommands-status">
<title>æä»¶çç¶æ</title>
<indexterm>
<primary>cvs</primary>
<secondary>æä»¶çç¶æ</secondary>
</indexterm>
<para>ææ¶éè¦æ¥ç模å䏿件ç <firstterm>status</firstterm>(ç¶æ)ãæ§è¡å½ä»¤ï¼</para>
<screen><prompt>$</prompt> <command>cvs status</command> <replaceable>filename</replaceable></screen>
<para>ä»åºæä»¶çç¶ææ¥åå¦ä¸æç¤ºï¼</para>
<variablelist>
<varlistentry>
<term>
<computeroutput>Up-to-date</computeroutput>
</term>
<listitem>
<para>æ¨çæä»¶çæ¬æ£æ¯ <application>CVS</application> æå¡å¨ä¸çææ°çæ¬ã</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<computeroutput>Locally Modified</computeroutput>
</term>
<listitem>
<para>æ¨å·²ä»æå¡å¨ä¸æ´æ°äºææ°ççæ¬ï¼å¹¶ä¸åäºä¿®æ¹ã</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<computeroutput>Locally Added</computeroutput>
</term>
<listitem>
<para>æ¨ä½¿ç¨ <command>cvs add</command> å½ä»¤æ·»å äºæä»¶ï¼ä½æ¯å°æªæäº¤æä»¶çæ·»å ã</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<computeroutput>Locally Removed</computeroutput>
</term>
<listitem>
<para>æ¨ä½¿ç¨ <command>cvs remove</command> å½ä»¤å é¤äºæä»¶ï¼ä½æ¯å°æªæäº¤æä»¶çå é¤ã</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<computeroutput>Needs Checkout</computeroutput>
</term>
<listitem>
<para>æå¡å¨ä¸ææ°çæ¬çæä»¶ï¼æ¨éè¦æ´æ°ãå°½ç®¡ç¶æä¸è¯´ï¼éè¦æ£åºï¼å®é
çæææ¯ï¼æ¨éè¦ç¨ <command>cvs update</command> å½ä»¤æ´æ°æä»¶ã</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<computeroutput>Needs Patch</computeroutput>
</term>
<listitem>
<para>æ¬å°æä»¶éè¦æè¡¥ä¸ä»¥æ´æ°å°æå¡å¨çææ°çãæ§è¡ <command>cvs update</command> å½ä»¤æ¥è§£å³ã</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<computeroutput>Needs Merge</computeroutput>
</term>
<listitem>
<para>æå¡å¨ä¸ææ´æ°ççæ¬ï¼æ¨çæ¬å°çæ¬å´åäºæªæäº¤çä¿®æ¹ãè¿ç§æ
åµå¯è½ç»å¸¸åçï¼å¦ææ¨æ²¡æè·åææ°çæ¬å°±è¿è¡ä¿®æ¹çè¯ã</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<computeroutput>File had conflicts on merge</computeroutput>
</term>
<listitem>
<para>类似 <computeroutput>Needs Merge</computeroutput>ï¼ä½æ¯å½æ¨æ§è¡ <command>cvs update</command> å½ä»¤æ¶ï¼å°æ æ³èªå¨è§£å³å²çªãå
³äºå¦ä½è§£å³å²çªè¯·åè <xref linkend="sn-cvs-cvscommands-conflicts"/>ã</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<computeroutput>Unknown</computeroutput>
</term>
<listitem>
<para>
<application>CVS</application> æå¡å¨ä¸ç¥éæä»¶çä»»ä½ä¿¡æ¯ã宿²¡æè¢«æ¬å°æ·»å æå é¤ï¼ä¹ä»æªæäº¤å°æå¡å¨ä¸ãè¿ç§æ
åµé常åçå¨ä¸åºè¢«æäº¤å° <application>CVS</application> æå¡å¨çæä»¶ä¸ï¼ä¾å¦ <filename>generated-index.sgml</filename>ï¼æè
æ¯æ³æ·»å å°ä»åºä½å°æªæ§è¡ <command>cvs add</command> å½ä»¤çæä»¶ã</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section id="sn-cvs-cvscommands-conflicts">
<title>è§£å³å²çª</title>
<indexterm>
<primary>cvs</primary>
<secondary>è§£å³å²çª</secondary>
</indexterm>
<para>妿æ¨ä¿®æ¹äºä¸ä¸ªæä»¶ï¼èå¦ä¸ä¸ªäººä¿®æ¹äºåæ ·çåºåå¹¶ä¸å
æäº¤äºï¼æ¨å¨æäº¤æä»¶ææ´æ°æ¬å°ç®å½æ¶å°±ä¼çå°ç±»ä¼¼ä¸é¢çæ¶æ¯ï¼</para>
<screen>
<computeroutput>
RCS file: /cvs/docs/module-name/filename.sgml,v
retrieving revision 1.12
retrieving revision 1.13
Merging differences between 1.12 and 1.13 into filename.sgml
rcsmerge: warning: conflicts during merge
cvs server: conflicts found in filename.sgml
C filename.sgml
</computeroutput>
</screen>
<para>è¦è§£å³å²çªï¼æå¼æä»¶ï¼æç´¢ <computeroutput><<<<<<<</computeroutput> ç¶å夿åªä¸ªçæ¬ææ¯æ£ç¡®çãä¾å¦ï¼</para>
<screen>
<computeroutput>
<para>
Some sentence.
<<<<<<< filename.sgml
A sentence that was changed in the working copy.
=======
A same sentence that was changed differently and committed.
>>>>>>> 1.13
</para>
</computeroutput>
</screen>
<para>
<computeroutput><<<<<<<</computeroutput> å <computeroutput>=======</computeroutput> ä¹é´çå
容æ¯å·¥ä½ç®å½éåæçã <computeroutput>=======</computeroutput> å <computeroutput>>>>>>>></computeroutput> ä¹é´æ¯æå¡å¨ä¸çå
容ã</para>
<para>ä¿®æ¹æä»¶ï¼è§£å³å²çªï¼ç¶åæäº¤å®ã</para>
</section>
<section id="sn-cvs-cvscommands-summary">
<title>å°ç»</title>
<indexterm>
<primary>cvs</primary>
<secondary>å½ä»¤</secondary>
<tertiary>å°ç»</tertiary>
</indexterm>
<para>ææå½ä»¤é½å宿¨çå½åç®å½æ¯æ£ç¡®çã</para>
<table frame="all" id="tb-cvs-basic-commands">
<title>åºæ¬ç CVS å½ä»¤</title>
<tgroup cols="2">
<colspec colname="shortcut" colnum="1" colwidth="30"/>
<colspec colname="description" colnum="2" colwidth="60"/>
<thead>
<row>
<entry>å½ä»¤</entry>
<entry>æè¿°</entry>
</row>
</thead>
<tbody>
<row>
<entry>
<command>cvs checkout <replaceable><module-name></replaceable></command> æ <command>cvs co <replaceable><module-name></replaceable></command></entry>
<entry>å建ä¸ä¸ªå为 <replaceable><module-name></replaceable> çç®å½ï¼ å°æ¨¡åå
容æ¾å¨ç®å½ä¸</entry>
</row>
<row>
<entry>
<command>cvs co -d <replaceable><directory></replaceable> -r <replaceable><branchname></replaceable><replaceable><module-name></replaceable></command>
</entry>
<entry>å建 <replaceable><directory></replaceable> ç®å½ï¼å° <replaceable><module-name></replaceable> 模åç <replaceable><branchname></replaceable> 忝æ¾å¨ç®å½ä¸ã</entry>
</row>
<row>
<entry>
<command>cvs update</command> æ <command>cvs up</command></entry>
<entry>仿å¡å¨å°æä»¶æ´æ°å°ææ°ç</entry>
</row>
<row>
<entry>
<command>cvs add <replaceable><filename></replaceable></command>
</entry>
<entry>å°æä»¶ "filename" æ·»å å° CVS æå¡å¨</entry>
</row>
<row>
<entry>
<command>cvs commit -m "My message" <replaceable><filename></replaceable></command>
</entry>
<entry>å°æ¬å°è®¡ç®æºä¸çæä»¶ <replaceable><filename></replaceable> æäº¤ä¸ºææ°ç</entry>
</row>
<row>
<entry>
<command>cvs log <replaceable><filename></replaceable></command>
</entry>
<entry>æ¥çæä»¶ <replaceable><filename></replaceable> çæäº¤ä¿¡æ¯</entry>
</row>
<row>
<entry>
<command>cvs status <replaceable><filename></replaceable></command>
</entry>
<entry>æ¥çæä»¶çç¶æï¼ç±»ä¼¼ <computeroutput>Locally
Modified</computeroutput></entry>
</row>
<row>
<entry>
<command>cvs status -v <replaceable><filename></replaceable></command>
</entry>
<entry>æ¥çæä»¶ç°æçæ ç¾å忝</entry>
</row>
<row>
<entry>
<command>cvs diff <replaceable><filename></replaceable></command>
</entry>
<entry>æ¥çæä»¶çå·¥ä½çæ¬ä¸åæ¯ä¸çææ°çæ¬çä¸åä¹å¤</entry>
</row>
<row>
<entry>
<command>cvs diff -r1.1 -r1.2 <replaceable><filename></replaceable></command>
</entry>
<entry>æ¥çæä»¶ 1.1 å 1.2 çæ¬çä¸åä¹å¤</entry>
</row>
</tbody>
</tgroup>
</table>
<para>请é
读系ç»ä¸ç CVS æåæ¥è·åæ´å¤ä¿¡æ¯ï¼ä½ç½®æ¯ <filename>/usr/share/doc/cvs-<replaceable><version-number></replaceable>/cvs.ps</filename> (CVS çæ¬å¯è½ææä¸å)ãè¿å¯ä»¥è®¿é® CVS 主页ï¼ä½ç½®æ¯ <ulink url="http://www.cvshome.org/">http://www.cvshome.org/</ulink>ã</para>
<tip>
<title>æå·§</title>
<para>ç±äº <application>CVS</application> ä½¿ç¨ <application>ssh</application> æ¥è¿æ¥ <application>CVS</application> æå¡å¨ï¼å¨ååº <application>CVS</application> 请æ±åï¼æ¨å°è¢«æç¤ºè¾å
¥å¯ç ãå¦ææ¨æç®é
ç½®ä¸ä¸ï¼çå»è¾å
¥å¯ç çæ¥éª¤ï¼è¯·åè <ulink url="http://redhat.com/docs/manuals/linux/RHL-9-Manual/custom-guide/s1-openssh-client-config.html"><citetitle>&RH; Linux 9 Customization Guide</citetitle></ulink>(å®å¶æå)ä¸ä½¿ç¨ <command>ssh-agent</command> çç»èã</para>
</tip>
</section>
</section>
</chapter>
See more files for this project here