[過去ログ] Git 18 (1002レス)
上下前次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はゴミだったし死滅したよ)
それが問題なら、GitのC化ではなく、直接シェルの互換性を上げるのが常策だよ。
互換性がC化で達成出来るのなら、
既にあるbash(多分C)ソースをコンパイルしただけのものを同梱し、
gsh(=gitsh)だ!これを使え!と強弁すれば済んだろ。
なんかやっぱり無能の働き者を地で行ってる気はする。
仕事を減らす努力をしてないよね。
764: (ワッチョイ 497b-vCJ4) 2022/11/03(木)05:49 ID:AHw2USmo0(2/17) AAS
>>758
その通りだ。だからアマチュアの樋口Pも正しく対応出来てた。
だからこそ、このスレのこれまでのやりとりに驚いている。
今時初心者でも、他言語スレでもあり得ない流れだ。
で、パッチ出てきたけど、あれでは駄目だね。
彼等はC流のメモリ管理の方法を知らず、Gitは完全に糞コードで出来てる。
あれでは他にもメモリリークだらけだよ。
(ただこれも想定内っぽいし、
リークしたところでアプリとしては大した問題でもないのも事実だが)
彼等は、バグを直す努力はしているが、
バグが出にくいコードにする努力は全くしてない。
OOPもやりすぎると問題だが、何故彼等はそうするのかを学んで、
美味しいところだけ貰えばいいのにとは思うよ。
OOP原理主義者も、Gitプロジェクトやこのスレ民みたいなOOP排除原理主義者も、同様に問題だよ。
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著作本にあるらしいが、俺は読めてない)
しかしこのアプローチでは、絶対に浄化はしない。
自分の糞を片づけるのは仕方ないとして、
他人の糞を片づけたがる奴はいないし、そもそもその界隈が掃除に価値を置いてない。
しかし糞コードならどんどん投げてもらえるし、それらを受け入れる限り、進化が止まることもない。
はーなんだかねー。なるほど研究者と色々衝突するのも分かる気はする。
そういや大昔「伽藍とバザール」読んだなーと思って今読み返してみたが、これがバザールなのか?
(NGにかかったので分割した)
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の問題点を全て把握してたからいい仕様になった。
俺はそうじゃない。今の俺がやったら俺にとって都合がいいだけで、他にとっては糞な物にしかならない。
ただ実際はLinusもこれで、みんな乗り換えて来たから同じ問題を抱えていたんだろ、
という解釈らしいが、いずれにしても使い込んでる奴じゃないといい仕様には出来ないんだよ。
そして例のブランコ問題
> 顧客が本当に必要だったもの
> 外部リンク:dic.nicovideo.jp
もあり、顧客自身が実装してるんだから、そりゃ商用VCSでは絶望的に仕様的に太刀打ち出来ない。
そしてソースコード戦略も違う。Gitはコードレビューとか無い世界なんじゃないかな?
それで回るってのがスゲエが、多分これは「伽藍とバザール」の衝撃を追体験しただけなのだろう。
ソースコードを綺麗にしたら、新機能の追加が断然早くはなるけど、それは同じ人数での話で、
ここも手数で勝負だ!と来られたら、為す術もない。
ソースコードなんて糞でいいんだ、人数さえ有れば!では、研究者とは対立するよ。
なるほどエンジニアリングの天才だというのも納得ではある。
だからまあ、Gitを根本的に覆すにはGitよりも良い仕様が必要で、これは本当に難しいんだろうさ。
ところで、やはり俺のワークフローではIndexが邪魔なので削除しようと思うんだけど、
そもそもあれはどう使う為に設計されたものなのだ?
多分Indexの存在が一番直感的でなく、『説明されてないと』間違える所だと思うんだが。
今のところadd直後にcommitしてて、邪魔でしかない状態で使ってる。
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を取ってきてもちゃんと動く状態にするのが普通だから
これは俺の場合はちょっと違ってて、動かないのもcommitしてるしそれでいいと思ってるんだよ。
master/developブランチでは全部動くべきだけど、
featureでは途中のは動く必要ないし、動くようになったらdevelopにマージして消滅するんだろ?
なら特に問題ない気がする。
途中経過を記録してないことの方が問題で、記録しすぎてたら出力から間引けばいいだろ、というノリ。
だからdiffが画面1枚に収まらないようならcommitする感じ。
実際はbanchを使うのはこれからで、git flow を真似して上記のようにするつもりだが、何かまずいかな?
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の途中は動きませんと割り切るのが一番ましかと思ってる。
まあでもありがとう。
粒度調整の為ならこちらの予想の範囲内ではあった。
778(1): (ワッチョイ a95f-Tk+f) 2022/11/03(木)15:26 ID:O+O1uzzM0(1) AAS
>>777
> その場合にhash控えておくのが面倒だし、gcされてたらさらに面倒だし、gc切るのもまた邪道だろうしで、
N個前との diff は git diff HEAD~N でハッシュを控える必要もないし gc のくだりは何のこと言ってるのかわからない。
> 動かないのもcommitしてfeatureの途中は動きませんと割り切るのが一番ましかと思ってる。
ローカルブランチなら別に構わないけど、そのノリで作られたブランチをそのままレビューするのは効率悪い。
なのでマージ前のブランチをレビュー対象とする開発では push の際に整理することになるから、
都度整理の際にインデックスはとても有用。
他にも、作業中に全然関係ない typo 直したりするのにも使える。
779(1): (ワッチョイ 8bbb-VzUj) 2022/11/03(木)15:53 ID:HnXRQ5rf0(1) AAS
index の重要性が分からないやつが git 語ってて草。
素人向けに説明すると git の役目は他人に読んでもらうやすい分かり易いパッチを仕上げること。
個人で作る分にはそれほど関係ないが共同作業するには他人への分かり易さ、見た目は最重要といっていい。
料理に例えるならフライパンやまな板のまま出すんじゃなくて、皿に盛って食べ易くしてから出すのが基本。
ワークツリーがフライパンで、インデックスが皿。フライパンからでも直接食えるけど、綺麗に皿に盛って、そこで丁寧にチェックしてから提供すれば他人の作業効率が上がる。
780: (ワッチョイ 497b-vCJ4) 2022/11/03(木)16:18 ID:AHw2USmo0(9/17) AAS
>>778
> N個前との diff は git diff HEAD~N でハッシュを控える必要もないし gc のくだりは何のこと言ってるのかわからない。
(tutorial2を読んだだけの理解だから間違ってるかもしれんが、)
669で言ったように、Gitが分かりにくいのは業務プロセス名がコマンドに付いてるからだよ。
実際には、git add でスナップショットを取ってて、(←これが直感的に認識出来ない)
git commit でツリーの頭にそれを付け加えてるだけ。
だからaddしてないと付け加えるべきスナップショットがないからコケる。
それで、>>103-107、stashしてたら何処かに存在してるし、
実はaddした時点で保存されてるから、こちらもgcが行われる以前ならhashさえ分かれば引っ張ってくることが可能。
ただし次のaddでindex先が切り替えられてダングリングになり、gc対象になるから、
存在してるかどうかはgcの動作具合による。
(だから初心者向けには、git add でスナップショットが取れてるなんて死んでも言えないし、余計に分かりにくくなってる)
俺が粒度を上げるのなら、commitせずに複数回addする事になり、
2回以上前のはツリーから外されてるのでHEADからでは辿れない。(git fsckなら探せるはずだが)
だから動かない物もcommitしてHEADから辿れるようにしようとしている。
まあちょっと書き方が悪かったかもしれんが。
なので、実際の動作は git add 改め ss (take SnapShot)、git commit 改め relinkなのだけど、
ついでに relink もリストラして ss (git add -u; git commit) と ss -m "message" (git add -u; git commit -m "message")でいい。
これなら alias ss='git add -u; git commit' で済むし、
直感的になってアホでも使える。コミットメッセージが空なら動かない。
これが俺流の「勉強しなくていいGit」だよ。Indexよさらば。アホ向けGitこんにちは。
> マージ前のブランチをレビュー対象とする開発では push の際に整理することになるから
本体リポジトリとルールが違うと収まりが悪いのは了解した。
> 他にも、作業中に全然関係ない typo 直したりするのにも使える。
なるほどこれは微妙に便利かも。
(しかし俺流アホ向けgitでもこれは問題なく出来る。何せgitコマンドはスルーだからな)
781(1): (ワッチョイ 497b-vCJ4) 2022/11/03(木)16:20 ID:AHw2USmo0(10/17) AAS
>>779
いやレビュー対象はcommit済みで、index上ではないだろ。
782: (ワッチョイ 8b8f-5UCg) 2022/11/03(木)16:22 ID:5PP47Osh0(2/3) AAS
うんうんわかった
大人しくSVN使え
その方が君には向いている
783: (ワッチョイ d9e4-Ojdt) 2022/11/03(木)17:18 ID:NhDXzDSd0(2/3) AAS
>>781
779はindex上でレビューするんじゃなくて、indexにいれた状態にしてからdiff --cachedでcommit前の確認をするってことじゃない?自分もそれやるよ
上下前次1-新書関写板覧索設栞歴
あと 219 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.017s