Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

[インデックス 16112] ファイルの概要

このコミットは、Go言語のコマンドラインツール cmd/go におけるドキュメントの修正と、Bitbucketのサポートに関する改善を目的としています。具体的には、Bitbucketの名称の表記を修正し、Gitサポートに関する記述を追加しています。

コミット

commit 1142c2f418993b9ae635005cabb4eb93c512b74b
Author: John Howard Palevich <jack.palevich@gmail.com>
Date:   Sun Apr 7 04:06:11 2013 +0800

    cmd/go: fix capitalization of Bitbucket, document Git support
    
    Fixes #5226.
    
    R=golang-dev, minux.ma, iant
    CC=golang-dev
    https://golang.org/cl/8320044

GitHub上でのコミットページへのリンク

https://github.com/golang/go/commit/1142c2f418993b9ae635005cabb4eb93c512b74b

元コミット内容

cmd/go: fix capitalization of Bitbucket, document Git support Fixes #5226.

このコミットは、cmd/go ツールにおいて、Bitbucketの表記の修正と、Gitサポートに関するドキュメントの追加を行います。Issue #5226 に対応しています。

変更の背景

この変更の背景には、Go言語のパッケージ管理システム go get が、様々なバージョン管理システム (VCS) と連携してリモートリポジトリからパッケージを取得する機能があります。go get は、インポートパスに基づいて適切なVCSを判断し、リポジトリをクローンします。

Bitbucketは、MercurialとGitの両方をサポートするホスティングサービスですが、当時のcmd/goのドキュメントでは、BitbucketがMercurialのみをサポートしているかのような記述になっていました。また、Bitbucketの名称の表記(大文字・小文字)も統一されていませんでした。

このコミットは、以下の2つの主要な問題を解決することを目的としています。

  1. Bitbucketの表記の統一: ドキュメント全体で「BitBucket」と「Bitbucket」が混在しており、これを「Bitbucket」に統一する。
  2. BitbucketにおけるGitサポートの明記: BitbucketがGitリポジトリもホストできることを明確にドキュメントに記載し、ユーザーがBitbucket上のGitリポジトリからGoパッケージを正しく取得できることを示す。

これにより、ユーザーがgo getコマンドを使用する際に、Bitbucket上のGitリポジトリをよりスムーズに利用できるようになります。

前提知識の解説

Go言語のパッケージ管理と go get

Go言語では、外部のライブラリやモジュールをプロジェクトに組み込む際に、go getコマンドを使用します。go getは、指定されたインポートパスに基づいて、GitHub、Bitbucket、Launchpadなどのリモートリポジトリからソースコードをダウンロードし、GOPATH環境変数で指定されたワークスペースに配置します。

GOPATH

GOPATHは、Goのソースコード、コンパイル済みパッケージ、実行可能バイナリが配置されるワークスペースのルートディレクトリを指定する環境変数です。go getコマンドは、デフォルトでGOPATHの最初のディレクトリにダウンロードしたパッケージを配置します。

バージョン管理システム (VCS)

go getは、以下の主要なバージョン管理システムをサポートしています。

  • Git: 分散型バージョン管理システム。GitHubなどで広く利用されています。
  • Mercurial (hg): 分散型バージョン管理システム。Bitbucketなどで利用されていました。
  • Subversion (svn): 集中型バージョン管理システム。
  • Bazaar (bzr): 分散型バージョン管理システム。

go getは、インポートパスのホスト名(例: github.combitbucket.org)に基づいて、どのVCSを使用すべきかを自動的に判断します。

cmd/go

cmd/goは、Go言語のビルド、テスト、パッケージ管理などを行うための主要なコマンドラインツールです。go getコマンドもこのツールの一部として提供されています。

Issue #5226

このコミットが修正するIssue #5226は、Goの公式Issueトラッカーで報告された「cmd/go: Bitbucket documentation is wrong (only lists Mercurial)」という問題です。これは、BitbucketがGitもサポートしているにもかかわらず、GoのドキュメントがMercurialのみを言及しているという誤りを指摘しています。

技術的詳細

このコミットは、主にcmd/goのドキュメントとヘルプメッセージを修正することで、Bitbucketの表記の統一とGitサポートの明記を行っています。変更は以下の3つのファイルにわたります。

  1. src/cmd/go/doc.go: go docコマンドで表示されるGoツールの全体的なドキュメントを定義しているファイルです。
  2. src/cmd/go/help.go: go helpコマンドで表示されるヘルプメッセージを定義しているファイルです。
  3. src/cmd/go/vcs.go: go getが様々なVCSをどのように扱うかを定義しているファイルです。特に、BitbucketリポジトリのVCSを特定するロジックに関連するコメントが修正されています。

これらのファイルにおいて、「BitBucket」という表記を「Bitbucket」に修正し、BitbucketがMercurialだけでなくGitもサポートしていることを明示的に追記しています。

具体的には、doc.gohelp.go内の「A few common code hosting sites have special syntax:」セクションにおいて、Bitbucketの記述を以下のように変更しています。

