[過去ログ]
Git 18 (1002レス)
Git 18 http://mevius.5ch.net/test/read.cgi/tech/1650651945/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
683: デフォルトの名無しさん (ワッチョイ 6914-Tk+f) [sage] 2022/10/31(月) 19:41:41.79 ID:oV1LtMOH0 え?まさかgit diffを差分を見るだけのツールだと思ってるの? http://mevius.5ch.net/test/read.cgi/tech/1650651945/683
684: デフォルトの名無しさん (ワッチョイ 6914-Tk+f) [sage] 2022/10/31(月) 19:42:41.80 ID:oV1LtMOH0 GNU diffに依存したら、GNU diffが使われないところで 動かないってわからんかなぁ diffは移植性低いんだよ? http://mevius.5ch.net/test/read.cgi/tech/1650651945/684
685: デフォルトの名無しさん (ワッチョイ 497b-vCJ4) [sage] 2022/10/31(月) 19:49:40.38 ID:J+3pjzxx0 ちなみに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. > https://www.git-scm.com/docs/git-diff このオプションが相当にヤバい。 これはデフォで diff | less となってる部分を、 dif
f --output-indicator-new='>' | less とすれば幸せになれますよ、ということだが、これは diff | sed 's/^\+/>/' | less とすれば出来ることなので、gnuにこれを提案しても当然「そんなんイラネーよ」で終わってしまう。 Cで実装すべき案件ではないから。 そこで何故断られたのかを理解せず、だったらforkしますのノリなので、完全に無能の働き者だよ。 多分こいつらは本当にCしか書けない、Cしか知らない連中だ。 sed/awk/perl/python/rubyのどれかでも少しでも出来れば、この発想にはならない。 コントリビューターがこれを出してくるのも
、メンテナがこれを止めないのも狂ってる。 プロジェクトにはいまだに正規表現を書けない老害しかいないと分かる。 だからこのオプションは、Linus的に言えば、常識的なプログラマー除けにはなってしまってるだろうよ。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/685
686: デフォルトの名無しさん (ワッチョイ 6914-Tk+f) [sage] 2022/10/31(月) 19:51:14.64 ID:oV1LtMOH0 git diffはパッチファイルを作るために利用されるし、 diffは環境依存するコマンドなんだから、 そんなのに依存したら、gitの移植性が低くなる 別の環境で実行したら、diffコマンドの出力がおかしくて 正しくパッチ当てられませんとかなったら困るやろ 常識で考えろや http://mevius.5ch.net/test/read.cgi/tech/1650651945/686
687: デフォルトの名無しさん (ワッチョイ 6914-Tk+f) [sage] 2022/10/31(月) 19:53:03.45 ID:oV1LtMOH0 >>685 > とすれば出来ることなので、gnuにこれを提案しても当然「そんなんイラネーよ」で終わってしまう。 あのさぁ、提案するのはGNUだけじゃだめだって理解してないの? http://mevius.5ch.net/test/read.cgi/tech/1650651945/687
688: デフォルトの名無しさん (ワッチョイ 497b-vCJ4) [sage] 2022/10/31(月) 19:53:31.39 ID:J+3pjzxx0 >>684 どういう意味? 少なくともどのプラットフォームにもdiffはあるだろ。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/688
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
690: デフォルトの名無しさん (ワッチョイ 699f-ZlL6) [sage] 2022/10/31(月) 20:00:09.03 ID:9mfNegYM0 ん? これはもしかして以前来てたPOSIX原理主義者氏か? http://mevius.5ch.net/test/read.cgi/tech/1650651945/690
691: デフォルトの名無しさん (ワッチョイ 6914-Tk+f) [sage] 2022/10/31(月) 20:00:09.25 ID:oV1LtMOH0 >>688 全部同じ実装じゃねーよ それぞれ全部細かい違いがある すべてのプラットフォームのdiffにまで対応するなんて 大変な作業なんて誰もやろうとは思わん http://mevius.5ch.net/test/read.cgi/tech/1650651945/691
692: デフォルトの名無しさん (ワッチョイ 6914-Tk+f) [sage] 2022/10/31(月) 20:01:01.17 ID:oV1LtMOH0 例えば2004年版のdiffには-uがないからな The Open Group Base Specifications Issue 6 https://pubs.opengroup.org/onlinepubs/009604499/utilities/diff.html http://mevius.5ch.net/test/read.cgi/tech/1650651945/692
693: デフォルトの名無しさん (ワッチョイ 497b-vCJ4) [sage] 2022/10/31(月) 20:02:19.83 ID:J+3pjzxx0 >>686 > diffは環境依存するコマンド は? まあ仮にそうだったとして、Git内のdiffがあらゆる環境で同じdiffを生成するように小細工してるとでも? ただまあこの場合、ぶっちゃけ、小細工出来る=原因が分かってる≒多分Intサイズとかの違い、だから、 リモートリポジトリのマージで(俺は実際何を送ってくるのか知らんが)diffを送ってくるのなら、 それはマージ時点で鯖に問い合わせてdiffで済むかファイル本体を送らせてローカルでdiff
取るかすればいいだけでしょ。 正直、原因究明して小細工するより後者の方が断然楽なので、合理的判断ならそうしてると思うけど。 >>691 前後したが上記。 >>689 その内部でマージやリベースを行う為のdiffをGNUdiffのdllコールと置き換えて、 マージやリベースが動かなくなるかって話だよ。普通に動くと思うけど。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/693
694: デフォルトの名無しさん (ワッチョイ 6914-Tk+f) [sage] 2022/10/31(月) 20:03:29.56 ID:oV1LtMOH0 > まあ仮にそうだったとして、Git内のdiffがあらゆる環境で同じdiffを生成するように小細工してるとでも? 同じdiffを生成するために、gitで実装してるんだろ 頭悪いのか? 依存ライブラリ(この場合はコマンドだが)を減らすのは 移植性を高めるための常識だ http://mevius.5ch.net/test/read.cgi/tech/1650651945/694
695: デフォルトの名無しさん (ワッチョイ 6914-Tk+f) [sage] 2022/10/31(月) 20:04:11.62 ID:oV1LtMOH0 OSの標準コマンドに依存したら 移植性は低くなるんだよ 常識やろ http://mevius.5ch.net/test/read.cgi/tech/1650651945/695
696: デフォルトの名無しさん (ワッチョイ 497b-vCJ4) [sage] 2022/10/31(月) 20:08:10.94 ID:J+3pjzxx0 >>692 > ユニファイド形式diffを最初に開発したのはウェイン・デイヴィソンで、 > 1990年8月のことであった(comp.sources.miscのVolume 14にunidiffとして投稿)。 > リチャード・ストールマンがGNUプロジェクトのdiffコマンドにこの機能を1ヶ月後に加え、 > 1991年1月リリースのGNU diff 1.15から使えるようになった。 > https://ja.wikipedia.org/wiki/Diff ただそれ以前に、-uがある/ないはGitでマージ出来る/出来ないには
ならないだろ。 それは完全に人間用であってさ。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/696
697: デフォルトの名無しさん (ワッチョイ 497b-vCJ4) [sage] 2022/10/31(月) 20:10:05.98 ID:J+3pjzxx0 >>694,695 だからファイル本体をダウンロードして、mergeするマシン上でdiff取ればいいだけだろ。 これでマシン依存をなくせるし、普通の実装だよ。 通じないのか?どうもお前の書き込みは頭が悪そうだし。ならここら辺で切り上げるが。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/697
698: デフォルトの名無しさん (ワッチョイ 6914-Tk+f) [sage] 2022/10/31(月) 20:15:24.67 ID:oV1LtMOH0 >>696 -u がないとハンクの精度が下がるだろ ほんとしらんならだまっとけよ http://mevius.5ch.net/test/read.cgi/tech/1650651945/698
699: デフォルトの名無しさん (ワッチョイ 6914-Tk+f) [sage] 2022/10/31(月) 20:15:53.77 ID:oV1LtMOH0 >>697 パッチファイルを受け取って 他の人がマージすることもあるだろ ほーんと、しらんならだまっとけ http://mevius.5ch.net/test/read.cgi/tech/1650651945/699
700: デフォルトの名無しさん (ワッチョイ 6914-Tk+f) [sage] 2022/10/31(月) 20:16:36.27 ID:oV1LtMOH0 >>696 他のOSで使えるとは限らんだろうが GNUしか頭にないんか http://mevius.5ch.net/test/read.cgi/tech/1650651945/700
701: デフォルトの名無しさん (ワッチョイ 497b-vCJ4) [sage] 2022/10/31(月) 20:38:58.71 ID:J+3pjzxx0 >>690 違うし、565からの議論は俺にとっては一部意味不明だが、正直相当不毛なのは分かる。 それはGitの構造が糞だからだ。 結局のところGitはファイルシステム上のblobツリーを管理するツールでしかない。 そしてblobが気に入らないのなら、テキストにしてしまえばいいだけで、それもまたGitでしかない。 これを理解出来ない馬鹿同士で議論してて空回りしてるだけのように見える。 具体的には、git cat-fileがblob読み出しで、対になる書き
込みツールもあるはずだが知らないが、 それらを個別に交換出来れば何とでもなるだけ。PHPで一般的に使われてるPDO方式だが、 要は最終段のI/Oだけは各種取りそろえて、切り替えれば何でも出来る構造にする。つまり、 Git謹製の cat-file バイナリ:Git純正blob形式 オレオレバイナリかシェルスクリプト: Git謹製blobファイルの名前でディレクトリを作り、 その中に自分の好きな形式で突っ込んでおけばいいだけ。 XMLでもJSONでも、ただのテキストでもいい。 それらがssh用ならリモートリポジトリを読むし、DB用ならDBに格納されることになる。 最終
段のI/Oを読み書きセットで交換してしまえば、その上のコードは全く同一でいけるんだよ。 繰り返すが、PHPやWebの連中は常識的にこれをやってる。(理由は複数のDBに対応する為) それをsshは別に実装してるようだし、方針自体がかなり狂ってるよ。 LinusもDBに入れてるのを糞に言ってるが、保存先は本質ではないし、 適切なアーキテクチャであれば簡単に交換可能なものだ。 だから本来、こんな議論が発生する余地もないのだけど。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/701
702: デフォルトの名無しさん (ワッチョイ 6914-Tk+f) [sage] 2022/10/31(月) 20:39:57.17 ID:oV1LtMOH0 >>701 > それはGitの構造が糞だからだ。 結論ありきで理由を探すな お前はクソな理由を一つも言っていない http://mevius.5ch.net/test/read.cgi/tech/1650651945/702
703: デフォルトの名無しさん (ワッチョイ 6914-Tk+f) [sage] 2022/10/31(月) 20:40:47.45 ID:oV1LtMOH0 以前来てたPOSIX原理主義者氏ではなく また別のPOSIX原理主義者氏のようだなw http://mevius.5ch.net/test/read.cgi/tech/1650651945/703
704: デフォルトの名無しさん (ワッチョイ 6914-Tk+f) [sage] 2022/10/31(月) 20:41:49.56 ID:oV1LtMOH0 自分が認めているもの以外「全部方針が狂ってるよ」 その理由は、自分が認めていないからだよ 世界が認めていても 「俺が認めていないから世界の方が狂ってるんだよ!」 http://mevius.5ch.net/test/read.cgi/tech/1650651945/704
705: デフォルトの名無しさん (ブーイモ MMeb-uk66) [] 2022/10/31(月) 20:45:31.00 ID:GrGctmUAM POSIX原理主義はWindowsでの開発がめんどくさくなるんで本当に嫌いだわ あと今更awkやsedの読みづらい文法覚えるより他のスクリプト言語で書いた方が楽だし、POSIX原理主義はPOSIXに慣れている奴のポジショントークにすぎないと思うね http://mevius.5ch.net/test/read.cgi/tech/1650651945/705
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
707: デフォルトの名無しさん (ワッチョイ 6914-Tk+f) [sage] 2022/10/31(月) 20:49:18.25 ID:oV1LtMOH0 >>705 POSIX原理主義者はPOSIXを理解してないよ。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/707
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
709: デフォルトの名無しさん (ワッチョイ 497b-vCJ4) [sage] 2022/10/31(月) 21:08:17.57 ID:J+3pjzxx0 >>706 そこら辺の機能はGit以前から完全に機能してるんだよ。 > diffが作られてしばらくは、ソフトウェアコードや技術文書のマークアップのソース部分の変更箇所を比較する、 > プログラムのデバッグ出力の検証、ファイルシステム中のファイル一覧の比較といった使い方が一般的であった。 > ed用の出力により、ファイルへの一連の変更をひとまとめにしてファイル容量を節約するというアイデアが出てきた。 > Source Code Control S
ystem(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知ってればそうはならない。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/709
710: デフォルトの名無しさん (ワッチョイ 497b-vCJ4) [sage] 2022/10/31(月) 21:09:37.44 ID:J+3pjzxx0 Webの連中は馬鹿なのも事実だけど、馬鹿でも上手く行くように色々上手く出来てるのも事実なんだよ。 Cの連中は一度Webをやってみると凄く勉強になると思うよ。俺もそうだったし。 ただしWebはかなり糞なのも事実だが。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/710
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
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 290 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s