[過去ログ] Git 18 (1002レス)
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
739: (ワッチョイ 497b-vCJ4) 2022/11/01(火)08:06 ID:Jzc3CN/20(5/8) AAS
と書くと意味不明だが、この場合は要は貰ったポインタを一々投げ返して操作してもらう。
具体的には、

Hash* hp = get_hash(myObject); // myObjectからHashを生成して貰う、Hashの実体は何か知らない
Stream* sp = traverse(hp); // hashをtraverseに投げてstraem的な何かを示している末端のポインタを貰う、traverseはtraverse出来る何か、ファイルかDBかssh先のストレージか知らんが、とにかくtraverse出来る何かをtraverseして、末端のポインタを返す
GitObject* go = cat_file(sp); // cat_fileに末端のポインタを渡して、GitObjectを貰う

とする。これをOOP文法(Cにはないが)で一般的にはメソッドにして、

Hash* hp = get_hash(myObject); // 管理するのはhashのポインタのみ、中身は知らない
省14
740: (ワッチョイ 497b-vCJ4) 2022/11/01(火)08:51 ID:Jzc3CN/20(6/8) AAS
補足。

分からなければ「OOP 抽象化」でググって色々読んでみてくれ。
死ぬほどでてくるはず。マジで基本中の基本だから。
ハッシュを交換することに手こずるようなら、その『コード』は間違いなく糞だ。(Git自体が糞と言っているわけではない)
ただ、修正すればいいだけ、要は漏れなく上記のようにしてしまえばいいだけではあるが。

正しく構成すれば、Hash変更なんて簡単に出来るし、
そもそもそうなってないコードなんてOOPでは存在を許されてない。
省2
741
(1): (ワッチョイ d9e4-Xmag) 2022/11/01(火)09:16 ID:kz7RaJ2H0(3/5) AAS
長々とご苦労さんだがお前SHA-256対応の意味が理解できてないよ
742
(1): (ワッチョイ 497b-vCJ4) 2022/11/01(火)09:26 ID:Jzc3CN/20(7/8) AAS
>>741
俺は以下記事の理解書いてる。
俺が書いた事の意味が分からないのは君の問題。
外部リンク:www.infoq.com
ただ、初めてOOPを示されていきなり意義を理解出来る奴はほぼ居ないのも事実。
でも、君は確実に老害扱いされてると思うよ。
743: (ワッチョイ f15f-iYvO) 2022/11/01(火)09:32 ID:WFTKMpG40(1) AAS
なんだか知らんけど5chでうだうだ言ってて何になるの
744
(1): (ワッチョイ d9e4-Xmag) 2022/11/01(火)09:36 ID:kz7RaJ2H0(4/5) AAS
>>742
君はその記事の意味することを理解できてないね
コミットオブジェクトの構造とか役目を理解出来てないと難しいかもしれない
745
(2): (ワッチョイ 497b-vCJ4) 2022/11/01(火)09:57 ID:Jzc3CN/20(8/8) AAS
>>744
そう思いたいんだろうけど、残念ながらそうじゃない。

少なくとも君はソフトウェア階層やOOPの基本事項について全く理解出来てない。
だから今、老害と言われ続けるか、再び学び直して熟練者と言われるかの分水嶺にいるだけ。
俺は君に何も強制することは出来ないが。

確かに俺はGit初心者なので、記事の理解は間違ってるかもしれない。
でも、ハッシュの中身や長さが変わったり混在したところで、
省4
746: (ワッチョイ 8b8f-5UCg) 2022/11/01(火)10:12 ID:ju8ytuSJ0(2/2) AAS
> GITは、すべてのファイルオブジェクトとコミットの識別と整合性チェックをSHA-1に強く依存しています
こう書いてあるのになんで無視するんだろう
747
(1): (ワッチョイ d9e4-Xmag) 2022/11/01(火)10:29 ID:kz7RaJ2H0(5/5) AAS
>>745
数行で対応w
それが出来ないgithubは無能集団なんですねw
糞MSに買われちゃうぐらいだから仕方ないか
748: (オッペケ Src5-8VyY) 2022/11/01(火)12:34 ID:lDKItQe4r(1) AAS
Git初心者に語らせると頓珍漢な文章が生まれるという好例
749
(1): (ワッチョイ 8bbb-VzUj) 2022/11/01(火)12:39 ID:QdibabTL0(2/2) AAS
>>745
お前日本語読めなさそうだな
ましてやリンク先にある英語とかかけらも理解できてないだろ
混在とかじゃないぞ。二つを同時につけて「安全」に相互変換するということだぞ
安全にすることが目的でSHA-256を使えば解決みたいな話じゃない
お前みたいなのが目的と手段を取り違えるタイプの典型
OOPとかアホなプログラマでも理解できる単純なことなわけないだろ
省3
750: (ワッチョイ 699f-1Eu/) 2022/11/01(火)18:29 ID:/+vO/8+o0(1) AAS
長文すげー
751: (ワッチョイ 497b-vCJ4) 2022/11/02(水)05:40 ID:n+gr/3CY0(1/2) AAS
>>749
どうであれ同じだよ。