変更前: BitBucket (Mercurial)

変更後: Bitbucket (Git, Mercurial)

これにより、ユーザーはBitbucketがGitリポジトリもホストしていることを認識し、go get bitbucket.org/user/projectのようなコマンドでGitリポジトリも取得できることを理解できます。

また、src/cmd/go/vcs.go内のbitbucketVCS関数のコメントも修正されています。この関数はBitbucket APIを使用してリポジトリのVCSを特定する役割を担っており、そのコメントも表記の統一に合わせて修正されています。

コアとなるコードの変更箇所

src/cmd/go/doc.go

--- a/src/cmd/go/doc.go
+++ b/src/cmd/go/doc.go
@@ -582,7 +582,7 @@ a revision control system.
 
 A few common code hosting sites have special syntax:
 
-	BitBucket (Mercurial)
+	Bitbucket (Git, Mercurial)
 
 		import "bitbucket.org/user/project"
 		import "bitbucket.org/user/project/sub/directory"

src/cmd/go/help.go

--- a/src/cmd/go/help.go
+++ b/src/cmd/go/help.go
@@ -20,13 +20,13 @@ denotes the package in that directory.
 
 Otherwise, the import path P denotes the package found in
 the directory DIR/src/P for some DIR listed in the GOPATH
-environment variable (see 'go help gopath'). 
+environment variable (see 'go help gopath').
 
 If no import paths are given, the action applies to the
 package in the current directory.
 
 The special import path "all" expands to all package directories
-found in all the GOPATH trees.  For example, 'go list all' 
+found in all the GOPATH trees.  For example, 'go list all'
 lists all the packages on the local system.
 
 The special import path "std" is like all but expands to just the
@@ -68,7 +68,7 @@ a revision control system.
 
 A few common code hosting sites have special syntax:
 
-	BitBucket (Mercurial)
+	Bitbucket (Git, Mercurial)
 
 		import "bitbucket.org/user/project"
 		import "bitbucket.org/user/project/sub/directory"
@@ -232,7 +232,7 @@ Here's an example directory layout:
                     bar.a          (installed package object)
 
 Go searches each directory listed in GOPATH to find source code,
-but new packages are always downloaded into the first directory 
+but new packages are always downloaded into the first directory
 in the list.
 	`,
 }

src/cmd/go/vcs.go

--- a/src/cmd/go/vcs.go
+++ b/src/cmd/go/vcs.go
@@ -641,7 +641,7 @@ func oldGoogleCode(match map[string]string) error {\n }\n \n // bitbucketVCS determines the version control system for a\n-// BitBucket repository, by using the BitBucket API.\n+// Bitbucket repository, by using the Bitbucket API.\n func bitbucketVCS(match map[string]string) error {\n 	if err := noVCSSuffix(match); err != nil {\n 		return err

コアとなるコードの解説

ドキュメントとヘルプメッセージの修正

src/cmd/go/doc.gosrc/cmd/go/help.goにおける変更は、ユーザー向けのドキュメントとヘルプメッセージの記述を直接修正しています。

  • BitBucket (Mercurial) から Bitbucket (Git, Mercurial) への変更: これは、BitbucketがMercurialだけでなくGitもサポートしていることを明確に伝えるための最も重要な変更です。これにより、ユーザーはBitbucket上のGitリポジトリもgo getで利用できることを理解できます。Goのパッケージ管理において、どのVCSがサポートされているか、どのホスティングサービスがどのVCSをサポートしているかは、ユーザーがパッケージを正しく取得するために不可欠な情報です。この修正は、ドキュメントの正確性を高め、ユーザーの利便性を向上させます。

  • 「BitBucket」から「Bitbucket」への表記統一: これは、単なるタイポ修正ではなく、ブランド名の正確な表記に合わせるための変更です。ソフトウェアのドキュメントにおいて、固有名詞の表記を統一することは、プロフェッショナリズムと信頼性を示す上で重要です。

vcs.go のコメント修正

src/cmd/go/vcs.goにおける変更は、bitbucketVCS関数のコメントの修正です。

  • // BitBucket repository, by using the BitBucket API. から // Bitbucket repository, by using the Bitbucket API. への変更: この変更は、コード内のコメントにおいてもBitbucketの表記を統一するためのものです。コード内のコメントは、開発者がコードの意図や動作を理解する上で非常に重要です。ドキュメントとコードコメントの両方で表記を統一することで、一貫性が保たれ、将来的なメンテナンス性が向上します。bitbucketVCS関数自体は、Bitbucket APIを呼び出してリポジトリのVCSタイプ(GitかMercurialか)を動的に判断するロジックを含んでおり、このコメント修正はその関数の役割をより正確に反映しています。

全体として、これらの変更は、Goのcmd/goツールがBitbucket上のGitリポジトリを適切に扱えることをドキュメントとコードコメントの両方で明確にし、ユーザーエクスペリエンスとドキュメントの正確性を向上させるものです。

関連リンク

参考にした情報源リンク