[過去ログ]
Git 18 (1002レス)
Git 18 http://mevius.5ch.net/test/read.cgi/tech/1650651945/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
674: デフォルトの名無しさん (ワッチョイ d9e4-Xmag) [sage] 2022/10/31(月) 16:37:40.55 ID:GzQExg5g0 gitにとってファイルの差分を抽出する機能は、単にユーザへ表示したりパッチをつくるだけじゃなくて、gitの特徴的なマージやリベースを実現するための核心的機能なんだよ なので専用のものを内製する意味はある http://mevius.5ch.net/test/read.cgi/tech/1650651945/674
689: デフォルトの名無しさん (ワッチョイ d9e4-Xmag) [sage] 2022/10/31(月) 19:56:13.88 ID:GzQExg5g0 >>682 diff.externalやdifftoolによる置き換えは差分表示に使うdiffを置き換えるだけで、git内部でマージやリベースを行うための差分抽出には使わないだろ http://mevius.5ch.net/test/read.cgi/tech/1650651945/689
706: デフォルトの名無しさん (ワッチョイ d9e4-Xmag) [sage] 2022/10/31(月) 20:46:22.02 ID:GzQExg5g0 >>693 gitのバージョン管理されているファイルツリーはdiffコマンドがそのまま解釈できるような形式でファイルシステム上に存在しないからファイル単位で変換して外部関数呼び出すとか馬鹿だな さらにgit内部で保持されるファイルの差分情報をdiffの出力みたいな字句解析が必要なバイト配列で取り扱うのも馬鹿げてる このファイル差分抽出は間違いなくgitの核心的機能これが無ければVCSとして機能しない http://mevius.5ch.net/test/read.cgi/tech/1650651945/706
708: デフォルトの名無しさん (ワッチョイ d9e4-Xmag) [sage] 2022/10/31(月) 20:55:34.73 ID:GzQExg5g0 >>698 -uをサポートする前は、patch作るなら-cのコンテクスト形式だろ -cなら-uとハンクの精度は変わらん http://mevius.5ch.net/test/read.cgi/tech/1650651945/708
711: デフォルトの名無しさん (ワッチョイ d9e4-Xmag) [sage] 2022/10/31(月) 21:15:30.28 ID:GzQExg5g0 >>709 マージやリベースでやってる差分抽出は最終段のI/Oじゃないし C言語でシンプルに実装されてるgitをMSが作る馬鹿みたいに重いツールにしないでくれよ http://mevius.5ch.net/test/read.cgi/tech/1650651945/711
712: デフォルトの名無しさん (ワッチョイ d9e4-Xmag) [sage] 2022/10/31(月) 21:34:40.89 ID:GzQExg5g0 BitKeeperを元にGitを実装したリーナスはBitKeeper以前のVCSを糞みたいに言ってるんだよね https://ezoeryou.github.io/blog/article/2015-04-08-linus-git-interview.html edとdiffを使ったようなVCSは眼中になかった http://mevius.5ch.net/test/read.cgi/tech/1650651945/712
714: デフォルトの名無しさん (ワッチョイ d9e4-Xmag) [sage] 2022/10/31(月) 21:52:54.41 ID:GzQExg5g0 >>713 内部的に圧縮されたファイル? 「ファイルツリーはdiffコマンドがそのまま解釈できるような形式でファイルシステム上に存在しない」 これを勘違いしたのかな? ファイルじゃなくてファイルツリーね gitのディレクトリーのツリー構造を保持する方法独特だからその各ファイルをdiff取ってもらうためにツリーをtraverseするインターフェースを提供する必要が有る ファイル単位の差分抽出なんて複雑な処理でもないんだからそれをやってもらうためにそれよりはるかに複雑なインターフェースを設計するとか無駄以外の何物でもないな http://mevius.5ch.net/test/read.cgi/tech/1650651945/714
717: デフォルトの名無しさん (ワッチョイ d9e4-Xmag) [sage] 2022/10/31(月) 22:17:17.34 ID:GzQExg5g0 >>716 cat-fileは単にblobの中身を表示するコマンドってだけで、逆をやるblobを作るコマンドが用意されてるわけじゃない つまりここでソフトウェア的に階層がきれいに分かれてるわけじゃない ここを置き換えて自由な圧縮アルゴリズムを使えるようになっていたとしたら Libgit2 みたいな別実装のライブラリが出現する余地もなかっただろう ここは変にインターフェース階層なんて用意しなくて正解 gitはツールであるとともにフォーマットでもあるんだよ フォーマットに自由なオプションが用意されているとか別の実装を作る側としては悪夢でしかない http://mevius.5ch.net/test/read.cgi/tech/1650651945/717
722: デフォルトの名無しさん (ワッチョイ d9e4-Xmag) [sage] 2022/10/31(月) 22:50:56.79 ID:GzQExg5g0 >>720 そんな入れ替え可能な階層分けが必要なら最初から全部C言語以外で作ればよかったんだよ でもリーナスはC言語を選んでほぼunixシステムコールを直接叩く方式で実装した hqなんかの方がお前の好みに近いだろうけど、hqは廃れてgit全盛となった むかしはこのスレにもhq信者が盛んにチョッカイかけに来たもんだけど、いまは何してるんだろうな http://mevius.5ch.net/test/read.cgi/tech/1650651945/722
726: デフォルトの名無しさん (ワッチョイ d9e4-Xmag) [sage] 2022/10/31(月) 23:25:07.54 ID:GzQExg5g0 >>724 結局gitがどういう方式で実装されているかなんてことよりファイルフォーマットの方が重要ってことだ だからgitの実装とファイルフォーマットを切り離すようなインターフェース階層は必要無いしだれも実装しない 必要無いものを実装すれば余計なメンテの手間もかかる http://mevius.5ch.net/test/read.cgi/tech/1650651945/726
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.027s