複数付けようが、何をどう組み合わせようが、
抽象化の向こうの実体については知らないし、取り扱うコードも存在してないから、
同じバイナリで動作するんだよ。それが抽象化と隠蔽で、これはOOPの基本中の基本。
752: (ワッチョイ 497b-vCJ4) 2022/11/02(水)05:41 ID:n+gr/3CY0(2/2) AAS
んー、お前ら完全に化石だわ。若い奴からは確実に馬鹿にされてるよ。
というか、現在において有名OSSにこんな化石居住区が存在してたことにびっくりだわ。

>>747
数行ってのは誇張ではなく、実際にそんなもんなんだよ。
例えばMMDは3DVision対応に20-30行と言ってるが、
> そのため、樋口氏がMMDの3D Vision対応に要したのは、20~30行程度の簡単なコーディングのみだった。
> 外部リンク[html]:pc.watch.impress.co.jp
省19
753: (ワッチョイ c114-Tk+f) 2022/11/02(水)06:01 ID:z+vraLDY0(1/2) AAS
> これは特殊ケースではなく、こうなるように設計するんだよ。
> これに対してGitはマニュアル見てもそういう思想が全く見あたらず、「頑張ればいいよね」で終わってる。

それあなたの感想ですよね?
gitはソースコード1行程度で変更終わりですよ
754: (ワッチョイ c114-Tk+f) 2022/11/02(水)06:03 ID:z+vraLDY0(2/2) AAS
> 実装で一番簡単な方法は、Gitをバックエンドに使ってシェルスクリプトでラップすることだよ。これらは既に言ったが。

シェルスクリプトは移植性低いって分かってる?
シェルスクリプトでラップしようものなら
Linuxでは動くがFreeBSDでは動かないってことが
しょっちゅう発生する

シェルスクリプトで頑張るものじゃない
755
(1): (ワッチョイ d9e4-Xmag) 2022/11/02(水)07:01 ID:S2ENS6Jw0(1) AAS
git の一部機能は git コマンドを使ったスクリプトで実装されていたんだけど、多くのユーザーの要望に応える形でそれらのC言語化進めてる
756: (JP 0H8d-8VyY) 2022/11/02(水)09:34 ID:33j+wJW8H(1) AAS
シェルでラップw
USPから悪い影響でも受けたか?
757: (ワッチョイ 8bbb-VzUj) 2022/11/02(水)10:35 ID:sFE/M4aa0(1) AAS
OOPなんて初心者プログラマ訓練ギブスってことを理解できなくてアホ理論展開しているやつがいてw
758
(1): (ワッチョイ fb66-Q7eZ) 2022/11/02(水)14:42 ID:LlnSL/r70(1) AAS
OOPなんか、そん辺のサンデープログラマでもかなり深い所までメリットデメリット含め浸透してるがな。
関数指向やクロージャがある言語も同様で
もはや当たり前のようにハイブリッドになってて一部の原理主義者以外いい塩梅で使ってるから話題にはならん。
759: (オッペケ Src5-5UCg) 2022/11/02(水)15:33 ID:4T0OIw/dr(1) AAS
OOPそれほど語るなら、お前の大好きなシェルスクリプトはみんなOOP意識して作られてるのかって感じだな
760: (ブーイモ MMdd-ntN1) 2022/11/02(水)18:08 ID:mw55lzgRM(1) AAS
リーナスを中心としたOSSコミュニティの起源にタネンバウムとのモノリシックカーネル・マイクロカーネル論争があることを知らないのかな?
結果として無駄な抽象階層を積み重ねることの無意味さをLinuxカーネルの成功が証明してしまった
もちろんLinuxカーネルもファイルシステムとか必要なとこは抽象化されてるけどね
761: (ガックシ 06dd-uk66) 2022/11/02(水)18:41 ID:1AIcQZnX6(1) AAS
今どきの若い奴(というか最新の風潮)ってなんでもかんでもオブジェクト指向を徹底するって感じじゃないと思うけどなあ
それこそオブジェクト指向主義みたいなのが滅茶苦茶強かったのって20年前ぐらいじゃない?
WindowsもNTでマイクロカーネルにしたけどオーバーヘッドデカすぎて一部はカーネル空間に戻したりしたでしょ。
SIerの階層が深い開発なんかだとオブジェクト指向を徹底しないと事故が起こりそうだけど、そういうとこしか知らない人間なのか?
762: (オッペケ Src5-8VyY) 2022/11/02(水)22:26 ID:KtYxSAYnr(1) AAS
何でもかんでもシェルでやろうとするやつは病気
名前を呼んではいけないあの開発手法とか推してそう
763
(2): (ワッチョイ 497b-vCJ4) 2022/11/03(木)05:47 ID:AHw2USmo0(1/17) AAS
>>755
それはどのプラットフォームで問題になったの?
賢い選択とは思えないけどね。
具体的なデメリットは既に666で挙げたとおり。

