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

[インデックス 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の機能に深く統合されていました。hgpatchhgapplydiff は、Mercurialリポジトリにパッチを適用するためのツールです。

この変更の背景には、おそらくGoプロジェクトのコードレビューシステム(go.codereview)の進化があります。hgpatch はGoプロジェクトが独自に開発したパッチ適用ツールであり、hgapplydiff も同様にGoのツールチェインの一部として開発された可能性があります。

依存関係として示されている https://golang.org/cl/7308067 は、おそらく hgapplydiff ツール自体の導入や改善、あるいは hgpatch から hgapplydiff への移行を準備する変更リストであると推測されます。このコミットは、その準備が整った後に、実際にコードレビューシステムが新しいツールを使用するように切り替える最終段階の一部と考えられます。

具体的な変更の動機としては、hgapplydiffhgpatch よりも優れた機能、パフォーマンス、信頼性、あるいはより適切なエラーハンドリングを提供するといった理由が考えられます。例えば、hgapplydiff はより堅牢なパッチ適用ロジックを持っていたり、特定のMercurialのバージョンや設定との互換性が高かったりする可能性があります。

前提知識の解説

このコミットを理解するためには、以下の概念について知っておく必要があります。

  1. Mercurial (Hg):

    • Gitと同様の分散型バージョン管理システム (DVCS) です。Goプロジェクトは初期にMercurialを使用していましたが、後にGitに移行しました。
    • Mercurialは、リポジトリのクローン、コミット、プッシュ、プルなどの基本的なバージョン管理操作を提供します。
    • パッチは、ある時点でのコードの状態と別の時点でのコードの状態の差分を記述したファイルであり、他のリポジトリに適用することで変更を共有できます。
  2. Goのコードレビューシステム (go.codereview):

    • Goプロジェクトは、Googleの内部コードレビューシステムであるMondrian(後にGerritに影響を与えた)に似た独自のコードレビューシステムを使用していました。
    • 開発者は変更をコミットする前に、このシステムを通じて他の開発者からのレビューを受けます。
    • レビュープロセスでは、提案された変更(パッチ)をローカルリポジトリに適用し、テストや検証を行う必要があります。このパッチ適用プロセスで hgpatchhgapplydiff のようなツールが使用されます。
  3. hgpatchhgapplydiff:

    • これらは、Goプロジェクトのコードレビューワークフローの一部として開発された、Mercurialリポジトリにパッチを適用するためのコマンドラインツールです。
    • hgpatch: 以前使用されていたパッチ適用ツール。パッチファイル(通常は diff コマンドで生成されたもの)を読み込み、それをMercurialリポジトリに適用する役割を担っていました。
    • hgapplydiff: hgpatch の後継または代替として導入されたツール。同様にパッチを適用しますが、おそらくより高度な機能、改善されたロバスト性、または特定のMercurialのバージョンとのより良い統合を提供します。Goのツールチェインの一部として go get でインストールできることが示唆されています。
  4. subprocess.Popen (Python):

    • Pythonの標準ライブラリ subprocess モジュールの一部で、新しいプロセスを生成し、その入出力パイプに接続するための関数です。
    • このコミットでは、codereview.pyhgpatch または hgapplydiff コマンドを外部プロセスとして実行するために使用しています。stdin=subprocess.PIPE は、パッチの内容を標準入力としてコマンドに渡すために使われます。

技術的詳細

このコミットは、Goプロジェクトのコードレビューシステムの中核部分である lib/codereview/codereview.py ファイルに変更を加えています。このPythonスクリプトは、Mercurialリポジトリに対するパッチの適用、変更リスト (CL) の管理、および関連する操作を処理します。

変更の技術的な詳細は以下の通りです。

  1. コマンドの切り替え:

    • 以前は argv = ["hgpatch"] となっていた部分が argv = ["hgapplydiff"] に変更されています。これは、パッチ適用を実行する際に呼び出す外部コマンドを hgpatch から hgapplydiff へと直接切り替えることを意味します。
    • この変更により、コードレビューシステムは、パッチの解析と適用に関するすべてのロジックを hgapplydiff に委ねるようになります。
  2. オプション名の変更:

    • ignore_hgpatch_failure というオプション名が ignore_hgapplydiff_failure に変更されています。
    • このオプションは、パッチ適用ツール(以前は hgpatch、現在は hgapplydiff)が失敗した場合でも、コードレビューシステムがCLメタデータの作成を続行するかどうかを制御します。これは、パッチ適用が完全に成功しなくても、レビュープロセスを続行できるようにするためのフォールバックメカニズムです。オプション名の変更は、使用するツールに合わせた整合性を保つためのものです。
  3. エラーメッセージの更新:

    • hgpatch のインストールを促すエラーメッセージや、hgpatch failed というメッセージが、それぞれ hgapplydiff に対応するように更新されています。
    • これにより、ユーザーがパッチ適用に失敗した場合に、正しいツール(hgapplydiff)のインストールや問題解決を促すことができます。

これらの変更は、hgapplydiffhgpatch の機能を完全に置き換えることを前提としています。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 リポジトリ (旧): hgpatchhgapplydiff のソースコードがかつて存在した可能性のある場所。
    • 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の機能に深く統合されていました。hgpatchhgapplydiff は、Mercurialリポジトリにパッチを適用するためのツールです。

この変更の背景には、おそらくGoプロジェクトのコードレビューシステム(go.codereview)の進化があります。hgpatch はGoプロジェクトが独自に開発したパッチ適用ツールであり、hgapplydiff も同様にGoのツールチェインの一部として開発された可能性があります。

依存関係として示されている https://golang.org/cl/7308067 は、おそらく hgapplydiff ツール自体の導入や改善、あるいは hgpatch から hgapplydiff への移行を準備する変更リストであると推測されます。このコミットは、その準備が整った後に、実際にコードレビューシステムが新しいツールを使用するように切り替える最終段階の一部と考えられます。

具体的な変更の動機としては、hgapplydiffhgpatch よりも優れた機能、パフォーマンス、信頼性、あるいはより適切なエラーハンドリングを提供するといった理由が考えられます。例えば、hgapplydiff はより堅牢なパッチ適用ロジックを持っていたり、特定のMercurialのバージョンや設定との互換性が高かったりする可能性があります。

前提知識の解説

このコミットを理解するためには、以下の概念について知っておく必要があります。

  1. Mercurial (Hg):

    • Gitと同様の分散型バージョン管理システム (DVCS) です。Goプロジェクトは初期にMercurialを使用していましたが、後にGitに移行しました。
    • Mercurialは、リポジトリのクローン、コミット、プッシュ、プルなどの基本的なバージョン管理操作を提供します。
    • パッチは、ある時点でのコードの状態と別の時点でのコードの状態の差分を記述したファイルであり、他のリポジトリに適用することで変更を共有できます。
  2. Goのコードレビューシステム (go.codereview):

    • Goプロジェクトは、Googleの内部コードレビューシステムであるMondrian(後にGerritに影響を与えた)に似た独自のコードレビューシステムを使用していました。
    • 開発者は変更をコミットする前に、このシステムを通じて他の開発者からのレビューを受けます。
    • レビュープロセスでは、提案された変更(パッチ)をローカルリポジトリに適用し、テストや検証を行う必要があります。このパッチ適用プロセスで hgpatchhgapplydiff のようなツールが使用されます。
  3. hgpatchhgapplydiff:

    • これらは、Goプロジェクトのコードレビューワークフローの一部として開発された、Mercurialリポジトリにパッチを適用するためのコマンドラインツールです。
    • hgpatch: 以前使用されていたパッチ適用ツールであり、Goプロジェクトが独自に開発したものです。パッチファイル(通常は diff コマンドで生成されたもの)を読み込み、それをMercurialリポジトリに適用する役割を担っていました。
    • hgapplydiff: hgpatch の後継または代替として導入されたツールです。同様にパッチを適用しますが、おそらくより高度な機能、改善されたロバスト性、または特定のMercurialのバージョンとのより良い統合を提供します。Goのツールチェインの一部として go get でインストールできることが示唆されています。Web検索の結果によると、hgpatchhgapplydiff はMercurialの一般的なコマンドではなく、Goプロジェクトの特定のツールであった可能性が高いです。Mercurial自体には hg import コマンドがあり、これがパッチ適用に広く使われます。
  4. subprocess.Popen (Python):

    • Pythonの標準ライブラリ subprocess モジュールの一部で、新しいプロセスを生成し、その入出力パイプに接続するための関数です。
    • このコミットでは、codereview.pyhgpatch または hgapplydiff コマンドを外部プロセスとして実行するために使用しています。stdin=subprocess.PIPE は、パッチの内容を標準入力としてコマンドに渡すために使われます。

技術的詳細

このコミットは、Goプロジェクトのコードレビューシステムの中核部分である lib/codereview/codereview.py ファイルに変更を加えています。このPythonスクリプトは、Mercurialリポジトリに対するパッチの適用、変更リスト (CL) の管理、および関連する操作を処理します。

変更の技術的な詳細は以下の通りです。

  1. コマンドの切り替え:

    • 以前は argv = ["hgpatch"] となっていた部分が argv = ["hgapplydiff"] に変更されています。これは、パッチ適用を実行する際に呼び出す外部コマンドを hgpatch から hgapplydiff へと直接切り替えることを意味します。
    • この変更により、コードレビューシステムは、パッチの解析と適用に関するすべてのロジックを hgapplydiff に委ねるようになります。
  2. オプション名の変更:

    • ignore_hgpatch_failure というオプション名が ignore_hgapplydiff_failure に変更されています。
    • このオプションは、パッチ適用ツール(以前は hgpatch、現在は hgapplydiff)が失敗した場合でも、コードレビューシステムがCLメタデータの作成を続行するかどうかを制御します。これは、パッチ適用が完全に成功しなくても、レビュープロセスを続行できるようにするためのフォールバックメカニズムです。オプション名の変更は、使用するツールに合わせた整合性を保つためのものです。
  3. エラーメッセージの更新:

    • hgpatch のインストールを促すエラーメッセージや、hgpatch failed というメッセージが、それぞれ hgapplydiff に対応するように更新されています。
    • これにより、ユーザーがパッチ適用に失敗した場合に、正しいツール(hgapplydiff)のインストールや問題解決を促すことができます。

これらの変更は、hgapplydiffhgpatch の機能を完全に置き換えることを前提としています。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プロジェクトの歴史を理解する上で役立ちます。

参考にした情報源リンク