[過去ログ] Git 18 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
658: (ワッチョイ 8bbb-VzUj) 2022/10/31(月)00:04 ID:h5Hfu9WR0(1/9) AAS
>>657
お前以外は誰もオプションとか必要ないから作ってないだけだよ。むしろ邪魔。どうしてもやりたければ外部コマンド指定でできるんだからオプションとかでやるよりよっぽど汎用性がある。
オープンソースなんだからオプション必要ならお前が自分でつくればいい。
659: (ワッチョイ 8bbb-VzUj) 2022/10/31(月)00:08 ID:h5Hfu9WR0(2/9) AAS
あと −−no-patch には昔からパッチ出さない機能しかないぞ。頭悪い推測とかする暇があったら過去のソース確認してこい。
それこそ git で調べればすぐだぞ
660
(1): (ワッチョイ 497b-vCJ4) 2022/10/31(月)00:21 ID:J+3pjzxx0(1/22) AAS
>>859
そうか?ならマニュアルの
> to cancel the effect of --patch
の部分は明らかに不要だから削除要請出しといてくれ。

というか君の「昔」がどれ位か知らんが、Linusの言ってた?フォーマットが統一されてないってのは、
diffの各種オプションではなく、edやsharに対してだと思うぞ。
661: (ワッチョイ 8bbb-VzUj) 2022/10/31(月)00:43 ID:h5Hfu9WR0(3/9) AAS
>>660
不要だと思ってるのはお前だけ。その思い込みが勘違いの原因だろ。
662: (ワッチョイ 497b-vCJ4) 2022/10/31(月)07:08 ID:J+3pjzxx0(2/22) AAS
色々確認したが、Gitの現状認識としては651であってるっぽい。
そして外部ツール使うしかないが、これは環境設定無しでコマンドだけで出来る。(動作確認済み)
git difftool --extcmd=/usr/bin/diff <commit> <commit>
> 外部リンク:qastack.jp

ついでにその中、
> Gitについて学ぶほど、それは1人の人、つまり元のプログラマーのために作られたものだと感じます。
これもよく言われてるようだが、俺も今回の件で同意だ。
省7
663
(1): (ワッチョイ 497b-vCJ4) 2022/10/31(月)10:11 ID:J+3pjzxx0(3/22) AAS
てかGitってまさかのモノリシックかよ!
こりゃ文句言われるのも分かるわ。完全に方向を間違ってる。
結果的に肥大化していったのだろうけど、現在の状況でこれは駄目だよ。

つかこれシェル化する方向のプロジェクトはないの?
子コマンド群のバイナリだけ貰いたいんだけどさ。
664: (ワッチョイ a95f-Tk+f) 2022/10/31(月)10:39 ID:sko8U7ef0(1/2) AAS
>>663 好きに fork しなよ。
665
(1): (ワッチョイ 8bbb-VzUj) 2022/10/31(月)12:23 ID:h5Hfu9WR0(4/9) AAS
自分でやってみればいいよ。
自分で多数の人が参加する巨大なプロジェクトを管理するようになれば、形式が統一されていることがどれだけ重要かわかる。
仕様を強制されているようでも、これこそが git の使い易さ、戦闘証明済の実力だと気付くよ。空想と現場は違う。
666: (ワッチョイ 497b-vCJ4) 2022/10/31(月)13:21 ID:J+3pjzxx0(4/22) AAS
>>665
それが従来形式のdiffの出力をさせない理由なら、
現在のGitプロジェクトの思想は俺とまるで合わない。
今時モノリシックとか、多分じきにこのプロジェクトは頓挫するよ。
multicsの再来だね。(俺は使ったこと無いけど)
自覚症状もあるみたいだし。
> Git is a fast, scalable, distributed revision control system with an unusually rich command set
省18
667
(1): (ブーイモ MM33-wVCK) 2022/10/31(月)14:15 ID:Yrczlr02M(1) AAS
Simple is not easy
Gitは後者を選択することでSIerのドカタまで幅広く受け入れられたということだ
668
(1): (ワッチョイ 8b8f-5UCg) 2022/10/31(月)14:29 ID:Pk1WyFqz0(1) AAS
(だからgit difftoolが用意されてんだろと言いたいけど、linux原理主義者みたいだし黙っとこう)
669: (ワッチョイ 497b-vCJ4) 2022/10/31(月)15:04 ID:J+3pjzxx0(5/22) AAS
>>667
他よりましなだけだろ。