俺はシェルの互換性問題なんて有ったとは思えないけど、
(昔からsh《bsh》は互換性は高かったし、今はその後継のbashで統一されてる。
ああ確かにcsh/tcsh/ksh/zshはゴミだったし死滅したよ)
省6
764: (ワッチョイ 497b-vCJ4) 2022/11/03(木)05:49 ID:AHw2USmo0(2/17) AAS
>>758
その通りだ。だからアマチュアの樋口Pも正しく対応出来てた。
だからこそ、このスレのこれまでのやりとりに驚いている。
今時初心者でも、他言語スレでもあり得ない流れだ。

で、パッチ出てきたけど、あれでは駄目だね。
彼等はC流のメモリ管理の方法を知らず、Gitは完全に糞コードで出来てる。
あれでは他にもメモリリークだらけだよ。
省7
765: (ワッチョイ 497b-vCJ4) 2022/11/03(木)06:07 ID:AHw2USmo0(3/17) AAS
ただ見る限りGit界隈は密結合主義のようだ。
つまり、Gitと知識的に密結合した、Gitに詳しい奴だけがGitを使うべきであり、
tutorial1が基本コマンドなら普通はtutorial2は応用コマンドのところ、
なんと内部データ構造の紹介になってるし、
(ただこれは俺には極めて有効に作用したが、普通はブーイングの嵐だろう)
766: (ワッチョイ 497b-vCJ4) 2022/11/03(木)06:07 ID:AHw2USmo0(4/17) AAS
ソースコードも密結合、これは馬鹿除けだ!と言い放つ。
糞コードでもパッチの手数で勝負だ!カリスマLinusならモグラ叩き志願者は無限に募れる!
とまあ、他の誰も出来ないアプローチだね。
ただまあ、ソースコードを清潔に保つ目的は長期的メンテの為であり、
それは実際出来てるしいいだろ、と言われれば、はーそうですねー(棒)だが。
767: (ワッチョイ 497b-vCJ4) 2022/11/03(木)06:07 ID:AHw2USmo0(5/17) AAS
これ見てたら、buggyな糞コードでもとりあえず動けば受け入れてどんどん改訂し、バグもパッチの手数で勝負するのと、
普通のプロジェクトがやってる、レビューして駄目なコードは最初からrejectするのと、
(つまり手間をかけてもrejectされる可能性があるからコードを投げるのを躊躇される)
どっちが良いのだろう?とは考えさせられるよ。
リソースが無限にあるOSSでは、前者の方がいいのだろうか?
LinusはBillJoyに対して「オープンソースを理解してない」と思ったらしいが、こういう事なのだろうか?
(この発言はLinus著作本にあるらしいが、俺は読めてない)
省7
768
(1): (ワッチョイ d9e4-Ojdt) 2022/11/03(木)10:41 ID:NhDXzDSd0(1/3) AAS
それだけ文句あるなら本家MLで言うか自分で作り直してみろよ軍師様
これだけ大口叩いておいて英語のMLでコミュニケーションとれないとかだったら笑うが
Git は世界中のプログラマが使ってる最重要プロジェクトで、これが改良されるとなれば世界中から絶賛される
769: (ワッチョイ 699f-1Eu/) 2022/11/03(木)10:46 ID:odT0DHDr0(1) AAS
まだやってのか
暇そうだな
770
(1): (ワッチョイ 497b-vCJ4) 2022/11/03(木)13:22 ID:AHw2USmo0(6/17) AAS
>>768
それは無理だね。
仮に時間が十分にあったとしても、俺が改善出来るのはソースコードであって、アプリではない。
アプリの改善には良い仕様にする事が最も重要で、実装は実は大した問題ではない。
(使う分には十分に動けばなんでも良くて、それが糞コードで出来てたから何?でしかない)

