[インデックス 15164] ファイルの概要
このコミットは、Goプロジェクトのコードレビューシステムにおいて、パッチ適用に使用されるツールを hgpatch から hgapplydiff へと変更するものです。具体的には、lib/codereview/codereview.py ファイル内の関連するコマンド呼び出し、オプション名、およびエラーメッセージが更新されています。
コミット
commit 8035cbd97cad506943e3dae652021970f02ad2d5
Author: Russ Cox <rsc@golang.org>
Date: Thu Feb 7 23:15:08 2013 -0500
codereview: use hgapplydiff instead of hgpatch
Depends on https://golang.org/cl/7308067
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/7312064
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/8035cbd97cad506943e3dae652021970f02ad2d5
元コミット内容
このコミットの元のメッセージは以下の通りです。
codereview: use hgapplydiff instead of hgpatch
Depends on https://golang.org/cl/7308067
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/7312064
これは、コードレビューシステムがパッチ適用に hgpatch の代わりに hgapplydiff を使用するように変更されたことを示しています。また、この変更が別の変更リスト (CL: Change List) 7308067 に依存していることが明記されています。
変更の背景
Goプロジェクトは、初期にはMercurial (Hg) をバージョン管理システムとして使用しており、そのコードレビュープロセスもMercurialの機能に深く統合されていました。hgpatch と hgapplydiff は、Mercurialリポジトリにパッチを適用するためのツールです。
この変更の背景には、おそらくGoプロジェクトのコードレビューシステム(go.codereview)の進化があります。hgpatch はGoプロジェクトが独自に開発したパッチ適用ツールであり、hgapplydiff も同様にGoのツールチェインの一部として開発された可能性があります。
依存関係として示されている https://golang.org/cl/7308067 は、おそらく hgapplydiff ツール自体の導入や改善、あるいは hgpatch から hgapplydiff への移行を準備する変更リストであると推測されます。このコミットは、その準備が整った後に、実際にコードレビューシステムが新しいツールを使用するように切り替える最終段階の一部と考えられます。
具体的な変更の動機としては、hgapplydiff が hgpatch よりも優れた機能、パフォーマンス、信頼性、あるいはより適切なエラーハンドリングを提供するといった理由が考えられます。例えば、hgapplydiff はより堅牢なパッチ適用ロジックを持っていたり、特定のMercurialのバージョンや設定との互換性が高かったりする可能性があります。
前提知識の解説
このコミットを理解するためには、以下の概念について知っておく必要があります。
-
Mercurial (Hg):
- Gitと同様の分散型バージョン管理システム (DVCS) です。Goプロジェクトは初期にMercurialを使用していましたが、後にGitに移行しました。
- Mercurialは、リポジトリのクローン、コミット、プッシュ、プルなどの基本的なバージョン管理操作を提供します。
- パッチは、ある時点でのコードの状態と別の時点でのコードの状態の差分を記述したファイルであり、他のリポジトリに適用することで変更を共有できます。
-
Goのコードレビューシステム (
go.codereview):- Goプロジェクトは、Googleの内部コードレビューシステムであるMondrian(後にGerritに影響を与えた)に似た独自のコードレビューシステムを使用していました。
- 開発者は変更をコミットする前に、このシステムを通じて他の開発者からのレビューを受けます。
- レビュープロセスでは、提案された変更(パッチ)をローカルリポジトリに適用し、テストや検証を行う必要があります。このパッチ適用プロセスで
hgpatchやhgapplydiffのようなツールが使用されます。
-
hgpatchとhgapplydiff:- これらは、Goプロジェクトのコードレビューワークフローの一部として開発された、Mercurialリポジトリにパッチを適用するためのコマンドラインツールです。
hgpatch: 以前使用されていたパッチ適用ツール。パッチファイル(通常はdiffコマンドで生成されたもの)を読み込み、それをMercurialリポジトリに適用する役割を担っていました。hgapplydiff:hgpatchの後継または代替として導入されたツール。同様にパッチを適用しますが、おそらくより高度な機能、改善されたロバスト性、または特定のMercurialのバージョンとのより良い統合を提供します。Goのツールチェインの一部としてgo getでインストールできることが示唆されています。
-
subprocess.Popen(Python):- Pythonの標準ライブラリ
subprocessモジュールの一部で、新しいプロセスを生成し、その入出力パイプに接続するための関数です。 - このコミットでは、
codereview.pyがhgpatchまたはhgapplydiffコマンドを外部プロセスとして実行するために使用しています。stdin=subprocess.PIPEは、パッチの内容を標準入力としてコマンドに渡すために使われます。
- Pythonの標準ライブラリ
技術的詳細
このコミットは、Goプロジェクトのコードレビューシステムの中核部分である lib/codereview/codereview.py ファイルに変更を加えています。このPythonスクリプトは、Mercurialリポジトリに対するパッチの適用、変更リスト (CL) の管理、および関連する操作を処理します。
変更の技術的な詳細は以下の通りです。
-
コマンドの切り替え:
- 以前は
argv = ["hgpatch"]となっていた部分がargv = ["hgapplydiff"]に変更されています。これは、パッチ適用を実行する際に呼び出す外部コマンドをhgpatchからhgapplydiffへと直接切り替えることを意味します。 - この変更により、コードレビューシステムは、パッチの解析と適用に関するすべてのロジックを
hgapplydiffに委ねるようになります。
- 以前は
-
オプション名の変更:
ignore_hgpatch_failureというオプション名がignore_hgapplydiff_failureに変更されています。- このオプションは、パッチ適用ツール(以前は
hgpatch、現在はhgapplydiff)が失敗した場合でも、コードレビューシステムがCLメタデータの作成を続行するかどうかを制御します。これは、パッチ適用が完全に成功しなくても、レビュープロセスを続行できるようにするためのフォールバックメカニズムです。オプション名の変更は、使用するツールに合わせた整合性を保つためのものです。
-
エラーメッセージの更新:
hgpatchのインストールを促すエラーメッセージや、hgpatch failedというメッセージが、それぞれhgapplydiffに対応するように更新されています。- これにより、ユーザーがパッチ適用に失敗した場合に、正しいツール(
hgapplydiff)のインストールや問題解決を促すことができます。
これらの変更は、hgapplydiff が hgpatch の機能を完全に置き換えることを前提としています。hgapplydiff は、パッチの適用、競合の検出、および関連するファイル変更の報告において、hgpatch と同等またはそれ以上の機能を提供する必要があります。
この移行は、Goプロジェクトのビルドおよび開発環境における依存関係の変更も伴います。開発者は、hgpatch の代わりに hgapplydiff をインストールし、使用するように求められることになります。コミットメッセージにある go get code.google.com/p/go.codereview/cmd/hgapplydiff は、この新しいツールをGoの標準的な方法で取得できることを示しています。
コアとなるコードの変更箇所
変更は lib/codereview/codereview.py ファイルに集中しています。
--- a/lib/codereview/codereview.py
+++ b/lib/codereview/codereview.py
@@ -1569,24 +1569,24 @@ def clpatch_or_undo(ui, repo, clname, opts, mode):
patch1, err = portPatch(repo, patch, vers, id)
if err != "":
- if not opts["ignore_hgpatch_failure"]:
+ if not opts["ignore_hgapplydiff_failure"]:
return "codereview issue %s is out of date: %s (%s->%s)" % (clname, err, vers, id)
else:
patch = patch1
- argv = ["hgpatch"]
+ argv = ["hgapplydiff"]
if opts["no_incoming"] or mode == "backport"]:
argv += ["--checksync=false"]
try:
cmd = subprocess.Popen(argv, shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=None, close_fds=sys.platform != "win32")
except:
- return "hgpatch: " + ExceptionDetail() + "\nInstall hgpatch with:\n$ go get code.google.com/p/go.codereview/cmd/hgpatch\n"
+ return "hgapplydiff: " + ExceptionDetail() + "\nInstall hgapplydiff with:\n$ go get code.google.com/p/go.codereview/cmd/hgapplydiff\n"
out, err = cmd.communicate(patch)
- if cmd.returncode != 0 and not opts["ignore_hgpatch_failure"]:
- return "hgpatch failed"
+ if cmd.returncode != 0 and not opts["ignore_hgapplydiff_failure"]:
+ return "hgapplydiff failed"
cl.local = True
cl.files = out.strip().split()
- if not cl.files and not opts["ignore_hgpatch_failure"]:
+ if not cl.files and not opts["ignore_hgapplydiff_failure"]:
return "codereview issue %s has no changed files" % clname
files = ChangedFiles(ui, repo, [])
extra = Sub(cl.files, files)
@@ -2099,7 +2099,7 @@ cmdtable = {
"^clpatch": (
clpatch,
[
- ('', 'ignore_hgpatch_failure', None, 'create CL metadata even if hgpatch fails'),
+ ('', 'ignore_hgapplydiff_failure', None, 'create CL metadata even if hgapplydiff fails'),
('', 'no_incoming', None, 'disable check for incoming changes'),
],
"change#"
@@ -2158,7 +2158,7 @@ cmdtable = {
"^release-apply": (
release_apply,
[
- ('', 'ignore_hgpatch_failure', None, 'create CL metadata even if hgpatch fails'),
+ ('', 'ignore_hgapplydiff_failure', None, 'create CL metadata even if hgapplydiff fails'),
('', 'no_incoming', None, 'disable check for incoming changes'),
],
"change#"
@@ -2181,7 +2181,7 @@ cmdtable = {
"^undo": (
undo,
[
- ('', 'ignore_hgpatch_failure', None, 'create CL metadata even if hgpatch fails'),
+ ('', 'ignore_hgapplydiff_failure', None, 'create CL metadata even if hgapplydiff fails'),
('', 'no_incoming', None, 'disable check for incoming changes'),
],
"change#"
コアとなるコードの解説
lib/codereview/codereview.py は、Goプロジェクトのコードレビューツール codereview の主要なロジックを実装しています。このファイルには、パッチの適用、変更リストの管理、およびその他のMercurial関連の操作を行うための関数が含まれています。
変更された主要な関数は clpatch_or_undo です。
-
clpatch_or_undo関数:- この関数は、特定の変更リスト (CL) のパッチをローカルリポジトリに適用する役割を担っています。
- 変更前は
argv = ["hgpatch"]を使用して外部コマンドhgpatchを呼び出し、パッチを適用していました。 - 変更後は
argv = ["hgapplydiff"]となり、hgapplydiffが呼び出されるようになりました。 subprocess.Popenを使用して、パッチの内容をhgapplydiffの標準入力にパイプで渡し、その出力を処理しています。- パッチ適用が失敗した場合のエラーハンドリングも更新されており、
ignore_hgpatch_failureオプションがignore_hgapplydiff_failureに、関連するエラーメッセージもhgapplydiffに合わせて変更されています。これにより、ユーザーは正しいツールに関する情報を受け取ることができます。
-
cmdtable辞書:cmdtableは、codereviewコマンドラインツールのサブコマンド(例:clpatch,release-apply,undo)とそのオプションを定義する辞書です。- これらのサブコマンドのオプション定義内で、
ignore_hgpatch_failureという文字列がignore_hgapplydiff_failureに変更されています。これは、コマンドラインインターフェースのオプション名も新しいツールに合わせて更新されたことを意味します。
これらの変更は、codereview.py がパッチ適用の中核的なロジックを hgpatch から hgapplydiff へと完全に移行したことを明確に示しています。これにより、Goのコードレビューワークフローは、より新しい、あるいはより適切なパッチ適用ツールを利用するようになりました。
関連リンク
- Goプロジェクトのコードレビューシステムに関する情報:
- Goプロジェクトの初期のコードレビュープロセスに関する情報は、古いGoのドキュメントやメーリングリストのアーカイブに見られる可能性があります。
- MercurialからGitへの移行に関する情報も、Goプロジェクトの歴史を理解する上で役立ちます。
参考にした情報源リンク
- Mercurial 公式ドキュメント: Mercurialの基本的な概念とコマンドについて。
- Goプロジェクトの変更リスト (CL) 7308067: このコミットが依存している変更リスト。具体的な内容は不明ですが、
hgapplydiffの導入や関連する変更である可能性が高いです。 - Goプロジェクトの変更リスト (CL) 7312064: このコミット自体の変更リスト。
- Python
subprocessモジュール: 外部コマンドの実行に関するPythonのドキュメント。 go.codereviewリポジトリ (旧):hgpatchやhgapplydiffのソースコードがかつて存在した可能性のある場所。code.google.com/p/go.codereviewはGoogle Codeの閉鎖に伴いアーカイブされていますが、関連する情報はGoの公式リポジトリの履歴やミラーで見つかる可能性があります。
[インデックス 15164] ファイルの概要
このコミットは、Goプロジェクトのコードレビューシステムにおいて、パッチ適用に使用されるツールを hgpatch から hgapplydiff へと変更するものです。具体的には、lib/codereview/codereview.py ファイル内の関連するコマンド呼び出し、オプション名、およびエラーメッセージが更新されています。
コミット
commit 8035cbd97cad506943e3dae652021970f02ad2d5
Author: Russ Cox <rsc@golang.org>
Date: Thu Feb 7 23:15:08 2013 -0500
codereview: use hgapplydiff instead of hgpatch
Depends on https://golang.org/cl/7308067
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/7312064
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/8035cbd97cad506943e3dae652021970f02ad2d5
元コミット内容
このコミットの元のメッセージは以下の通りです。
codereview: use hgapplydiff instead of hgpatch
Depends on https://golang.org/cl/7308067
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/7312064
これは、コードレビューシステムがパッチ適用に hgpatch の代わりに hgapplydiff を使用するように変更されたことを示しています。また、この変更が別の変更リスト (CL: Change List) 7308067 に依存していることが明記されています。
変更の背景
Goプロジェクトは、初期にはMercurial (Hg) をバージョン管理システムとして使用しており、そのコードレビュープロセスもMercurialの機能に深く統合されていました。hgpatch と hgapplydiff は、Mercurialリポジトリにパッチを適用するためのツールです。
この変更の背景には、おそらくGoプロジェクトのコードレビューシステム(go.codereview)の進化があります。hgpatch はGoプロジェクトが独自に開発したパッチ適用ツールであり、hgapplydiff も同様にGoのツールチェインの一部として開発された可能性があります。
依存関係として示されている https://golang.org/cl/7308067 は、おそらく hgapplydiff ツール自体の導入や改善、あるいは hgpatch から hgapplydiff への移行を準備する変更リストであると推測されます。このコミットは、その準備が整った後に、実際にコードレビューシステムが新しいツールを使用するように切り替える最終段階の一部と考えられます。
具体的な変更の動機としては、hgapplydiff が hgpatch よりも優れた機能、パフォーマンス、信頼性、あるいはより適切なエラーハンドリングを提供するといった理由が考えられます。例えば、hgapplydiff はより堅牢なパッチ適用ロジックを持っていたり、特定のMercurialのバージョンや設定との互換性が高かったりする可能性があります。
前提知識の解説
このコミットを理解するためには、以下の概念について知っておく必要があります。
-
Mercurial (Hg):
- Gitと同様の分散型バージョン管理システム (DVCS) です。Goプロジェクトは初期にMercurialを使用していましたが、後にGitに移行しました。
- Mercurialは、リポジトリのクローン、コミット、プッシュ、プルなどの基本的なバージョン管理操作を提供します。
- パッチは、ある時点でのコードの状態と別の時点でのコードの状態の差分を記述したファイルであり、他のリポジトリに適用することで変更を共有できます。
-
Goのコードレビューシステム (
go.codereview):- Goプロジェクトは、Googleの内部コードレビューシステムであるMondrian(後にGerritに影響を与えた)に似た独自のコードレビューシステムを使用していました。
- 開発者は変更をコミットする前に、このシステムを通じて他の開発者からのレビューを受けます。
- レビュープロセスでは、提案された変更(パッチ)をローカルリポジトリに適用し、テストや検証を行う必要があります。このパッチ適用プロセスで
hgpatchやhgapplydiffのようなツールが使用されます。
-
hgpatchとhgapplydiff:- これらは、Goプロジェクトのコードレビューワークフローの一部として開発された、Mercurialリポジトリにパッチを適用するためのコマンドラインツールです。
hgpatch: 以前使用されていたパッチ適用ツールであり、Goプロジェクトが独自に開発したものです。パッチファイル(通常はdiffコマンドで生成されたもの)を読み込み、それをMercurialリポジトリに適用する役割を担っていました。hgapplydiff:hgpatchの後継または代替として導入されたツールです。同様にパッチを適用しますが、おそらくより高度な機能、改善されたロバスト性、または特定のMercurialのバージョンとのより良い統合を提供します。Goのツールチェインの一部としてgo getでインストールできることが示唆されています。Web検索の結果によると、hgpatchやhgapplydiffはMercurialの一般的なコマンドではなく、Goプロジェクトの特定のツールであった可能性が高いです。Mercurial自体にはhg importコマンドがあり、これがパッチ適用に広く使われます。
-
subprocess.Popen(Python):- Pythonの標準ライブラリ
subprocessモジュールの一部で、新しいプロセスを生成し、その入出力パイプに接続するための関数です。 - このコミットでは、
codereview.pyがhgpatchまたはhgapplydiffコマンドを外部プロセスとして実行するために使用しています。stdin=subprocess.PIPEは、パッチの内容を標準入力としてコマンドに渡すために使われます。
- Pythonの標準ライブラリ
技術的詳細
このコミットは、Goプロジェクトのコードレビューシステムの中核部分である lib/codereview/codereview.py ファイルに変更を加えています。このPythonスクリプトは、Mercurialリポジトリに対するパッチの適用、変更リスト (CL) の管理、および関連する操作を処理します。
変更の技術的な詳細は以下の通りです。
-
コマンドの切り替え:
- 以前は
argv = ["hgpatch"]となっていた部分がargv = ["hgapplydiff"]に変更されています。これは、パッチ適用を実行する際に呼び出す外部コマンドをhgpatchからhgapplydiffへと直接切り替えることを意味します。 - この変更により、コードレビューシステムは、パッチの解析と適用に関するすべてのロジックを
hgapplydiffに委ねるようになります。
- 以前は
-
オプション名の変更:
ignore_hgpatch_failureというオプション名がignore_hgapplydiff_failureに変更されています。- このオプションは、パッチ適用ツール(以前は
hgpatch、現在はhgapplydiff)が失敗した場合でも、コードレビューシステムがCLメタデータの作成を続行するかどうかを制御します。これは、パッチ適用が完全に成功しなくても、レビュープロセスを続行できるようにするためのフォールバックメカニズムです。オプション名の変更は、使用するツールに合わせた整合性を保つためのものです。
-
エラーメッセージの更新:
hgpatchのインストールを促すエラーメッセージや、hgpatch failedというメッセージが、それぞれhgapplydiffに対応するように更新されています。- これにより、ユーザーがパッチ適用に失敗した場合に、正しいツール(
hgapplydiff)のインストールや問題解決を促すことができます。
これらの変更は、hgapplydiff が hgpatch の機能を完全に置き換えることを前提としています。hgapplydiff は、パッチの適用、競合の検出、および関連するファイル変更の報告において、hgpatch と同等またはそれ以上の機能を提供する必要があります。
この移行は、Goプロジェクトのビルドおよび開発環境における依存関係の変更も伴います。開発者は、hgpatch の代わりに hgapplydiff をインストールし、使用するように求められることになります。コミットメッセージにある go get code.google.com/p/go.codereview/cmd/hgapplydiff は、この新しいツールをGoの標準的な方法で取得できることを示しています。
コアとなるコードの変更箇所
変更は lib/codereview/codereview.py ファイルに集中しています。
--- a/lib/codereview/codereview.py
+++ b/lib/codereview/codereview.py
@@ -1569,24 +1569,24 @@ def clpatch_or_undo(ui, repo, clname, opts, mode):
patch1, err = portPatch(repo, patch, vers, id)
if err != "":
- if not opts["ignore_hgpatch_failure"]:
+ if not opts["ignore_hgapplydiff_failure"]:
return "codereview issue %s is out of date: %s (%s->%s)" % (clname, err, vers, id)
else:
patch = patch1
- argv = ["hgpatch"]
+ argv = ["hgapplydiff"]
if opts["no_incoming"] or mode == "backport"]:
argv += ["--checksync=false"]
try:
cmd = subprocess.Popen(argv, shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=None, close_fds=sys.platform != "win32")
except:
- return "hgpatch: " + ExceptionDetail() + "\nInstall hgpatch with:\n$ go get code.google.com/p/go.codereview/cmd/hgpatch\n"
+ return "hgapplydiff: " + ExceptionDetail() + "\nInstall hgapplydiff with:\n$ go get code.google.com/p/go.codereview/cmd/hgapplydiff\n"
out, err = cmd.communicate(patch)
- if cmd.returncode != 0 and not opts["ignore_hgpatch_failure"]:
- return "hgpatch failed"
+ if cmd.returncode != 0 and not opts["ignore_hgapplydiff_failure"]:
+ return "hgapplydiff failed"
cl.local = True
cl.files = out.strip().split()
- if not cl.files and not opts["ignore_hgpatch_failure"]:
+ if not cl.files and not opts["ignore_hgapplydiff_failure"]:
return "codereview issue %s has no changed files" % clname
files = ChangedFiles(ui, repo, [])
extra = Sub(cl.files, files)
@@ -2099,7 +2099,7 @@ cmdtable = {
"^clpatch": (
clpatch,
[
- ('', 'ignore_hgpatch_failure', None, 'create CL metadata even if hgpatch fails'),
+ ('', 'ignore_hgapplydiff_failure', None, 'create CL metadata even if hgapplydiff fails'),
('', 'no_incoming', None, 'disable check for incoming changes'),
],
"change#"
@@ -2158,7 +2158,7 @@ cmdtable = {
"^release-apply": (
release_apply,
[
- ('', 'ignore_hgpatch_failure', None, 'create CL metadata even if hgpatch fails'),
+ ('', 'ignore_hgapplydiff_failure', None, 'create CL metadata even if hgapplydiff fails'),
('', 'no_incoming', None, 'disable check for incoming changes'),
],
"change#"
@@ -2181,7 +2181,7 @@ cmdtable = {
"^undo": (
undo,
[
- ('', 'ignore_hgpatch_failure', None, 'create CL metadata even if hgpatch fails'),
+ ('', 'ignore_hgapplydiff_failure', None, 'create CL metadata even if hgapplydiff fails'),
('', 'no_incoming', None, 'disable check for incoming changes'),
],
"change#"
コアとなるコードの解説
lib/codereview/codereview.py は、Goプロジェクトのコードレビューツール codereview の主要なロジックを実装しています。このファイルには、パッチの適用、変更リストの管理、およびその他のMercurial関連の操作を行うための関数が含まれています。
変更された主要な関数は clpatch_or_undo です。
-
clpatch_or_undo関数:- この関数は、特定の変更リスト (CL) のパッチをローカルリポジトリに適用する役割を担っています。
- 変更前は
argv = ["hgpatch"]を使用して外部コマンドhgpatchを呼び出し、パッチを適用していました。 - 変更後は
argv = ["hgapplydiff"]となり、hgapplydiffが呼び出されるようになりました。 subprocess.Popenを使用して、パッチの内容をhgapplydiffの標準入力にパイプで渡し、その出力を処理しています。- パッチ適用が失敗した場合のエラーハンドリングも更新されており、
ignore_hgpatch_failureオプションがignore_hgapplydiff_failureに、関連するエラーメッセージもhgapplydiffに合わせて変更されています。これにより、ユーザーは正しいツールに関する情報を受け取ることができます。
-
cmdtable辞書:cmdtableは、codereviewコマンドラインツールのサブコマンド(例:clpatch,release-apply,undo)とそのオプションを定義する辞書です。- これらのサブコマンドのオプション定義内で、
ignore_hgpatch_failureという文字列がignore_hgapplydiff_failureに変更されています。これは、コマンドラインインターフェースのオプション名も新しいツールに合わせて更新されたことを意味します。
これらの変更は、codereview.py がパッチ適用の中核的なロジックを hgpatch から hgapplydiff へと完全に移行したことを明確に示しています。これにより、Goのコードレビューワークフローは、より新しい、あるいはより適切なパッチ適用ツールを利用するようになりました。
関連リンク
- Goプロジェクトのコードレビューシステムに関する情報:
- Goプロジェクトの初期のコードレビュープロセスに関する情報は、古いGoのドキュメントやメーリングリストのアーカイブに見られる可能性があります。
- MercurialからGitへの移行に関する情報も、Goプロジェクトの歴史を理解する上で役立ちます。
参考にした情報源リンク
- Mercurial 公式ドキュメント: Mercurialの基本的な概念とコマンドについて。
- Goプロジェクトの変更リスト (CL) 7308067: このコミットが依存している変更リスト。具体的な内容は不明ですが、
hgapplydiffの導入や関連する変更である可能性が高いです。 - Goプロジェクトの変更リスト (CL) 7312064: このコミット自体の変更リスト。
- Python
subprocessモジュール: 外部コマンドの実行に関するPythonのドキュメント。 go.codereviewリポジトリ (旧):hgpatchやhgapplydiffのソースコードがかつて存在した可能性のある場所。code.google.com/p/go.codereviewはGoogle Codeの閉鎖に伴いアーカイブされていますが、関連する情報はGoの公式リポジトリの履歴やミラーで見つかる可能性があります。
- Web検索結果:
hgpatchとhgapplydiffがMercurialの一般的なコマンドではなく、Goプロジェクトの特定のツールであった可能性を示唆する情報。- https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQEu-x8aWdxjQTsc2g8I1tPaKgVJKtO4QYFV-_VNbnzA7jJORD50hfQDfHvIGNKZG9ikqXH9GwlrQTKMGaZZW6jqPx1RoLY0l_aZMhrdKVG9ZKNSku1hR-tTZqWhI-B_m1EdNVSUoh3e4senCsOZTAIEUrjm8iT5Wqpp
- https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQH82eGp_yVKUTJGnbL9jnxO3LT7M-Lg9GIUYSf7irWupJR0HmncqmUCSn1H3i62gx9f8nLUyremqchsYKTNNIBF8g8RAy-RPfJ6NksMDQBf7kyUq2H0Qin68WFPE3z5A_OCH16VDMOJnmJ_Eac1LyaMC6hUfFjwmeBz4dQ3LJ0j
- https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQH9WwC49_sIBBp1_W6Fi73O1qGW1687xfxzW_f37oGng1NfL3Jt6R8yFlxqdEdwXXpq6I9fMa_mUTtzskIQG7tO8MwjwDYz03rRFrxvxtP58pbBmWBuI2_gHfBL5wJb2i-7h6hlQtDrIT6iJRde-A==
- https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQGMohwYe3IKG5UeYMJ6beh-GVOHdoYvS25qEEofdnAvRf__lL1G7qMK75xDS8MoPaubqzBIPnLumLeX0TKj4W81BWZ_LIuVEZbkRMGVW3cOwWTBA7JNyY5XjUUxxh19aV8pykgqHqgnHg==
- https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQE5f1SCTxZnvTAIMDkmtWxCmGs1zoNHpboga6Xhk24cYWaLJ13z6lCl3n8a_qky-yxFQEVXhKxw4Df7S4rZJqP43c1pZMyWuxa5jfoIXXfZ-UZZesFmtLKCwluHeuV7pwCWsg==