ただ俺が思うに、Gitはもっと簡単に出来て、
・勉強しないといけないGit(今)
・勉強しなくてもなんとなく使えちゃうGit(次世代)
に分離すると思うよ。次世代版の需要圧力はもう既に十分あるし。

実のところ、今のgitにラッパシェルスクリプト群を被せれば次世代版出来ちゃうし、
省4
670
(1): (ワッチョイ 497b-vCJ4) 2022/10/31(月)15:05 ID:J+3pjzxx0(6/22) AAS
>>668
それに辿り着くのにググったりマニュアルを読まないといけないのが問題なんだよ。
今のGitは世界中のプログラマに努力を強いてて、その犠牲の上に成り立ってる。

3時間程度あれば、再現コード付きのバグ報告が出来てしまう。
それをマニュアルを読むのに費やしてるのだから、無駄でしょ。
世界中のプログラマが3時間を世界が進歩する方向に費やせたら、Gitももっとよくなってたはずだよ。
671
(1): (ワッチョイ 6914-Tk+f) 2022/10/31(月)15:39 ID:oV1LtMOH0(1/19) AAS
それは世界中の人が俺に1円を恵んでくれたら
俺は大金持ちになっていたと言っているようなもんだな
672
(1): (ワッチョイ 8bbb-VzUj) 2022/10/31(月)15:57 ID:h5Hfu9WR0(5/9) AAS
>>670
もっと良い物ができると主張するんなら作って広めてから出直してこい

もともと git を使ってきたやつらがどういう連中かわかって無さ過ぎ
linux カーネルコミュニティとか、文句言ってる暇があったらコード書いて変更した方が速いってやつらばかりだぞ
そういう連中がのべ何万人も十年以上使い続けた結果で今の仕様になってる。本当に問題だったら誰かがとっくに直してる

お前にはこの言葉を贈ろう「馬鹿でも使えるものは馬鹿しか使わない」
673: (ワッチョイ 8901-Gf1x) 2022/10/31(月)16:18 ID:SCCWpcRv0(1) AAS
gitにdiffの書式の多様性を求めるなら、自分が使ってるコマンドの方を多様性を受け入れるようにすれば良いんじゃね
674
(1): (ワッチョイ d9e4-Xmag) 2022/10/31(月)16:37 ID:GzQExg5g0(1/10) AAS
gitにとってファイルの差分を抽出する機能は、単にユーザへ表示したりパッチをつくるだけじゃなくて、gitの特徴的なマージやリベースを実現するための核心的機能なんだよ
なので専用のものを内製する意味はある
675
(1): (ワッチョイ 497b-vCJ4) 2022/10/31(月)18:09 ID:J+3pjzxx0(7/22) AAS
>>671
OSSが世界中のプログラマからの元気玉なのは事実だろ
元気をマニュアルに消費されてなければ、もっと大きな元気玉になってただろうよ
676
(1): (ワッチョイ 8901-ZlL6) 2022/10/31(月)18:20 ID:5K9TC9u30(1) AAS
初歩的な質問ですが教えてください。
コミットの履歴が汚くなった場合、皆さんはどのように管理されてますでしょうか?

具体的には、
gitでdevelopからブランチを切ったAで作業しました。

ブランチAのコミット履歴が汚くなったので
新たに作成するブランチBにブランチAで変更したファイルを
一回のコミットで整理したいです。
省2
677: (ワッチョイ 6914-Tk+f) 2022/10/31(月)18:28 ID:oV1LtMOH0(2/19) AAS
>>675
タラレバ
678
(1): (ワッチョイ 497b-vCJ4) 2022/10/31(月)18:33 ID:J+3pjzxx0(8/22) AAS
>>672
> のべ何万人も十年以上使い続けた結果
それは言いすぎ。カーネルコミュニティって400人規模と聞いた覚えがある。
毎年全員入れ替わっても1万人規模だよ。
まあこれは本質ではないのでいいが。、