GitはLinus本人が当時のVCSの問題点を全て把握してたからいい仕様になった。
俺はそうじゃない。今の俺がやったら俺にとって都合がいいだけで、他にとっては糞な物にしかならない。
省17
771
(1): (ワッチョイ 7997-uk66) 2022/11/03(木)13:30 ID:9oLRzF140(1/4) AAS
index stageなかったら複数ファイルの変更を一度にcommitできないじゃん。コミット粒度の問題から、全部の変更をcommitしたいわけでもないし。
どのcommitを取ってきてもちゃんと動く状態にするのが普通だからどう考えてもいるでしょ。
772: (ブーイモ MMeb-ntN1) 2022/11/03(木)13:52 ID:/4IN/B1bM(1) AAS
indexの意味がわかってない馬鹿が全然関係無いファイルをコミットしてリポジトリをブチ壊す
773
(1): (ワッチョイ 497b-vCJ4) 2022/11/03(木)14:35 ID:AHw2USmo0(7/17) AAS
>>771
> index stageなかったら複数ファイルの変更を一度にcommitできないじゃん。
いや普通に出来るよ。曖昧だったが、俺は git add -u; git commit -m "message"; で使ってる。

以降はワークフローの話だからどちらが正しいとかいう事ではないが、
> コミット粒度の問題から、全部の変更をcommitしたいわけでもないし。
これは若干邪道というか基本的に全部commitするものだろうし、commitしてから前に進めばいいだけで、

> どのcommitを取ってきてもちゃんと動く状態にするのが普通だから
省7
774: (ワッチョイ 8b8f-5UCg) 2022/11/03(木)14:40 ID:5PP47Osh0(1/3) AAS
git分からない思想も理解できないならSVN使えば?
775
(1): (ワッチョイ 7997-uk66) 2022/11/03(木)14:46 ID:9oLRzF140(2/4) AAS
>>773
そりゃgitの設計思想で想定されたコミットの仕方をしていないからindex stageがいらないと感じるだけでしょ。
大多数は設計思想通りに使っているので、index stageが必要だと理解していると思うよ。
だから、「どう使うために設計された」かと聞かれれば、gitの思想通りにコミット粒度を適度に保つためだとしか言いようがない。
「俺は違うから俺はいらない」はそれはそうだろうが、だから何?って話になる。
776: (ブーイモ MMeb-ntN1) 2022/11/03(木)15:04 ID:jVDh6EB5M(1) AAS
適当なタイミングで時系列に修正を記録していくものだと思ってる阿保には理解できないVCS
777
(1): (ワッチョイ 497b-vCJ4) 2022/11/03(木)15:05 ID:AHw2USmo0(8/17) AAS
>>775
git add -u を複数回して粒度を上げて動くものだけcommitしてもいいのだけど、
俺の場合は10回に1回程度は2-3回前の変更とdiff取った方が見やすいことがあって、
その場合にhash控えておくのが面倒だし、gcされてたらさらに面倒だし、gc切るのもまた邪道だろうしで、
動かないのもcommitしてfeatureの途中は動きませんと割り切るのが一番ましかと思ってる。

まあでもありがとう。
粒度調整の為ならこちらの予想の範囲内ではあった。
1-
あと 225 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.030s