=================================================================== RCS file: /cvsrepo/anoncvs/cvs/www/anoncvs.html,v retrieving revision 1.248 retrieving revision 1.249 diff -c -r1.248 -r1.249 *** www/anoncvs.html 2006/05/02 18:02:36 1.248 --- www/anoncvs.html 2006/05/03 00:21:26 1.249 *************** *** 6,12 **** OpenBSD AnonCVS ! --- 6,12 ---- OpenBSD AnonCVS ! *************** *** 15,148 **** ! [OpenBSD]

Anonymous CVS


!

目次


!

Anonymous CVS とは ?

! Anonymous CVS は、現時点での OpenBSD ソースに対して加えられた更新に関して、 ! OpenBSD のソースツリーのあなたのローカルなコピーを最新に維持しておくための ! 方法です。開発の最先端に追従することに加えて、リリースの errata のための ! パッチを追跡することもまた可能です。

! 他のソースコード更新技術に対する Anonymous CVS の主な利点は、中央の ! ソースコードリポジトリかミラーに対して、それが直接働くということ ! でしょう。これはつまり、あなたの変更と他のソースの変更に関する更新や ! マージを制御したり、diff を取ったり、変更履歴や他のことを中央の ! リポジトリに対して質問したりするために、フルセットの CVS コマンドを ! あなたは使用できるということです。

! OpenBSD プロジェクトは、現状では、次の 5 個の主ソースリポジトリを持っています。

! 要約しますと、Anonymous CVS を使用することの実際の強みは、それが「寛容な」 ! ソースコードコントロールシステムであるということであり、それは、あなたが ! そのまま続けずに解決しなければならない難問のリストを放置するのではなく、 ! むしろ、あなたのローカルなソースに対してあなたが加えた変更と、あなたの ! 全体のソースツリーを更新するための「最善の努力」をする ! ことを尊重するということです。 !

CVS とは ?

! CVS とは、 ! OpenBSD のソースツリーを管理するのに使用されている ! ソースコードコントロールシステムです。 ! それは、すべての正式にリリースされたソースコードとそれに対する ! 変更のための中央のリポジトリを実装する一方で、開発者に対しては彼らの作業中の変更を ! 含むソースコードのローカルなコピーを保守することを許しています。 ! ソースツリーへのアクセスには、次の 2 種類のレベルがあります。

! CVS の主な強みは、あなたの行ったあなたのローカルなコピーに対する変更とともに、 ! 中央のリポジトリに対する変更のインテリジェントなマージを実行可能なことでしょう。 ! これは、もし、あなたがモジュールに対して変更を加えて、更新を実行した場合にも、 ! あなたの変更が「吹き飛ばされる」ようなことがないことを意味しており、むしろ、 ! CVS は、中央のソースに対する変更とあなたがあなたのローカルなコピーに対して ! 加えた変更とをマージするよう、最大限の努力を払おうとします。

! 変更を完全にマージできなかった場合には、CVS は「柔軟なフォールバック」を提供し、 ! また、あなたのローカルなコピーに対する注釈された変更を提供し、あなたのバージョンの ! 変更されていないコピーを保存し、そして、あなたの要求した他のソースモジュールの ! 更新を継続します。 !

Anonymous CVS ! を使い始めるために

! AnonCVS サーバからはソースコード全体をダウンロードすることもできますが、 ! OpenBSD の CD や FTP サーバからダウンロードしたソースファイルをあらかじめ ! 用意しておくことで、 ! 時間やネットワーク帯域を大幅に短縮することができます。 ! -release-stable の間に加えられる変更点は比較的少ないので、 ! これは -stable を運用している場合に ! 特に有利な方法です。

! CD から /usr/src に CVS ツリーをコピーするには、次のようにします ! (CD は /mnt にマウントされているものと仮定します)。

      # cd /usr/src; tar xzf /mnt/src.tar.gz
      # cd /usr; tar xzf /mnt/XF4.tar.gz
      # tar xzf /mnt/ports.tar.gz
  