> 「馬鹿でも使えるものは馬鹿しか使わない」
これって誰の言葉だ?Linusが
省13
679: (ワッチョイ 6914-Tk+f) 2022/10/31(月)18:41 ID:oV1LtMOH0(3/19) AAS
小1「掛け算よりも足し算のほうが簡単だ!」
680: (ワッチョイ 6914-Tk+f) 2022/10/31(月)18:42 ID:oV1LtMOH0(4/19) AAS
しょう1「かけざんよりもたしざんのほうがかんたんだ!かんじよりもひらがなのほうがかんたんだ!」
681: (ワッチョイ a95f-Tk+f) 2022/10/31(月)18:50 ID:sko8U7ef0(2/2) AAS
>>678
> ただ俺は別のことをやろうとしてるから、Gitなんて動けば何でもいい程度でしかないので、優先順位は極めて低い。
これまでの開発者を含めて他の人もそうだっただけという可能性に思い至れば何の不思議もないことなのに。
682
(1): (ワッチョイ 497b-vCJ4) 2022/10/31(月)18:50 ID:J+3pjzxx0(9/22) AAS
>>674
不可欠な機能ではあるが、核心的機能ではない。
事実として、Git内のdiffをGNUdiffに差し替えても、マージやリベースが出来なくなるわけではないだろ。

Gitは方針を間違ってる。
もし仮にGNUdiffのアルゴリズムが糞過ぎて出力が糞でマージが出来ないとしても、
アルゴリズム部分はGNUdiffにcontributeし、Gitがそのソースコードを使えばいいだけ。
Git内のdiffもGNUdiffからforkしたのだろうし、普通はこうすると思うけど。
省9
683: (ワッチョイ 6914-Tk+f) 2022/10/31(月)19:41 ID:oV1LtMOH0(5/19) AAS
え?まさかgit diffを差分を見るだけのツールだと思ってるの?
684
(1): (ワッチョイ 6914-Tk+f) 2022/10/31(月)19:42 ID:oV1LtMOH0(6/19) AAS
GNU diffに依存したら、GNU diffが使われないところで
動かないってわからんかなぁ
diffは移植性低いんだよ?
685
(1): (ワッチョイ 497b-vCJ4) 2022/10/31(月)19:49 ID:J+3pjzxx0(10/22) AAS
ちなみに652で既に言ったが
> --output-indicator-new=<char>
> --output-indicator-old=<char>
> --output-indicator-context=<char>
> Specify the character used to indicate new, old or context lines in the generated patch. Normally they are +, - and ' ' respectively.
> 外部リンク:www.git-scm.com
このオプションが相当にヤバい。
省14
686
(1): (ワッチョイ 6914-Tk+f) 2022/10/31(月)19:51 ID:oV1LtMOH0(7/19) AAS
git diffはパッチファイルを作るために利用されるし、
diffは環境依存するコマンドなんだから、
そんなのに依存したら、gitの移植性が低くなる

別の環境で実行したら、diffコマンドの出力がおかしくて
正しくパッチ当てられませんとかなったら困るやろ
常識で考えろや
687: (ワッチョイ 6914-Tk+f) 2022/10/31(月)19:53 ID:oV1LtMOH0(8/19) AAS
>>685
> とすれば出来ることなので、gnuにこれを提案しても当然「そんなんイラネーよ」で終わってしまう。
あのさぁ、提案するのはGNUだけじゃだめだって理解してないの?
688
(1): (ワッチョイ 497b-vCJ4) 2022/10/31(月)19:53 ID:J+3pjzxx0(11/22) AAS
>>684
どういう意味?
少なくともどのプラットフォームにもdiffはあるだろ。
689
(1): (ワッチョイ d9e4-Xmag) 2022/10/31(月)19:56 ID:GzQExg5g0(2/10) AAS
>>682
diff.externalやdifftoolによる置き換えは差分表示に使うdiffを置き換えるだけで、git内部でマージやリベースを行うための差分抽出には使わないだろ
690
(1): (ワッチョイ 699f-ZlL6) 2022/10/31(月)20:00 ID:9mfNegYM0(1) AAS
ん?
これはもしかして以前来てたPOSIX原理主義者氏か?
691
(1): (ワッチョイ 6914-Tk+f) 2022/10/31(月)20:00 ID:oV1LtMOH0(9/19) AAS
>>688
全部同じ実装じゃねーよ
それぞれ全部細かい違いがある

すべてのプラットフォームのdiffにまで対応するなんて
大変な作業なんて誰もやろうとは思わん
692
(1): (ワッチョイ 6914-Tk+f) 2022/10/31(月)20:01 ID:oV1LtMOH0(10/19) AAS
例えば2004年版のdiffには-uがないからな
The Open Group Base Specifications Issue 6
外部リンク[html]:pubs.opengroup.org
693
(1): (ワッチョイ 497b-vCJ4) 2022/10/31(月)20:02 ID:J+3pjzxx0(12/22) AAS
>>686
> diffは環境依存するコマンド
は?
まあ仮にそうだったとして、Git内のdiffがあらゆる環境で同じdiffを生成するように小細工してるとでも?

ただまあこの場合、ぶっちゃけ、小細工出来る=原因が分かってる≒多分Intサイズとかの違い、だから、
リモートリポジトリのマージで(俺は実際何を送ってくるのか知らんが)diffを送ってくるのなら、
それはマージ時点で鯖に問い合わせてdiffで済むかファイル本体を送らせてローカルでdiff取るかすればいいだけでしょ。
省6
694
(1): (ワッチョイ 6914-Tk+f) 2022/10/31(月)20:03 ID:oV1LtMOH0(11/19) AAS
> まあ仮にそうだったとして、Git内のdiffがあらゆる環境で同じdiffを生成するように小細工してるとでも?

同じdiffを生成するために、gitで実装してるんだろ
頭悪いのか?

依存ライブラリ(この場合はコマンドだが)を減らすのは
移植性を高めるための常識だ
695
(1): (ワッチョイ 6914-Tk+f) 2022/10/31(月)20:04 ID:oV1LtMOH0(12/19) AAS
OSの標準コマンドに依存したら
移植性は低くなるんだよ
常識やろ
696
(2): (ワッチョイ 497b-vCJ4) 2022/10/31(月)20:08 ID:J+3pjzxx0(13/22) AAS
>>692
> ユニファイド形式diffを最初に開発したのはウェイン・デイヴィソンで、
> 1990年8月のことであった(comp.sources.miscのVolume 14にunidiffとして投稿)。
> リチャード・ストールマンがGNUプロジェクトのdiffコマンドにこの機能を1ヶ月後に加え、
> 1991年1月リリースのGNU diff 1.15から使えるようになった。
> 外部リンク:ja.wikipedia.org
ただそれ以前に、-uがある/ないはGitでマージ出来る/出来ないにはならないだろ。
省1
697
(1): (ワッチョイ 497b-vCJ4) 2022/10/31(月)20:10 ID:J+3pjzxx0(14/22) AAS
>>694,695
だからファイル本体をダウンロードして、mergeするマシン上でdiff取ればいいだけだろ。
これでマシン依存をなくせるし、普通の実装だよ。

通じないのか?どうもお前の書き込みは頭が悪そうだし。ならここら辺で切り上げるが。
698
(1): (ワッチョイ 6914-Tk+f) 2022/10/31(月)20:15 ID:oV1LtMOH0(13/19) AAS
>>696
-u がないとハンクの精度が下がるだろ
ほんとしらんならだまっとけよ
699: (ワッチョイ 6914-Tk+f) 2022/10/31(月)20:15 ID:oV1LtMOH0(14/19) AAS
>>697
パッチファイルを受け取って
他の人がマージすることもあるだろ
ほーんと、しらんならだまっとけ
700: (ワッチョイ 6914-Tk+f) 2022/10/31(月)20:16 ID:oV1LtMOH0(15/19) AAS
>>696
他のOSで使えるとは限らんだろうが
GNUしか頭にないんか
701
(1): (ワッチョイ 497b-vCJ4) 2022/10/31(月)20:38 ID:J+3pjzxx0(15/22) AAS
>>690
違うし、565からの議論は俺にとっては一部意味不明だが、正直相当不毛なのは分かる。
それはGitの構造が糞だからだ。

結局のところGitはファイルシステム上のblobツリーを管理するツールでしかない。
そしてblobが気に入らないのなら、テキストにしてしまえばいいだけで、それもまたGitでしかない。
これを理解出来ない馬鹿同士で議論してて空回りしてるだけのように見える。

具体的には、git cat-fileがblob読み出しで、対になる書き込みツールもあるはずだが知らないが、
省13
702: (ワッチョイ 6914-Tk+f) 2022/10/31(月)20:39 ID:oV1LtMOH0(16/19) AAS
>>701
> それはGitの構造が糞だからだ。
結論ありきで理由を探すな
お前はクソな理由を一つも言っていない
703: (ワッチョイ 6914-Tk+f) 2022/10/31(月)20:40 ID:oV1LtMOH0(17/19) AAS
以前来てたPOSIX原理主義者氏ではなく
また別のPOSIX原理主義者氏のようだなw
704: (ワッチョイ 6914-Tk+f) 2022/10/31(月)20:41 ID:oV1LtMOH0(18/19) AAS
自分が認めているもの以外「全部方針が狂ってるよ」
その理由は、自分が認めていないからだよ

世界が認めていても
「俺が認めていないから世界の方が狂ってるんだよ!」
705
(1): (ブーイモ MMeb-uk66) 2022/10/31(月)20:45 ID:GrGctmUAM(1) AAS
POSIX原理主義はWindowsでの開発がめんどくさくなるんで本当に嫌いだわ
あと今更awkやsedの読みづらい文法覚えるより他のスクリプト言語で書いた方が楽だし、POSIX原理主義はPOSIXに慣れている奴のポジショントークにすぎないと思うね
706
(1): (ワッチョイ d9e4-Xmag) 2022/10/31(月)20:46 ID:GzQExg5g0(3/10) AAS
>>693
gitのバージョン管理されているファイルツリーはdiffコマンドがそのまま解釈できるような形式でファイルシステム上に存在しないからファイル単位で変換して外部関数呼び出すとか馬鹿だな
さらにgit内部で保持されるファイルの差分情報をdiffの出力みたいな字句解析が必要なバイト配列で取り扱うのも馬鹿げてる
このファイル差分抽出は間違いなくgitの核心的機能これが無ければVCSとして機能しない
707: (ワッチョイ 6914-Tk+f) 2022/10/31(月)20:49 ID:oV1LtMOH0(19/19) AAS
>>705
POSIX原理主義者はPOSIXを理解してないよ。
708: (ワッチョイ d9e4-Xmag) 2022/10/31(月)20:55 ID:GzQExg5g0(4/10) AAS
>>698
-uをサポートする前は、patch作るなら-cのコンテクスト形式だろ
-cなら-uとハンクの精度は変わらん
709
(1): (ワッチョイ 497b-vCJ4) 2022/10/31(月)21:08 ID:J+3pjzxx0(16/22) AAS
>>706
そこら辺の機能はGit以前から完全に機能してるんだよ。
> diffが作られてしばらくは、ソフトウェアコードや技術文書のマークアップのソース部分の変更箇所を比較する、
> プログラムのデバッグ出力の検証、ファイルシステム中のファイル一覧の比較といった使い方が一般的であった。
> ed用の出力により、ファイルへの一連の変更をひとまとめにしてファイル容量を節約するというアイデアが出てきた。
> Source Code Control System(SCCS)はそのようなアイデアを実装したものとして1970年代後半に実装がなされた。
> 外部リンク:ja.wikipedia.org
省17
710: (ワッチョイ 497b-vCJ4) 2022/10/31(月)21:09 ID:J+3pjzxx0(17/22) AAS
Webの連中は馬鹿なのも事実だけど、馬鹿でも上手く行くように色々上手く出来てるのも事実なんだよ。
Cの連中は一度Webをやってみると凄く勉強になると思うよ。俺もそうだったし。
ただしWebはかなり糞なのも事実だが。
711
(1): (ワッチョイ d9e4-Xmag) 2022/10/31(月)21:15 ID:GzQExg5g0(5/10) AAS
>>709
マージやリベースでやってる差分抽出は最終段のI/Oじゃないし
C言語でシンプルに実装されてるgitをMSが作る馬鹿みたいに重いツールにしないでくれよ
712
(1): (ワッチョイ d9e4-Xmag) 2022/10/31(月)21:34 ID:GzQExg5g0(6/10) AAS
BitKeeperを元にGitを実装したリーナスはBitKeeper以前のVCSを糞みたいに言ってるんだよね
外部リンク[html]:ezoeryou.github.io
edとdiffを使ったようなVCSは眼中になかった
713
(1): (ワッチョイ 497b-vCJ4) 2022/10/31(月)21:39 ID:J+3pjzxx0(18/22) AAS
>>711
だから普通は、内部的に圧縮されたファイルへのアクセスは、
1. 単純にメモリ展開する
2. 何らかのプロキシオブジェクトでエミュレートする
のどちらかで、大概前者だしGitでもそうなってる。
だからここで速度低下とかは関係ない話だ。
(なお後者は/dev/zeroとか/dev/randomとかと言えば分かるだろう)
省7
714
(1): (ワッチョイ d9e4-Xmag) 2022/10/31(月)21:52 ID:GzQExg5g0(7/10) AAS
>>713
内部的に圧縮されたファイル?
「ファイルツリーはdiffコマンドがそのまま解釈できるような形式でファイルシステム上に存在しない」
これを勘違いしたのかな?
ファイルじゃなくてファイルツリーね
gitのディレクトリーのツリー構造を保持する方法独特だからその各ファイルをdiff取ってもらうためにツリーをtraverseするインターフェースを提供する必要が有る
ファイル単位の差分抽出なんて複雑な処理でもないんだからそれをやってもらうためにそれよりはるかに複雑なインターフェースを設計するとか無駄以外の何物でもないな
715
(1): (ワッチョイ 497b-vCJ4) 2022/10/31(月)21:54 ID:J+3pjzxx0(19/22) AAS
>>712
ただそれはedとdiffが問題だったわけではないだろうし、
仮にそうだったとしても、正しくソフトウェアを構成していればすぐに交換可能で、全く問題にならないんだよ。
その辺がソフトウェア階層の意識がないなあと思うところだよ。
Cはそういう世界でもあるけどさ。

edとdiffで展開するのが駄目なら、他方式の cat-file 階層に交換してしまえば何とでもなるんだよ。
Gitの方式が優れていれば、他VCSがGitの末端階層のI/Oコードを取り込めば済むだけ。
省7
716
(1): (ワッチョイ 497b-vCJ4) 2022/10/31(月)22:11 ID:J+3pjzxx0(20/22) AAS
>>714
ああ、ファイルと勘違いしていたのは事実だが、それでも意味は同じだよ。

> gitのディレクトリーのツリー構造を保持する方法独特だからその各ファイルをdiff取ってもらうためにツリーをtraverseするインターフェースを提供する必要が有る
勿論その通りだが、つまりこれはファイルシステムであって、その先に隠蔽出来るんだよ。
NTFSかext4かbitlockerを使ってるか圧縮DISKかをアプリは気にしないだろ。
それはOSがファイルシステムの違いを隠蔽してくれるから。これと同じ。
同様に、 cat-file で末端のファイルの形式の違いは隠蔽出来て、
省7
717
(3): (ワッチョイ d9e4-Xmag) 2022/10/31(月)22:17 ID:GzQExg5g0(8/10) AAS
>>716
cat-fileは単にblobの中身を表示するコマンドってだけで、逆をやるblobを作るコマンドが用意されてるわけじゃない
つまりここでソフトウェア的に階層がきれいに分かれてるわけじゃない
ここを置き換えて自由な圧縮アルゴリズムを使えるようになっていたとしたら
Libgit2 みたいな別実装のライブラリが出現する余地もなかっただろう
ここは変にインターフェース階層なんて用意しなくて正解
gitはツールであるとともにフォーマットでもあるんだよ
省1
718: (ブーイモ MMeb-wVCK) 2022/10/31(月)22:33 ID:DiR+92tnM(1) AAS
そう、このクレーマーはGitのデータモデルやデータフォーマットとしての側面を見落としてる
確固とした優れたデータモデルを持つってのは立派なUNIX哲学の一つなんだけどねえ
719: (ワッチョイ 8bbb-VzUj) 2022/10/31(月)22:39 ID:h5Hfu9WR0(6/9) AAS
>>715
いいから、お前に git は向いてないから消えろ。git は万人向けじゃない。
自分で納得がいくものを作ってそれを使え。
どうせ多人数がかかわるようなプロジェクトとかには縁がないだろから、一人で寂しく使ってろ。
720
(2): (ワッチョイ 497b-vCJ4) 2022/10/31(月)22:41 ID:J+3pjzxx0(21/22) AAS
>>717
> 逆をやるblobを作るコマンドが用意されてるわけじゃない
ではなくて、用意するんだよ。
そうすれば何でも簡単に出来るようになるだけ。
実際は内部的には持っててコマンドとして公開してないだけだから、実装は簡単だし。
まあ本当にソフトウェア階層の話が通じないので困るが、もう一度懲りずに繰り返してみる。

Cで言うと、printfの先はcrt.oに繋がってるだろ。
省10
721: (ワッチョイ 8bbb-VzUj) 2022/10/31(月)22:45 ID:h5Hfu9WR0(7/9) AAS
>>720
糞理論いいから、まずは作って見せろ。
722
(1): (ワッチョイ d9e4-Xmag) 2022/10/31(月)22:50 ID:GzQExg5g0(9/10) AAS
>>720
そんな入れ替え可能な階層分けが必要なら最初から全部C言語以外で作ればよかったんだよ
でもリーナスはC言語を選んでほぼunixシステムコールを直接叩く方式で実装した

hqなんかの方がお前の好みに近いだろうけど、hqは廃れてgit全盛となった
むかしはこのスレにもhq信者が盛んにチョッカイかけに来たもんだけど、いまは何してるんだろうな
723: (ワッチョイ 8bbb-VzUj) 2022/10/31(月)22:55 ID:h5Hfu9WR0(8/9) AAS
もはや名前すらちゃんと覚えてもらえてない hg さん。
724
(2): (ワッチョイ 497b-vCJ4) 2022/10/31(月)22:59 ID:J+3pjzxx0(22/22) AAS
>>717
あーだからな、フレームワークを一度使ってみれば勉強になると思うよ。

フレームワークは型に嵌められるのだけど、
その型はそれなりの奴が一生懸命考えた型だから、それなりなんだよ。
なるほどこうすればファイルもネットワークもDBも全部同じコードでいけるのか、とか分かるよ。

ファイルシステム構造も、末端のファイル自体も、
上位には関係ないように隠蔽出来るし、難しいことではない。
省4
725: (ワッチョイ 8bbb-VzUj) 2022/10/31(月)23:00 ID:h5Hfu9WR0(9/9) AAS
>>724
いいからお前は自分で作れ git 使う必要はないぞ
726
(1): (ワッチョイ d9e4-Xmag) 2022/10/31(月)23:25 ID:GzQExg5g0(10/10) AAS
>>724
結局gitがどういう方式で実装されているかなんてことよりファイルフォーマットの方が重要ってことだ
だからgitの実装とファイルフォーマットを切り離すようなインターフェース階層は必要無いしだれも実装しない
必要無いものを実装すれば余計なメンテの手間もかかる
727: (ワッチョイ 531d-rkLt) 2022/10/31(月)23:25 ID:Sz6pT8cp0(1) AAS
すごい勢いでスレ消費してるな…

>>676
1回のコミットで整理っていうのは、1つのコミットにまとめるってことかな?
それとも1回のコマンドで済ませたいってことかな(何度もcherry-pickしたくない)?

merge squashじゃあかんかね。
連続してない部分的なコミットをまとめるならrebase squashでもいいよ。
連続してないコミットなら、rebase -i使えばいいよ。いらないコミットはdropできるよ。
省1
728
(1): (ワッチョイ 497b-vCJ4) 2022/11/01(火)00:01 ID:Jzc3CN/20(1/8) AAS
>>726
ファイルフォーマットというか、
Gitのキモはオブジェクトをハッシュでツリーにして管理すれば全て行けたって事だろ。

