← 最新の論文
💻 computer science

Was It Never Collected, or Rewritten Away? A Commit-Provenance Dataset Separating Ingestion Gaps from Upstream History Edits across the World of Code

本論文は、アップストリームの履歴書き換え(フォースプッシュ)によって引き起こされた欠落コミットと、グローバルなコードミラーにおける真の取り込みギャップに起因する欠落コミットを区別するコミット・プロベナンス(由来)データセットを導入し、欠落しているコミットの約6.5%が消失ではなく書き換えられたものであることを明らかにし、貢献度カウントおよびミラーの完全性報告の精度を向上させるための補正係数を提供する。

原著者: Audris Mockus

公開日 2026-07-07
📖 1 分で読めます☕ さくっと読める

原著者: Audris Mockus

原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

あなたは、何千人もの人々が互いの作品の上に描き、消し、そして描き直している、大規模でグローバルなアートプロジェクトの、あらゆる瞬間を記録した完璧で完全なフォトアルバムを維持しようとしているのだと想像してください。

この論文は、なぜ私たちのアルバムからいくつかの写真が欠けているのかを理解するための新しいツールについてのものです。

問題点:「欠けた写真」の謎

長年、研究者たちは GitHub からすべてのコミット(コード変更の「写真」)を収集し、World of Code (WoC) と呼ばれる巨大なデータベースに集めようとしてきました。しかし、彼らはある問題に気づきました。アルバムが不完全なのです。そこにあるはずの何百万もの「写真」が欠けています。

以前は、研究者たちは、収集システムが失敗したために、これらの欠けている写真は永遠に失われたのだと単に想定していました。彼らは、「おっと、40%の写真を撮り逃してしまった。私たちの収集機能が壊れているのだ」と考えていました。

しかし、この論文はこう主張しています:待ってください。もしかしたら、写真は失われたのではなく、意図的に削除されたのかもしれません。

二人の容疑者

著者である Audris Mockus は、写真が欠けている理由として、全く異なる2つの可能性を挙げています。

  1. 収集のギャップ(「撮り逃し」): カメラ(収集システム)が瞬きをしたか、ファイル転送に失敗したため、写真は保存されませんでした。これは純粋なエラーです。
  2. 履歴の書き換え(「削除された下書き」): アーティスト(プロジェクトの所有者)が、絵画の特定のバージョンを気に入らなかったのです。彼らは「フォースプッシュ(強制プッシュ)」というデジタル消しゴムを使い、そのバージョンを履歴から消去し、新しいものに置き換えました。その写真は、アーティストによって消されたため、最終版には「存在しなかった」のです。

従来のカウント方法では、これらをひとまとめにしていました。「私たちは46%の写真を逃しました!」と言っていたのです。これでは、収集作業が実際よりもずっとひどい状態に見えてしまいます。

探偵の仕事:二つの異なる視点

この謎を解くために、著者は同じ出来事を二つの異なる「カメラ」で観察しました。

  • カメラ A (GH_Archive): これは、出来事が起きた瞬間に広告されたすべてを記録するセキュリティカメラのようなものです。後で写真が削除されても気にしません。単に「午後2時、誰かが『コミット X』という名前の写真をプッシュした」と記録します。
  • カメラ B (World of Code): これは現在のフォトアルバムです。これまでに収集したすべてのものを保持していますが、削除された写真は保持しません。

このセキュリティカメラのログ(何が広告されたか)と、現在のアルバム(何が保持されているか)を比較することで、著者は欠けている写真を3つの明確なグループに分類することができました。

  1. 存在している: 写真はアルバムにある。(53% の場合)
  2. 書き換えられた: 写真は広告されたが、後にアーティストによって消された。セキュリティカメラはそれを見たが、アルバムには入っていない。なぜなら、それは削除されたからである。(6.5% の場合)
  3. 未取り込み: 写真は広告されたが、アーティストはそれを削除しておらず、それでもアルバムには入っていない。これが真の収集ギャップである。(40% の場合)

大きな驚き

結果は衝撃的でした。以前は、人々は「欠損率」が47%近くに達すると考えていました。

  • 現実: 本当に欠けているのは 40% (収集ギャップ)だけでした。
  • ひねり: 「欠けている」写真のうち約 6.5% は、実はアーティスト自身によって消去されたものでした。

つまり、15枚の欠けている写真につき、1枚は収集者のミスではなく、プロジェクトによる意図的な編集だったということです。

なぜこれが重要なのか(簡単に説明すると)

1. 正直な報告
ソフトウェアを研究している際、もはや「私たちのデータは47%不完全です」と言う必要はありません。「私たちのデータは40%不完全であり、残りの7%は作成者によって削除されました」と言うことができます。これにより、研究はより正確になります。

2. 仕事を正しくカウントする
例えば、ある作業者が100行のコードを書き、その後それを削除して、新しい100行として書き直したとします。

  • 従来のカウント: あなたには新しい100行しか見えません。彼らが100行の仕事をしたと考えます。
  • 新しいカウント: このツールは、彼らが100行を書き、それを削除し、さらに100行を書いたことを検知します。つまり、「削除された」100行も実在した仕事であったことを認識します。
  • 結果: この論文は、もし現在見えるものだけをカウントすると、生産性を約10.8%過小評価してしまうことを示しています。これは、工場が100台の車を作ったのに、10台を廃棄して作り直したために、90台しか作っていないと判断してしまうようなものです。

3. 二重カウントの回避
開発者がコミットを書き換える(古いものを消して新しいIDを持つものを作る)場合、それは同じ「パッチ」のコードです。このツールがないと、コンピュータは古いバージョンと新しいバージョンを別々の貢献としてカウントしてしまう可能性があります。このツールは、それらを重複としてフラグを立て、混乱を防ぎます。

結論

この論文は、私たちに探偵の拡大鏡を与えてくれます。それは「壊れたカメラ」(収集ギャップ)と「削除された下書き」(履歴の書き換え)を分離します。

この論文は、World of Code が私たちが考えていたよりもデータの収集に優れていること(なぜなら、一部の「欠けている」データは最初から存在する予定がなかったから)、同時に、開発者がどれほどの仕事をしているかを過小評価していること(消去された仕事が見えないため)を教えてくれます。

著者は、この「探偵のレンズ」を使って、コードの世界をより明確で正直に把握できるよう、すべてのデータとツールを公開しています。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →