最新コミット日付でブランチをソートする

2026/08/25 23:57

最新コミット日付でブランチをソートする

RSS: https://news.ycombinator.com/rss

要約

日本語訳:

改良されたサマリーは、欠落していた詳細(例えば他のソートキーや特定の古いスクリプト)を統合し、可読性を保ちつつより完全な概要を提供します。

改良されたサマリー:
現代の Git バージョンでは、ユーザーがコミット日付で直接ブランチをソートできるようにすることで、複雑な外部スクリプト(例:

git branch | sed ...
)を使用する必要性を取り除き、ブランチ管理を大幅に簡素化しています。以前、多数のブランチを管理していた開発者は、最近のアクティビティをフィルタリングするために
git log
sed
を使用した煩雑な手順に依存していました。新しい機能は、
git-for-each-ref
で定義されたネイティブソートキーを活用しており、
committerdate
authordate
creatordate
taggerdate
などの基準だけでなく、
contents:size
のようなコンテンツメトリクスも受け入れます。ユーザーは一度きりのコマンド(例:
git branch --sort committerdate
)で即座にこの機能を利用したり、
git config branch.sort committerdate
を使用して設定を永続化したりできます。この変化により、カスタムスクリプティングの技術的障壁が解消され、リポジトリの保守性が個々の開発者も企業にとっても大幅に向上します。脆弱なカスタムソリューションではなく標準的なビルトイン機能に依存することで、チームは理解しやすく、長期的に維持しやすいクリーンなワークフローを確立できます。

本文

Git ブランチソートの新たなアプローチ

従来の複雑なスクリプトの限界

過去に多くの開発者が直面した課題として、Git のブランチ数が多くなるにつれて最新のものを可視化する難しさがあります。これに対処するために作成された代表的なスクリプトは以下の通りです。

function branches {
  for k in `git branch | sed "s/^..//"`; do
    echo -e `git log --color -1 --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" "$k"`\\t"$k";
  done | sort
}

このスクリプトは出力の最初の列に日付を表示し、その後に

sort
コマンドを適用することでソートを行っていました。しかし、現代の Git ではこのような手動な処理は不要であることが判明しました。

モダンなソート機能を活用する

Git に設定を行うだけで、ブランチを最後のコミットの日付に基づいて自動的にソートすることが可能です。

永続的な設定

設定ファイルに追加することで、すべてのコマンドで有効化できます。

git config branch.sort committerdate

一時的な指定

特定の作業だけを対象にする場合は、オプションを直接指定します。

git branch --sort committerdate

利用可能なソートキー

Git のマニュアルでは、

git-for-each-ref(1)
でサポートされているキーと同じものが利用できるとされています。このコマンドのマニュアルページには多数のフィールドがリストされていますが、開発用途として特に有用なものを以下に紹介します。

主要なソートキー一覧

  • authordate, committerdate, creatordate, taggerdate
    • コミットやタグの作成者(コミッター)に関連する日付情報です。
  • contents:size
    • コミットまたはタグメッセージのサイズ(バイト単位)でソートできます。
  • push
    • 表示される参照(ref)の
      @{push}
      位置を表すローカルの参照名です。
  • refname
    • 参照そのものの名前(
      $GIT_DIR/
      の直後の部分;これがデフォルトの設定です)。
  • upstream
    • 表示されている参照から「上流」とみなせるローカル参照の名前です。

これらのキーを活用することで、ブランチ管理を効率化できます。

同じ日のほかのニュース

一覧に戻る →

2026/08/30 2:49

おどろおどろしい虫たち

## Japanese Translation: Linux カーネルの公式サイトは、AI モデルの学習に使用する自動スクレーパーから多大な負荷をかけています。これらのボットはプロキシ SDK を利用し、数百万件の住宅 IP やモバイル IP を悪用しています。これらのボットは日間のトラフィックのおよそ 33% を消費し、利用可能な CPU コアを約半数(5 つの地理的に分散されたノードを通じて 90 のコアのうち 14〜16 コア)に占有しており、主にレポジトリをクローンするのではなく git コミットを HTML としてレンダリングすることによってこれを行っています。この手法はプロジェクトの著者が「スクレーパーがデータを使用する最も愚かな方法」と呼んでいます。Anubis がアクセス前に SHA256 パズルを要求しているにもかかわらず、ボットが低い難易度を解いた後に難易度がレベル 4 から 5 に引き上げられましたが、これはモバイルユーザーにとってデバイスを温めるという点で依然として不満を生み出しており、人間の行動を模倣する高度な戦術を完全に阻止していません。推定される正当な人間によるトラフィックはわずか約 2% です。スクレーパーは Linux カーネルの履歴が LLM の学習データの豊富な源泉であるためこれを標的としています。また、浅いクローンを使用している脆弱な CI システムは、さらなる即時的過負荷リスクをもたらします。緩和策としては特定の機能を無効化し、匿名ユーザーのアクションをゲートリングするなどの措置が講じられていますが、すべてのデータは引き続きダウンロード可能です。簡単な解決策はありません:新しい AI モデル企業は引き続き無料の学習データを求めており、アプリ開発者は家庭用デバイスを攻撃ベクトルに変え続けており、その結果、サイトはスクレーパーによる負荷から「背景放射線」のような状態に常時置かれています。