! FTP サーバからダウンロードしたソースファイルは、ソースツリーの一部を ! 入手したいという人の時間を節約できるように、2 個のファイルに分かれています。 ! この 2 個のファイルとは、カーネルの構築に必要な sys.tar.gz という ! ファイルと、その他のユーザランドユーティリティが含まれる src.tar.gz ! です。 ! 特別な理由がなければ、両方をインストールすべきでしょう。 ! ダウンロードしたファイル src.tar.gzsys.tar.gz が、 ! /usr に置かれている場合、次のようにします。
      # cd /usr/src
--- 15,148 ----
  
  
  
! [OpenBSD]
  

Anonymous CVS


!

Table Of Contents


!

What is Anonymous CVS?

! Anonymous CVS is a method of keeping your local copy of the OpenBSD source ! tree up to date with respect to changes made to current OpenBSD sources. ! In addition to following the bleeding edge of development, it is ! also possible to track the patches for errata of a release.

! The major advantage of Anonymous CVS over other source code update ! techniques is that it works directly against a central source code ! repository or mirror. This means that you have the full set of CVS ! commands available to control merging and updating your changes with ! other source changes and for performing diffs, change histories ! and other queries against the central repository.

! The OpenBSD Project currently has five main source repositories:

! To summarize, the real strength of using Anonymous CVS is that it is ! a "tolerant" source code control system - it respects ! changes that you have made to your local sources and makes ! "best efforts" to update your entire source tree, rather than ! leaving you a list of arcane problems that have to be resolved before ! continuing. !

What is CVS?

! CVS is the source code control ! system used to manage the OpenBSD source ! tree. ! It implements a central repository for all officially released source code ! and changes, while permitting developers to maintain local copies of the ! source code with their working changes. ! There are two levels of source tree access:

! The major strength of CVS is that it has the ability to perform intelligent ! merges of changes to the central repository with changes that you make to ! your local copy. This means that if you make a change to a module and ! perform an update, your changes are not "blown away", rather CVS makes ! best efforts to merge the changes made to the central sources with changes ! you've made to your local copy.

! In the event that the changes can't be completely merged, CVS provides a ! "soft fallback", providing you with annotated changes to your ! local copy, preserving an unmodified copy of your version and continuing ! to update any other source modules you requested. !

Getting Started Using Anonymous ! CVS

! While you can download the entire source tree from an AnonCVS server, ! you can often save a lot of time and bandwidth by "preloading" your ! source tree with the source files from either the OpenBSD CD or from an ! FTP server. ! This is particularly true if you are running ! -stable, as relatively few files change ! between the -release and -stable.

! To extract the source tree from the CD to /usr/src (assuming the CD is ! mounted on /mnt):

      # cd /usr/src; tar xzf /mnt/src.tar.gz
      # cd /usr; tar xzf /mnt/XF4.tar.gz
      # tar xzf /mnt/ports.tar.gz
  
! The source files for download from the FTP servers are separated into two ! files to minimize the time required to download for those wishing to work ! with only one part of the tree. The two files are sys.tar.gz, ! which contains the files used to create the kernel, and src.tar.gz ! which contains all the other "userland" utilities. ! In general, however, you will usually want both of them installed. ! Assuming the downloaded files, src.tar.gz and ! sys.tar.gz are in /usr:
      # cd /usr/src
***************
*** 154,399 ****
  

! この 2 個のファイルを必ず展開しなければならない、というわけではありませんが、システム全体は ! 互いに同期がとれていなければならないため、通常はツリー全体を用意する必要があります。

! cvs(1) を使って、ソースリポジトリを"チェックアウト"することも可能です。 ! 具体的な手順については、次のセクションで解説します。

! その後、/usr/src は、良きチェックアウトのための領域となり、ここで、すべての ! cvs(1) ! コマンドがうまく動くことでしょう。 !

ソースツリーの取得・更新に ! CVS を使う

! CVS は、ソースを受け取り、それを更新するための単純な方法であることを目指して ! 設計されたものです。まず最初に、追いかけるのは -current なのか、 ! パッチブランチ なのかを決める必要があります。 ! -current ツリーには細かい変更のすべてが含まれており、 ! パッチブランチは、正式リリースに加え、errata ! の修正パッチや影響の小さな問題の修正が既に適用されたものとなっています。 ! このような OpenBSD の"種類"については、 ! ここをご覧ください。 !

