[過去ログ] Git 18 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
706
(1): デフォルトの名無しさん (ワッチョイ d9e4-Xmag) [sage] 2022/10/31(月) 20:46:22.02 ID:GzQExg5g0(3/10) AAS
>>693
gitのバージョン管理されているファイルツリーはdiffコマンドがそのまま解釈できるような形式でファイルシステム上に存在しないからファイル単位で変換して外部関数呼び出すとか馬鹿だな
さらにgit内部で保持されるファイルの差分情報をdiffの出力みたいな字句解析が必要なバイト配列で取り扱うのも馬鹿げてる
このファイル差分抽出は間違いなくgitの核心的機能これが無ければVCSとして機能しない
709
(1): デフォルトの名無しさん (ワッチョイ 497b-vCJ4) [sage] 2022/10/31(月) 21:08:17.57 ID:J+3pjzxx0(16/22) AAS
>>706
そこら辺の機能はGit以前から完全に機能してるんだよ。
> diffが作られてしばらくは、ソフトウェアコードや技術文書のマークアップのソース部分の変更箇所を比較する、
> プログラムのデバッグ出力の検証、ファイルシステム中のファイル一覧の比較といった使い方が一般的であった。
> ed用の出力により、ファイルへの一連の変更をひとまとめにしてファイル容量を節約するというアイデアが出てきた。
> Source Code Control System(SCCS)はそのようなアイデアを実装したものとして1970年代後半に実装がなされた。
> https://ja.wikipedia.org/wiki/Diff
だからそれはGitのアイデアでも全然無く、Git以前からdiffとedを組み合わせれば誰でも出来る物だった。
勿論diffの出力がキモだから出来るだけ--minimumなのは目指すとしても、
それはdiffを改善すべき話で、Git本体が対応する話ではない。

てかこの辺のソフトウェア階層の話が通じないところを見ると、割と階層無しの文化=本当にCしか知らない感じだな。
例えばJSとかでは、扱うデータの先がDBなのか、ローカルファイルなのか、メモリ上のStringなのかを
上位のコードは区別しないで済むようにコーディングすることが普通で、
と言うか実際はそうしか出来なくて、強制的にそうさせられるわけだが、
形式的には、ネットワークでもローカルファイルでもメモリ上のStringでも、
プログラミングモデル側からは全部読み書き出来る状態になってから制御が渡される。
(メモリ上に展開し終えてから渡されるイメージ、なおこれをRubyでは上手いこと遅延読み出しにしてたりするが)
CでI/Oを分離するにしても普通はそうするし、実際、Gitでもそうなってる。
でないと git log -L で全展開の倍ほどメモリ食うとかあり得ないし。

最終段のI/Oは普通はそうやって上位のコードと分離するもので、Gitもcat-fileでそうなってる。
ただ、それを交換出来ないので、テキストやDBに保存したい奴に対応出来てないだけ。
これはGitの構造の問題だよ。
それでsshを別に実装しますとか、かなり馬鹿げた方針だ。
少なくともJS知ってればそうはならない。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.040s