2026/08/31 5:00

宇宙のコア:1980年のスペースシャトル搭載のSpacelabコンピュータから復元されたコアメモリモジュール

## Japanese Translation: Spacelab は、スペースシャトルの貨物コンパートメントに搭載された再利用可能な欧州製実験室であり、標準的な IBM AP-101 システムではなく、フランス製 Mitra 125 MS ミニコンピュータを 3 台採用していた。これら 3 台のうち 1 台は実験室を、もう 1 台は実験を担当し、残りの 1 台が予備として機能した。各コンピュータのメモリシステムは 1980 年頃製作され、シリコンではなくフェライトリングを使用した磁性コアメモリを採用しており、「2½D」アーキテクチャにより抑制線を廃止するため、各ビットに独立した X ドライバ回路を設け、位相反転技術を用いることで垂直ドライバの数を半減させていた(U 字形の配線ループを使用)。メモリスタックは 7 ボードで構成され、ドライバボード、4 つのコアプレーンボード、第 2 のドライバボード、およびインターフェースボードからなっていた。各コアプレーンは 1024 本の垂直 Y ワイヤーと 288 本の水平 X ワイヤーで支えられ、16K の 18 ビット語(32 KB)を保持し、総計で 294,912 個のリチウムフェライトコアを有していた。ノイズキャンセレーションにはねじれペアセンスワイヤと「蝶結び」状のクロス構成が用いられ、ダイオードマトリクスはプリント基板間にコードウッド構造を採用しており、各ダイオードチップには 8 コアラインに対応する 16 個のダイオードが含まれていた。1991 年、IBM AP-101S のアップグレードにより、AP-101SL モディフィケーションを通じて磁性コアを半導体メモリに置き換えられながら、フェライトコアメモリが廃棄される直前まで Spacelab システムとの互換性を維持した。 ## Text to translate: Spacelab was a reusable European laboratory carried in the Space Shuttle's cargo bay that employed three French-built Mitra 125 MS minicomputers—rather than standard IBM AP-101 systems—with one managing the laboratory, one managing experiments, and one as a backup. Each computer's memory system, built around 1980, used magnetic core memory with ferrite rings (not silicon) in a "2½D" architecture that eliminated inhibit lines by using separate X driver circuitry for each bit; phase reversal techniques halved the number of vertical drivers via U-shaped wiring loops. The memory stack comprised seven boards: a driver board, four core plane boards, a second driver board, and an interface board. Each core plane held 16K of 18-bit words (32 KB) supported by 1024 vertical Y wires and 288 horizontal X wires, totaling 294,912 lithium ferrite cores. Noise cancellation was achieved through twisted pair sense wires and a "bow tie" crossing configuration, while diode matrices used cordwood construction between printed circuit boards (each diode chip containing 16 diodes for 8 core lines). In 1991, IBM AP-101S upgrades replaced the original magnetic cores with semiconductor memory via the AP-101SL modification, maintaining compatibility with the Spacelab system before ferrite core memory became obsolete.

2026/08/31 1:01

Haiku R1/beta6 がリリースされました

## Japanese Translation: 2026 年 8 月 26 日(水曜日)に、R1/beta6 のリリースをもって Haiku は創業 25 周年を迎えます。これは記念日から約 1 ヶ月後、そして前回から約 2 年後の発表です。この大きなアップデートは開発の一時停止を経て実現され、ユーザーに待ち望まれていた機能向上を提供します。ファンは提供されたダウンロードポータルを通じてすぐにアップグレードを行うか、詳細なリリースノートを確認するか、またはお問い合わせにはプレスコンタクトまでご連絡ください。この発売は Haiku の遺産を称えつつ、オープンソース OS が専用コミュニティと共に進化し続ける中、個々のユーザーならびにテクノロジー企業双方がアクセス可能な導入と継続的なフィードバックへと導く重要な瞬間を象徴します。