Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 May 2021 12:12:16 GMT
From:      Ryusuke SUZUKI <ryusuke@FreeBSD.org>
To:        doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org
Subject:   git: a974b5d618 - main - a9a9e66105 -> 16ca20a527
Message-ID:  <202105021212.142CCGuH083940@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by ryusuke:

URL: https://cgit.FreeBSD.org/doc/commit/?id=a974b5d6181721963b3a8b7df1a1d19d4865fc82

commit a974b5d6181721963b3a8b7df1a1d19d4865fc82
Author:     Ryusuke SUZUKI <ryusuke@FreeBSD.org>
AuthorDate: 2021-05-02 12:11:56 +0000
Commit:     Ryusuke SUZUKI <ryusuke@FreeBSD.org>
CommitDate: 2021-05-02 12:11:56 +0000

    a9a9e66105 -> 16ca20a527
---
 .../content/ja/books/handbook/mirrors/_index.adoc  | 375 +++++++++++++++++++--
 1 file changed, 351 insertions(+), 24 deletions(-)

diff --git a/documentation/content/ja/books/handbook/mirrors/_index.adoc b/documentation/content/ja/books/handbook/mirrors/_index.adoc
index 91cb928fc8..afd192b374 100644
--- a/documentation/content/ja/books/handbook/mirrors/_index.adoc
+++ b/documentation/content/ja/books/handbook/mirrors/_index.adoc
@@ -62,15 +62,6 @@ Phone: (0177) 428 419 0 +
 Email: <infow@hinner.de> +
 WWW: http://www.hinner.de/linux/freebsd.html
 
-* Linux Center +
-Galernaya Street, 55 +
-Saint-Petersburg +
-190000 +
-Russia +
-Phone: +7-812-309-06-86 +
-Email: <info@linuxcenter.ru> +
-WWW: http://linuxcenter.ru/shop/freebsd
-
 [[mirrors-ftp]]
 == FTP サイト
 
@@ -390,25 +381,32 @@ In case of problems, please contact the hostmaster `<{mirrors-us-email}>` for th
 * {mirrors-us-ftp14} (ftp / {mirrors-us-ftp14-http})
 * {mirrors-us-ftp15} (ftp) 
 
-[[svn]]
-== Subversion を使う
+[[git]]
+== Git の利用
 
-[[svn-intro]]
+[[git-intro]]
 === はじめに
 
-2012 年 7 月から、FreeBSD はすべてのソースコード、ドキュメント、Ports Collection を管理するバージョン管理システムに Subversion を使っています。
+2020 年 12 月から、FreeBSD はソースコード、ドキュメントのすべてを管理するメインのバージョン管理システムに git を使っています。
 
 [NOTE]
 ====
-一般的には Subversion は開発者向けのツールです。 ユーザは、FreeBSD のベースシステムのアップデートに `freebsd-update` (crossref:cutting-edge[updating-upgrading-freebsdupdate,「FreeBSD Update」])、 Ports Collection のアップデートには `portsnap` (crossref:ports[ports-using,「Ports Collection の利用」]) を使うことを好むでしょう。
+一般的には Git は開発用ツールです。
+ユーザによっては、FreeBSD ベースシステムのアップデートに `freebsd-update` (crossref:cutting-edge[updating-upgrading-freebsdupdate,“FreeBSD Update”])、
+FreeBSD Ports Collection のアップデートに `portsnap` (crossref:ports[ports-using,“Ports Collection の利用”]) を好んで使用するでしょう。
 ====
 
-この節では、FreeBSD システムへの Subversion のインストール方法、および FreeBSD リポジトリをローカルに作成する方法について説明します。 さらに Subversion を利用するための情報についても紹介します。
+この章では、FreeBSD 上への Git のインストール方法および、
+FreeBSD リポジトリのローカルコピーの作成方法について説明します。
+Git の使用方法についても紹介します。
 
-[[svn-ssl-certificates]]
+[[git-ssl-certificates]]
 === ルート SSL 証明書
 