そして末端のファイルはblobだけど(既に言ったが)ディレクトリやJSONでもいいし、
中間のファイルフォーマットも実はどうでも良くて、
結局はメモリ上のオブジェクトツリーをどうやってファイルシステムにマッピングするかでしかないんだよ。
traverseさえ出来れば何も問題ないわけでさ。
省17
729
(1): (ワッチョイ d9e4-Xmag) 2022/11/01(火)00:33 ID:kz7RaJ2H0(1/5) AAS
>>728
現状の.git/* の形式が十分にシンプル明解でこれが共通I/Fになっている
すでにこの共通I/Fに沿っていろいろな実装が存在している
結果これを変更するための内部的なI/F階層が必要とされていない
内部的な構造としてはそんなことよりSHA-1をSHA-256に変更することの方が重要で実験的実装が進んでいる
切り口が違うからお前の言うような階層をつくってもハッシュの形式の変更には対応できない
そんなくだらないことに割く労力は無い
730: (ワッチョイ a95f-Tk+f) 2022/11/01(火)00:33 ID:1wY/uhrP0(1) AAS
長いからまとめたよ。
「俺は実装しないけど、俺以外の誰かが俺の推測に沿うように実装しておくべきなんだ。俺は実装しないけど。」
731: (ワッチョイ 8b8f-5UCg) 2022/11/01(火)01:23 ID:ju8ytuSJ0(1/2) AAS
なんでgitの話でフレームワークの話が出て来んのかな
732
(1): (ワッチョイ 7997-uk66) 2022/11/01(火)01:46 ID:Mxyz6tUC0(1/2) AAS
無限の自由度の代わりに組み合わせ爆発が生じてエッジケースでバグが出まくり、というのは嫌だという設計思想なんじゃないかな
確かにWeb系でDIするのは当たり前だけど、RDBMSやビジネスロジック以外はトラブってもいいWeb系と違ってgitでトラブル続発したら困るし。
ファイルシステムみたいなものでは。
733
(1): (ワッチョイ 7997-uk66) 2022/11/01(火)01:52 ID:Mxyz6tUC0(2/2) AAS
あと大体git自体が膨大なLinuxカーネルのVCSとしてかなり高速に、確実に動作する必要があったという大前提があるだろう。
そこを無視して汎用的にはこっちの方がいいってのは違うんじゃないかな。
汎用的な用途としてのVCSが欲しいならばpost-gitを作るしかないと思うよ。
734: (ワッチョイ 8bbb-VzUj) 2022/11/01(火)02:08 ID:QdibabTL0(1/2) AAS
そもそも汎用性がある方が良いというのから幻想
道具は利用目的にあっているかどうかが全て十徳ナイフありがたがるやつは素人
735
(1): (ワッチョイ 497b-vCJ4) 2022/11/01(火)03:17 ID:Jzc3CN/20(2/8) AAS
>>729
それも根本的に間違ってる。
ハッシュはハッシュでレイヤーを切るから、正しく構成されてるソフトウェアなら、
ハッシュを変更するのはハッシュ生成関数内だけで済むんだよ。

具体的には、全体は get_hash() を呼んでハッシュを受け取るようにしておいて、
その get_hash() 内でSHA-1かSHA-256かmd5かを変更するだけにするんだよ。
というかこんなの当たり前すぎてお前らが理解出来てないのにびびる。
省12
736: (ワッチョイ 497b-vCJ4) 2022/11/01(火)03:19 ID:Jzc3CN/20(3/8) AAS
>>732,733
これをDIと呼ぶのか?はさておき、DIでバグが増えるなんて事はないよ。
そして、get_hash()でのオーバーヘッドは関数呼び出し一回でしかなく、
それで致命的に遅くなるなんて事もないよ。
というか、GitのマージってI/Oバウンドだと思ってるが違うのか?
737
(1): (ワッチョイ d9e4-Ojdt) 2022/11/01(火)03:55 ID:kz7RaJ2H0(2/5) AAS
>>735
ただ単純にハッシュアルゴリズムをSHA-1からSHA-256に変更するわけじゃないぞ
既存のSHA-1リポジトリも全部(リベース状態にすることなしに)SHA-256で運用できるようにしたりするんだよ
gitの開発はリポジトリのフォーマットの継続性をとても重視してる
738: (ワッチョイ 497b-vCJ4) 2022/11/01(火)08:06 ID:Jzc3CN/20(4/8) AAS
>>737
同じだよ。
正しく構成されてる場合は何種類混在しても全く問題ないし、簡単に変更可能だ。
つかマジでそれオブジェクト指向(OOP)の基本中の基本だから。

ただ、混在なら、Cで一般的に使われてるSIZEOFの#defineでは対応出来ないが、
Linusのコードなら、Cでは一般的に禁止されてる小文字マクロで
普通にそこら辺の関数もマクロだらけの可能性があり、(linuxカーネルコードがそう)
省5
1-
あと 264 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.032s