complete history of Linuxを一連のパッチ(統一されたdiff形式)としてリストしたいと思います。最初のものから今日のマスターまで自動的に処理することができます。理論的には、これはログから現代版を再構成することを可能にするでしょう。自動適用できる一連のパッチをgit logでどのように入手できますか?
git -c diff.renameLimit=30000 log -m -M -C --pretty=tformat:'commit %H %ct' --topo-order --reverse -U0
残念ながら、それが原因私はそれを与えるか、バグのため、(1280のコミット後)を開始し、誤ったオプションのいずれか、git log
ようですやるの違いを出力する。このために私は、次のコマンドを実行しています前の状態と一致しないため、自動的に適用することはできません(パッチなど)。
例として、git log -m -M -C --pretty=tformat:'commit %H %ct' --topo-order --reverse -U0 43acd296..9b7855ca -- drivers/usb/auerswald.c
を実行するパッチ(1)リビジョン43acd296
にチェックアウトシステムには適用できないという差分を生成します。 (問題は連続ログ出力で発生する問題と同じです)。対照的に、git diff -U0 43acd296 9b7855ca -- drivers/usb/auerswald.c
を実行すると、改訂版43acd296
に問題なく適用できるdiffが生成されます。
希望の出力を得るためにgit log
に追加するオプションがありますか? (私は--full-history
を試してみましたが、問題が持続。)あなたは、おそらくgit format-patch
を使用する必要があります
ありがとうございました!なぜ 'git-format-patch'が' git-log'で見た問題を避けると思いますか?また、機械可読な出力形式を簡潔に指定したいと思います。 'git-format-patch'は' --format'オプションを提供していないようです。 –
'git-format-patch'は、あなたがやりたいことをするように設計されているので(1回のコミットごとに一連のパッチを作る)、' git log'とは違って* input * gitに戻ってください。どのように「機械可読」を「パッチを生成する」と調和させるかわからないので、そこに提案はできません。 – larsks
'git format-patch'はリポジトリ全体をエクスポートするのに十分な堅牢性を持っているようには見えません。 '(cd" $ 1 "&& git --no-stat -M -C --stdout --root HEAD)でreposをコピーすると、 Docker Gitリポジトリで、「エラー:パッチが失敗しました:filesystem.go:7エラー:filesystem.go」というエラーが表示されました(「rm -rf "$ 2" && mkdir "$ 2" && cd "$ 2" && init)パッチは適用されません。0062でパッチが失敗しました。 ' –