いったん、追いかけるツリーを決めたら、どの Anonymous CVS サーバを ! 使うのかを選択しなければなりません。これらのサーバのリストは、 ! このページの下のほうにあります。

! どの Anonymous CVS サーバを使うのかを選択したら、 ! cvs を使い始めることができます。 ! CD をお持ちの人は、自分のシステムにソースを取得するために、 ! 上記の方法で CD 上の CVS のチェックアウトで cvs を使い始められます。 ! もし、CD をお持ちでないなら、ソースをチェックアウトするために次の方法をお使いください。 ! この方法は、OpenBSD のソースを /usr/src に置くためのものです。

  	# cd /usr; cvs checkout -P src
  

! 上記の方法は、-current のソースツリーをチェックアウトすることになります。多くの人に ! とっては、パッチブランチのソースが欲しいことでしょう。このパッチブランチをチェックアウト ! するためには、次の例のようにコマンドライン上でタグを指定する必要があります。

  	# cd /usr; cvs checkout -P -rOPENBSD_3_9 src
  

! これは、3.8 の場合なら、OPENBSD_3_8 となります。 !

OPENBSD_3_9 のタグは、リリースのソースと適用済の errata ! を含んでいます。 !

利用可能な Anonymous CVS サーバ

! 以下の ssh vs. rsh に関する注を御参照ください   !

! Not all people will wish to unpack all the file sets, but as the system ! must be kept in sync, you will generally need to set up all trees.

! You can also just use cvs(1) to "checkout" the source repository ! for you. This is discussed in the next section.

! After this, /usr/src will be a nice checkout area where all ! ! cvs(1) commands will work properly. !

Using CVS to get and update your ! source tree

! CVS was designed to be a simple way to retrieve and update your sources. ! You must first decide whether you want to track -current or a ! patch branch. ! The current tree has all of the up to the minute changes, ! whereas a patch branch contains a formal release plus the patches ! from the errata and lesser issues already applied. ! For more information on these "flavors" of OpenBSD, see ! here. !

Once you have decided which tree to follow, you must choose which Anonymous ! CVS server you are going to use. A list of these servers is ! below.

! Once you have chosen which Anonymous CVS Server you will ! use, you can start using cvs. For those of you ! who have CDs you can start with the CVS checkout that is on the CD by using ! the method above to get the sources onto your system. ! If you don't have a CD handy, use the method below to checkout the sources. ! This method puts the OpenBSD source tree into /usr/src.

  	# cd /usr; cvs checkout -P src
  

! The above will checkout the current source tree. Many of you will ! only want the patch branch sources. To checkout a patch branch, you must ! specify a tag along with your command. Example:

  	# cd /usr; cvs checkout -P -rOPENBSD_3_9 src
  

! Or OPENBSD_3_8 for 3.8, etc. !

The OPENBSD_3_9 tag contains the release sources and ! errata already applied. !

Available Anonymous CVS Servers

! Please see the note about ssh vs. rsh below!

! 注: もし、あなたのサーバが、不正確な情報や知らない情報で ! ここにリストアップされていた場合、 ! beck@openbsd.orgに御連絡ください。

! あなたは、どのサーバが最も自分に近いところにあるのかを見つけるために、 traceroute(8) ! を使いたいと思うかも知れません。 ! サーバに関する問題は、 ! 問題のサーバのメンテナに報告すべきです。 !

cvs(1) ! を使っての暗号ソースの取得

! 重要な注意事項: ! 誰もが知っておくべきこととして、暗号ソフトウェアに関しては ! 若干の問題があります。

!

Example usages for cvs(1)

! NOTICE: If you want to update a branch (such as a patch branch) ! to current, you would add the -A ! flag to cvs, but this flag is of little use otherwise. Some older ! versions of the OpenBSD documentation recommended use of this flag ! in many examples. We no longer recommend this flag unless absolutely necessary.