-package:security/ca_root_nss[] をインストールすることで、 Subversion は、 HTTPS リポジトリサーバを検証できます。 ルート SSL 証明書は、 port からインストールできます。
+12._x_ より前の古い FreeBSD システムは、適切なルート証明書を持っていません。
+これらのシステムに package:security/ca_root_nss[] をインストールすることで、
+Git は HTTPS リポジトリサーバを検証できるようになります。
+ルート SSL 証明書は port からインストールできます。
 
 [source,shell]
 ....
@@ -423,6 +421,330 @@ package:security/ca_root_nss[] をインストールすることで、 Subversio
 # pkg install ca_root_nss
 ....
 
+[[git-install]]
+=== インストール
+
+package を使って Git をインストールできます。
+
+[source,shell]
+....
+# pkg install git
+....
+
+Ports Collection からも Git をインストールできます。
+
+[source,shell]
+....
+# cd /usr/ports/devel/git
+# make install clean
+....
+
+[[git-usage]]
+=== Git の実行
+
+ソースコードをローカルディレクトリに新しくコピーするには、`git` を使ってください。
+このファイルのあるディレクトリのことを _ワークツリー_ と呼びます。
+
+[WARNING]
+====
+
+コピー先のディレクトリが既に存在する場合は、`git clone` をはじめて使う前にディレクトリを移動するか削除してください。
+git 以外の方法で用意されたディレクトリに対するリポジトリのクローンは失敗するでしょう。
+====
+
+Git は、リポジトリの指定に _protocol://hostname/path_ 形式の URL を用います。 
+path の最初でアクセスする FreeBSD リポジトリを指定します。 
+リポジトリには `base`, `doc` および `ports` の 3 種類あります。
+`base` は FreeBSD ベースシステムのソースコード、`doc` はドキュメント、そして `ports` は FreeBSD Ports Collection のリポジトリです。
+たとえば、`https://git.FreeBSD.org/src.git` という URL は、`https` プロトコルによる src リポジトリの main ブランチを示します。
+
+[[git-url-table]]
+.FreeBSD Git リポジトリの URL テーブル
+[options="header,foooter"]
+|=======================================================
+|項目 | Git URL
+| ウェブベースの src リポジトリブラウザ | `https://cgit.freebsd.org/src`
+| HTTPS 経由の読み取り専用 src リポジトリ | `https://git.freebsd.org/src.git`
+| Anonymous ssh による読み取り専用 src リポジトリ | `ssh://anongit@git.freebsd.org/src.git`
+| コミッタのための読み取り/書き込み用 src リポジトリ | `ssh://git@gitrepo.freebsd.org/src.git` (*)
+| ウェブベースの doc リポジトリブラウザ | `https://cgit.freebsd.org/doc`
+| HTTPS 経由の読み取り専用 doc リポジトリ | `https://git.freebsd.org/doc.git`
+| Anonymous ssh による読み取り専用 doc リポジトリ | `ssh://anongit@git.freebsd.org/doc.git`
+| コミッタのための読み取り/書き込み用 doc リポジトリ | `ssh://git@gitrepo.freebsd.org/doc.git` (*)
+| ウェブベースの ports リポジトリブラウザ | `https://cgit.freebsd.org/ports`
+| HTTPS 経由の読み取り専用 ports リポジトリ| `https://git.freebsd.org/ports.git`
+| Anonymous ssh による読み取り専用 ports リポジトリ | `ssh://anongit@git.freebsd.org/ports.git`
+| コミッタのための読み取り/書き込み用 ports リポジトリ | `ssh://git@gitrepo.freebsd.org/ports.git` (*)
+|=======================================================
+  - (*) `git` は、リポジトリサーバ上の特別なユーザです。
+リポジトリサーバは、FreeBSD.org に登録されている ssh 鍵からユーザを識別するので、変更する必要はありません。
+
+[WARNING]
+====
+
+git への移行完了後、`gitrepo.freebsd.org` は単純な `repo.freebsd.org` に変更される予定です。
+====
+
+
+利用開始には、FreeBSD リポジトリを clone してください。
+
+[source,shell]
+....
+# git clone -o freebsd [ -b branch ] https://git.FreeBSD.org/repo.git wcdir
+....
+
+ここで
+
+* _repo_ は、プロジェクトリポジトリの `src`, `ports`, または `doc` のどれかになります。
+* _branch_ は、使用しているリポジトリに依存します。
+`ports` および `doc` では、ほとんどの変更が `main` ブランチで行われる一方で、`src` では -CURRENT の最新版を `main` で管理し、各 -STABLE ブランチの最新版を `stable/12` (12._x_) および `stable/13` (13._x_) で管理しています。
+* _wcdir_ は、指定したブランチの内容が置かれるターゲットディレクトリです。
+通常、`ports` では [.filename]#/usr/ports#、 `src` では [.filename]#/usr/src#、そして `doc` では [.filename]#/usr/doc# です。
+* _freebsd_ は、使用する origin の名前です。
+FreeBSD のドキュメントの慣例で、origin は `freebsd` とします。
+
+この例では、FreeBSD リポジトリからシステムのソースの 'main' ブランチを HTTPS プロトコルを用いてチェックアウトし、ローカルのワーキングコピーを [.filename]#/usr/src# に作成します。
+もし、[.filename]#/usr/src# がすでに存在していて、`git` により作成されたものでなければ、チェックアウトの前に、名前を変更するか削除しておいてください。
+そうでなければ、git は何も行わないでしょう。
+
+[source,shell]
+....
+# git clone -o freebsd https://git.FreeBSD.org/src.git /usr/src
+....
+
+初めてチェックアウトする際には、リモートリポジトリのすべてのブランチをダウンロードするので時間がかかります。
+
+初めてのチェックアウト後は、 以下を実行することでローカルのワーキングコピーをアップデートできます。
+
+[source,shell]
+....
+# cd wcdir
+# git pull --rebase
+....
+
+この例で作成された [.filename]#/usr/src# をアップデートするには、以下のようになります。
+
+[source,shell]
+....
+# cd /usr/src
+# git pull --rebase
+....
+
+チェックアウトと比較すると、このアップデートでは変更点のあるファイルのみが転送されるので高速です。
+
+プロジェクトのメンバーが管理する外部のミラーも存在します。
+<<external-mirrors>> の節を参照してください。
+
+=== SSH 関連情報
+
+* `ssh://${user}@${url}/${repo}.git` は、`${user}@${url}:${repo}.git` と書くこともできます。すなわち git 上では以下の二つの URL は両方とも使えます。
+--
+** `ssh://anongit@git.freebsd.org/${repo}.git`
+** `anongit@git.freebsd.org:${repo}.git`
+
+読み書き用リポジトリでも同様です。
+
+** `ssh://git@(git)repo.freebsd.org/${repo}.git`
+** `git@(git)repo.freebsd.org:${repo}.git`
+--
+
+* gitrepo.FreeBSD.org ホスト鍵のフィンガープリントは以下です。
+** ECDSA 鍵のフィンガープリントは `SHA256:seWO5D27ySURcx4bknTNKlC1mgai0whP443PAKEvvZA` です。
+** ED25519 鍵のフィンガープリントは `SHA256:lNR6i4BEOaaUhmDHBA1WJsO7H3KtvjE2r5q4sOxtIWo` です。
+** RSA 鍵のフィンガープリントは `SHA256:f453CUEFXEJAXlKeEHV+ajJfeEfx9MdKQUD7lIscnQI` です。
+
+* git.FreeBSD.org ホスト鍵のフィンガープリントは以下です。
+** ECDSA 鍵のフィンガープリントは `SHA256:/UlirUAsGiitupxmtsn7f9b7zCWd0vCs4Yo/tpVWP9w` です。
+** ED25519 鍵のフィンガープリントは `SHA256:y1ljKrKMD3lDObRUG3xJ9gXwEIuqnh306tSyFd1tuZE` です。
+** RSA 鍵のフィンガープリントは `SHA256:jBe6FQGoH4HjvrIVM23dcnLZk9kmpdezR/CvQzm7rJM` です。
+
+これらは DNS の SSHFP レコードとしても公開されています。
+
+=== ウェブベースのリポジトリブラウザ
+
+FreeBSD プロジェクトは、現在 cgit をウェブベースのリポジトリブラウザ (https://cgit.freebsd.org/) として使用しています。
+各リポジトリの URL は、<<git-url-table>> にまとめられています。
+
+=== ユーザ向けの説明
+
+公式の配布用のミラーから`git clone` および `git pull` することが推奨されています。
+GeoDNS により、近くの利用可能なミラーがユーザに提供されます。
+
+=== 開発者向けの説明
+
+この節では、コミッタがリモートリポジトリに読み書きアクセスし、開発者や貢献者からのコミットをリモートリポジトリに反映する方法について説明します。
+読み取り専用のアクセスについては、上記のユーザ向けの説明を参照してください。
+
+==== 日々の利用
+
+* リポジトリを clone してください。
++
+[source,shell]
+....
+% git clone -o freebsd --config remote.freebsd.fetch='+refs/notes/*:refs/notes/*' https://git.freebsd.org/${repo}.git
+....
++
+実行すると、公式ミラーがリモートリポジトリに設定されます。
++
+[source,shell]
+....
+% git remote -v
+freebsd  https://git.freebsd.org/${repo}.git (fetch)
+freebsd  https://git.freebsd.org/${repo}.git (push)
+....
+
+* FreeBSD コミッタ情報の設定
++
+repo.freebsd.org のコミットのフックは、"Commit" フィールドが FreeBSD.org のコミッタ情報にマッチするかを確認します。
+freefall 上で `/usr/local/bin/gen-gitconfig.sh` スクリプトを実行すると、これらの設定を簡単に行うことができます。
++
+[source,shell]
+....
+% gen-gitconfig.sh
+[...]
+% git config user.name (your name in gecos)
+% git config user.email (your login)@FreeBSD.org
+....
+
+* push 先の URL を設定してください。
++
+[source,shell]
+....
+% git remote set-url --push freebsd git@gitrepo.freebsd.org:${repo}.git
+....
++
+実行すると、最も効率的な fetch と push が別の URL に設定されます。
++
+[source,shell]
+....
+% git remote -v
+freebsd  https://git.freebsd.org/${repo}.git (fetch)
+freebsd  git@gitrepo.freebsd.org:${repo}.git (push)
+....
++
+繰り返しになりますが、将来的に、`gitrepo.freebsd.org` は `repo.freebsd.org` に正規化される予定です。
+
+* コミットメッセージのテンプレートのフックをインストールしてください。
++
+[source,shell]
+....
+% fetch https://cgit.freebsd.org/src/plain/tools/tools/git/hooks/prepare-commit-msg -o .git/hooks
+% chmod 755 .git/hooks/prepare-commit-msg
+....
+
+==== "admin" ブランチ
+
+`access` および `mentors` ファイルは、各リポジトリの orphan ブランチ `internal/admin` で管理されています。
+
+以下の例では、`internal/admin` ブランチをローカルブランチ `admin` にチェックアウトする方法を示しています。
+
+[source,shell]
+....
+% git config --add remote.freebsd.fetch '+refs/internal/*:refs/internal/*'
+% git fetch
+% git checkout -b admin internal/admin
+....
+または、`admin` ブランチ用にワークツリーを追加する方法もあります。
+
+[source,shell]
+....
+git worktree add -b admin ../${repo}-admin internal/admin
+....
+
+`internal/admin` ブランチはウェブブラウザを使って
+https://cgit.freebsd.org/${repo}/log/?h=internal/admin
+で閲覧できます。
+
+push の際には、以下のように完全な refspec を指定するか
+
+[source,shell]
+....
+git push freebsd HEAD:refs/internal/admin
+....
+
+または、`push.default` を `upstream` に設定してください。
+この設定を行うと、`git push` は、現在のブランチをデフォルトで upstream に push します。
+このこれは、プロジェクトのワークフローにより適しています。
+
+[source,shell]
+....
+git config push.default upstream
+....
+
+[WARNING]
+====
+この節で説明した内部の詳細は頻繁に変更されます。
+====
+
+
+[[external-mirrors]]
+=== 外部ミラー
+
+FreeBSD.org は以下のミラーを管理しておらず、プロジェクトのメンバーが現在も維持しています。
+ユーザおよび開発者は自由にこれらのミラーのリポジトリを pull したりブラウザで見ることができます。
+これらのミラーとのプロジェクトワークフローは議論中です。
+
+==== Codeberg
+  - doc: https://codeberg.org/FreeBSD/freebsd-doc
+  - ports: https://codeberg.org/FreeBSD/freebsd-ports
+  - src: https://codeberg.org/FreeBSD/freebsd-src
+
+==== GitHub
+  - doc: https://github.com/freebsd/freebsd-doc
+  - ports: https://github.com/freebsd/freebsd-ports
+  - src: https://github.com/freebsd/freebsd-src
+
+==== GitLab
+  - doc: https://gitlab.com/FreeBSD/freebsd-doc
+  - ports: https://gitlab.com/FreeBSD/freebsd-ports
+  - src: https://gitlab.com/FreeBSD/freebsd-src
+
+=== メーリングリスト
+
+FreeBSD プロジェクトにおける git の一般的な使用方法や質問について: [freebsd-git](https://lists.freebsd.org/mailman/listinfo/freebsd-git)
+
+コミットメッセージは以下のメーリングリストに送信されます。
+
+- https://lists.freebsd.org/mailman/listinfo/dev-commits-doc-all[dev-commits-doc-all]: doc リポジトリに対するすべての変更
+- https://lists.freebsd.org/mailman/listinfo/dev-commits-ports-all[dev-commits-ports-all]: ports リポジトリに対するすべての変更
+- https://lists.freebsd.org/mailman/listinfo/dev-commits-ports-main[dev-commits-ports-main]: ports リポジトリの "main" ブランチに対するすべての変更
+- https://lists.freebsd.org/mailman/listinfo/dev-commits-ports-branches[dev-commits-ports-branches]: ports リポジトリの quarterly ブランチに対するすべての変更
+- https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all[dev-commits-src-all]: src リポジトリに対するすべての変更
+- https://lists.freebsd.org/mailman/listinfo/dev-commits-src-main[dev-commits-src-main]: src リポジトリの "main" ブランチ (FreeBSD-CURRENT ブランチ) に対するすべての変更
+- https://lists.freebsd.org/mailman/listinfo/dev-commits-src-branches[dev-commits-src-branches]: src リポジトリの stable ブランチに対するすべての変更
+
+詳細については、ハンドブックの C.2. 「メーリングリスト」 https://www.freebsd.org/doc/ja/books/handbook/eresources-mail.html の "コミットメッセージリスト" の節を参照してください。
+
+[[svn]]
+== Subversion の利用
+
+[[svn-intro]]
+=== はじめに
+
+2020 年 12 月より、FreeBSD のソースコード、ドキュメントのすべてを管理するメインのバージョン管理システムは git に移行しました。
+git リポジトリの `stable/11`, `stable/12` および関連するリリースのブランチは、subversion リポジトリにエクスポートされます。
+このエクスポートは、各ブランチの保守終了予定日まで行われる予定です。
+2012 年 7 月から 2021 年 3 月までの間 FreeBSD は、FreeBSD Ports Collection のすべてを管理するバージョン管理システムに Subversion を使用していました。
+2021 年 4 月より、FreeBSD の Ports Collection のすべてを管理するメインのバージョン管理システムは git に移行しました。
+
+[NOTE]
+====
+-一般的には Subversion は開発者向けのツールです。
+ユーザは好みに応じて、FreeBSD のベースシステムのアップデートに `freebsd-update` (crossref:cutting-edge[updating-upgrading-freebsdupdate,「FreeBSD Update」])、Ports Collection のアップデートには `portsnap` (crossref:ports[ports-using,「Ports Collection の利用」]) を使用できます。
+2021 年 3 月以降、subversion はレガシーブランチ (`stable/11` および `stable/12`) でのみ使用されます。
+====
+
+この節では、FreeBSD システムへの Subversion のインストール方法、および FreeBSD リポジトリをローカルに作成する方法について説明します。
+さらに Subversion を利用するための情報についても紹介します。
+
+[[svn-ssl-certificates]]
+=== ルート SSL 証明書
+
+12._x_ より前の古い FreeBSD システムは、適切なルート証明書を持っていません。
+これらのシステムに package:security/ca_root_nss[] をインストールすることで、
+Subversion は HTTPS リポジトリサーバを検証できるようになります。
+インストールの手順については、<<git-ssl-certificates>> で説明されています。
+
 [[svn-svnlite]]
 === Svnlite
 
@@ -457,13 +779,14 @@ package を使って Subversion をインストールすることもできます
 
 [WARNING]
 ====
-
 `checkout` をはじめて使う前に、 ローカルディレクトリを移動するか削除してください。
-
 `svn` 以外の方法で用意されたディレクトリでチェックアウトすると、 すでに存在するファイルと、 リポジトリから持ってきたファイルとの間で衝突が起きてしまいます。
 ====
 
-Subversion では、リポジトリの指定に _protocol://hostname/path_ 形式の URL を用います。 以下に記載されているように、 アクセスする FreeBSD リポジトリは、パス (path) の最初で指定します。 リポジトリは 3 つあります。 `base` は FreeBSD ベースシステムのソースコード、 `ports` は Ports Collection、 そして `doc` はドキュメントのリポジトリです。 たとえば、 `https://svn.FreeBSD.org/ports/head/` という URL は、`https` プロトコルによる ports リポジトリのメインブランチを示しています。
+Subversion では、リポジトリの指定に _protocol://hostname/path_ 形式の URL を用います。 以下に記載されているように、 アクセスする FreeBSD リポジトリは、パス (path) の最初で指定します。
+リポジトリは 3 つあります。
+`base` は FreeBSD ベースシステムのソースコード、`ports` は Ports Collection、 そして `doc` はドキュメントのリポジトリです。
+たとえば、`https://svn.FreeBSD.org/base/head/` という URL は、`https` プロトコルによる ports リポジトリのメインブランチを示しています。
 
 以下のように入力して、リポジトリからチェックアウトしてください。
 
@@ -478,11 +801,13 @@ Subversion では、リポジトリの指定に _protocol://hostname/path_ 形
 * _branch_ は、使うリポジトリによります。 `ports` および `doc` では、ほとんどの変更が `head` ブランチで行われます。 `base` リポジトリでは、`head` ブランチで -CURRENT の最新バージョンを管理しています。 -STABLE ブランチの最新バージョンは、 9._x_ は `stable/9`, そして 10._x_ は `stable/10` で管理しています。
 * _lwcdir_ は、 指定したブランチの中身が置かれるターゲットのディレクトリです。 通常 `ports` は [.filename]#/usr/ports#、 `base` は [.filename]#/usr/src#、 そして `doc` では [.filename]#/usr/doc# と指定します。
 
-以下の例では、Ports Collection を HTTPS プロトコルを使って、 FreeBSD リポジトリからチェックアウトします。 そしてそれらは、 [.filename]#/usr/ports# のローカル作業コピーに置かれます。 もし [.filename]#/usr/ports# がすでに存在して、 それが `svn` によって生成されたものでなければ、 チェックアウトする前に、名前を変更するか削除してください。
+以下の例では、ソースツリーを FreeBSD リポジトリから HTTPS プロトコルを使ってチェックアウトします。
+それらは、[.filename]#/usr/src# のローカル作業コピーに置かれます。
+もし [.filename]#/usr/src# がすでに存在していて、それが `svn` によって生成されたものでなければ、チェックアウトする前に、名前を変更するか削除してください。
 
 [source,shell]
 ....
-# svn checkout https://svn.FreeBSD.org/ports/head /usr/ports
+# svn checkout https://svn.FreeBSD.org/base/head /usr/src
 ....
 
 初めてチェックアウトする際には、 リモートリポジトリのすべてのブランチをダウンロードする必要があるので、 時間がかかります。 我慢してください。
@@ -498,7 +823,7 @@ Subversion では、リポジトリの指定に _protocol://hostname/path_ 形
 
 [source,shell]
 ....
-# svn update /usr/ports
+# svn update /usr/src
 ....
 
 アップデートはチェックアウトにくらべ、 変更点のあるファイルのみが転送されるので高速です。
@@ -588,9 +913,11 @@ rsync://ftp-master.FreeBSD.org/
 このサーバは、FreeBSD の一次ミラーサイトとしてのみ使われています。
 +
 提供しているコレクション:
-
++
+--
 ** FreeBSD: FreeBSD FTP サーバのマスタアーカイブ
 ** acl: The FreeBSD マスタ ACL リスト
+--
 +
 rsync://ftp13.FreeBSD.org/
 +



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202105021212.142CCGuH083940>