! A sample use of an anoncvs server would be:

  $ cd /tmp
  $ cvs -d anoncvs@anoncvs.ca.openbsd.org:/cvs get src/sys/arch/sparc
!     [copies the files from the repository to your machine]
  $ cd src/sys/arch/sparc
  $ cvs log locore.s
!     [shows the commit log for the chosen file]
  $ cvs diff -bc -r1.1 -r1.5 locore.s
!     [shows the changes between revisions 1.1 and rev 1.5]
  

! In order to use a cvs ``pserver'' (a direct TCP connection ! instead of using ssh or rsh) you must login once:

  $ cvs -d :pserver:anoncvs@anoncvs.ca.openbsd.org:/cvs login
! (Logging in to anoncvs@anoncvs1.ca.openbsd.org)
  CVS password: anoncvs
!     [This writes a line to ~/.cvspass (filename over-ridden by CVS_PASSFILE).]
!     [An example line from my ~/.cvspass after typing 'blah' for the above    ]
!     [password is:                                                            ]
!     [:pserver:anoncvs@anoncvs5.usa.openbsd.org:/cvs Au'yc                    ]
!     [After logging in ONCE every other use of the above CVSROOT will work.   ]
  $ cvs -d :pserver:anoncvs@anoncvs.ca.openbsd.org:/cvs get ksrc-i386 ksrc-common
!     [Allows you to retrieve ONLY that necessary to rebuild an i386 kernel.   ]
  

! Here is how someone using anoncvs regularly would update his ! source tree: !

! ports使うのも、src と同様です。

! 上記の例において、cvs の出力を最小化させるために、-q オプションも ! 指定可能です。画面いっぱいの出力がお好みの向きには、これのオプションは ! 外しておいた方が幸せでしょう。

! また、ローカルにパッチを当てたモジュール (ここでは cd.c) をバグレポートに ! 含めるために diff を取るには、

  	# cd /usr
  	# cvs diff -u src/sys/scsi/cd.c > /tmp/patch
  

! (CVS ソースに含まれている) ! ! cvs(1) マニュアルページには、 ! もっと多くの CVS の使い方についての情報があります。

! 警告: ! cvs を使用する場合には、カレントディレクトリが、参照しているツリーの root か、 ! /tmp のような独立した場所かのどちらかになっているよう、注意すべきでしょう。 ! "get" のようなコマンドの場合、カレントディレクトリの下に、任意のサブツリーを作成 ! できてしまいますので、これに続く更新は再帰的にこのサブツリーを更新していくでしょう。

! Anonymous CVS サービスは、経験の浅い開発者にとって、CVS のオペレーションを ! 学び、"commit" アクセスを経験するまでの、とても複雑な開発プロセスを経験するための ! 絶好のチャンスを提供していますが、高品質で有用な技術を見せることの結果として、 ! 彼らはいずれ自然に開発者としてのアクセスを与えられるようになるでしょう。 ! 同様に、パッチを提供する人は、CVS ツリーに関係する自分の "diff" を作成することが ! できますが、それは、簡単に統合できるものでしょう。 !

rsh(1) と ssh(1) をどちらを使うか ?

! CVS は、サーバ・クライアント間で 3 種類のアクセス方法に対応しています。 - ! 注意: rsh を使う人場合は、最初に CVS_RSH 環境変数に ! rsh(1) プログラムのパス名を設定する必要があります。

! OpenBSD の CVS クライアントはデフォルトで、CVS サーバとのやり取りに ssh ("secure shell": ! OpenSSH) を使用します。

! 多くの CVS サイトは、最早セキュリティ上の理由から rsh をサポートしていません。 ! ファイアウォール等のローカルな問題や、slirp のような不完全なプロトコルエミュレータ ! もまた、rsh の利用の邪魔になるかも知れません。しかし、それでも、もし、rsh を使う必要が ! ある場合には、CVS_RSH 環境変数に rsh を指定しなければなりません ! (典型的には /usr/bin/rsh です)。

! もし、ローカルなポリシーが ssh のデフォルトポートの 22 番の外との接続を邪魔する場合、 ! ポート 2022 がその代わりに使用されるかも知れません。しかしながら、それはすべての Anonymous ! CVS サーバがこのポートでの ssh 接続を受け付けるわけではないことに注意する必要があります。 ! さらに、セキュリティ上の理由から、最近のバージョンの ssh では、暗号なし ! が無効化されていますので、ほとんどの Anonymous CVS サーバは最早この接続を受け付けません。 ! また、CVS では既に圧縮が有効ですので、ssh での圧縮を有効にしようとはしません。

! 上記に述べた制限や落し穴を避けるために、 ! $HOME/.ssh/config コンフィグレーションファイルなどを ! 指定することができます。

  	Host anoncvs.ca.openbsd.org
  	    Compression no
--- 537,655 ----
  
  
  

! To use ports, it is similar to src:

! In the above example, -q is optional, only intended to minimize ! cvs's output. For those who like to see screenfulls of output, it ! can be omitted.

! or to make a diff of a locally patched module (here cd.c) to include with ! a bug report:

  	# cd /usr
  	# cvs diff -u src/sys/scsi/cd.c > /tmp/patch
  

! The ! cvs(1) man page ! (included with the CVS sources) has much more ! information about how CVS can be used.

! Warning: ! When using cvs you should take care that your current directory is either ! the root of the tree you are referencing or in a separate place such as /tmp. ! Some commands such as "get" can create an arbitrary sub-tree in the current ! directory, and a subsequent update will recursively flesh out this sub-tree.

! The anoncvs service gives fledgling developers a chance to learn CVS ! operation and get thoroughly involved in the development process ! before getting "commit" access -- as a result of showing useful ! skills and high quality results they will naturally later be given ! developer access. As well, people providing patches can create ! their "diff"s relative to the CVS tree, which will ease integration. !

Use rsh(1) or ssh(1)?

! CVS supports three access methods between the CVS server and the CVS ! client: !

! NOTE: For users wishing to use rsh, you must first set the ! CVS_RSH environment variable to point to the rsh(1) program:

! By default, OpenBSD's CVS client uses ssh ("secure shell": ! OpenSSH) to talk to the CVS server.

! Many of the CVS sites no longer support rsh for security reasons. Local ! problems like firewalls or imperfect protocol emulators such as slirp may ! also hinder rsh usage. However, if rsh is desired, one must set the ! CVS_RSH environment variable to point to rsh ! (typically /usr/bin/rsh).

! If local policy prevents outgoing connections to ssh's default port of 22, ! port 2022 may be used in its place. Note, however, that not all anoncvs ! servers accept ssh connections on this port. Furthermore, most anoncvs servers ! no longer accept the none cipher, as it is disabled in ! recent versions of ssh for security reasons. Also, do not be tempted ! to turn on compression: CVS already compresses.

! One could specify something like the following in the ! $HOME/.ssh/config configuration file to avoid the pitfalls ! and restrictions mentioned above:

  	Host anoncvs.ca.openbsd.org
  	    Compression no
***************
*** 657,731 ****
  

! CVS をスタートする際は、少々騒々しいので、少し静かにさせるために、 ! 次のようなことをしたくなるかも知れません。

  	$ export CVS_CLIENT_PORT=-1
  

!

sup(1) を使った ! CVS リポジトリのミラーリング

! OpenBSD のツリーそのものをミラーしようとするユーザは、 ! anoncvs.usa.openbsd.organoncvs3.usa.openbsd.org ! (これらは異なるマシンです) から、そうしようとするかも知れません。しかし、これらは ! cvs ツリーであり、ソースツリーをチェックアウトしているのではないことに注意 ! する必要があります。これは、もし、高速な cvs オペレーション (diff、annotate 等) や、 ! もし、複数のソースツリーを持ち、新しいものを転送したい (そうすれば、ローカルな cvs ! ミラーからツリーをチェックアウトすることができます) 場合にのみ有用でしかありません。

! supfile の例は次のとおりです。

  	cvs host=anoncvs.usa.openbsd.org hostbase=/ base=/home delete
  

! これは、/home/sup の中の最後の sup データファイルとともに cvs ツリーを ! /home/cvs にミラーするでしょう。すべての OpenBSD cvs ツリーは、現状では ! およそ 2.5GB のサイズになります。もちろん、これは今後も増え続けるでしょう。 !

anoncvs ミラーの構築

! もし、あなたが Anonymous CVS のミラーサイトを構築して、 ! それを一般公開しようとお考えでしたら、Anonymous CVS ! のメンテナに御連絡ください。 ! Anonymous CVS ミラーは約 2.2GB のディスク容量を必要とし、Anonymous CVS ユーザ ! ひとり当たり 32MB までのスワップを使用する (ユーザが大きなオペレーションを行なった ! 場合です; 小さなオペレーションの場合は、より少量のリソースですみますが、 ! それでもなお、 Anonymous CVS は ftp や sup より大きなインパクトがあります)。 ! そのような Anonymous CVS マシンは、サービスを行おうとする地域に対する優れた ! ネットワーク接続を持つべきでしょう。Anonymous CVS サーバの構築について記述された ! ドキュメントが利用可能となっています。 !

最終的な注意事項

! ソースツリーをアップグレードした後、構築しようとする前に、 ! /usr/src/Makefile の先頭のコメントを読むべきでしょう。 ! また、もし、可能なら、make build を実行するに ! 新しいカーネルを構築しておくべきです。場合によっては、カーネルを構築できる ! ようになる前に、config ユーティリティを再構築し、インストールして ! おく必要があるかも知れません。もし、config GENERIC が失敗する ! ようでしたら、たぶん、このケースでしょう。

! ソースからの再構築によって、リリースから -current ツリーへのアップグレードは、 ! しばしば明確ではない依存性のため、どちらかと言えば難しいということに注意して ! ください。ですので、ソースからツリーを構築しようとする前に、まず、最新の ! スナップショットをインストールすることを提案しておきます。


! OpenBSD www@openbsd.org !
! ! ! $OpenBSD: anoncvs.html,v 1.248 2006/05/02 18:02:36 jufi Exp $ --- 657,725 ----

! CVS is a little noisy starting up; to quiet it a bit you may want to ! do this:

  	$ export CVS_CLIENT_PORT=-1
  

!

Mirroring the CVS repository via ! sup(1)

! Users wishing to mirror the OpenBSD CVS tree itself may now do so ! from anoncvs.usa.openbsd.org or anoncvs3.usa.openbsd.org ! (these are different machines). Note that this is the cvs tree, ! not a checked out source tree. It is only useful if you ! want to be able to do fast cvs operations (diff, annotate, etc) or ! if you have multiple source trees and you only want to transfer new ! data once (you can then checkout a tree from your local cvs mirror).

! A sample supfile would be:

  	cvs host=anoncvs.usa.openbsd.org hostbase=/ base=/home delete
  

! which would mirror the cvs tree into /home/cvs with the sup data ! files ending up in /home/sup. The full OpenBSD cvs tree is currently ! about 2.5GB in size, and will, of course continue to grow. !

Setting up an anoncvs mirror

! If you wish to setup a new anoncvs mirror site and make it available to ! the general public, please contact the anoncvs ! maintainer. ! Anoncvs mirrors require about 2.2GB of disk, and use up to 32MB of swap ! per anoncvs user (assuming the user does a large operation; while smaller ! operations use fewer resources, anoncvs still makes much more of an ! impact than ftp or sup). Such anoncvs machines should have excellent ! network connectivity for the area they are expected to serve. A ! document ! which describes the setup of anoncvs servers is available. !

Final notes

! After upgrading your source tree, you should read the comments ! at the top of /usr/src/Makefile before attempting ! a build. Also, you should build a new kernel before ! doing a make build if possible. In some cases it may be ! necessary to rebuild and install the config utility before ! you can build the kernel. If config GENERIC fails this ! is probably the case.

! It is important to note that upgrading from a release to the current tree ! by rebuilding the sources can be rather difficult due to dependencies ! that are often not obvious. Therefore, it is suggested that you first ! install the latest snapshot before attempting a tree build from source.


! OpenBSD www@openbsd.org !
$OpenBSD: anoncvs.html,v 1.249 2006/05/03 00:21:26 nick Exp $