[過去ログ]
Git 19 (1002レス)
Git 19 http://mevius.5ch.net/test/read.cgi/tech/1667720427/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
799: デフォルトの名無しさん (ワッチョイ 2bbb-8Zil) [sage] 2023/08/19(土) 15:41:12.22 ID:Af/nXbF+0 >>793 ぜんぜん分かってないな。例を挙げると A機能の追加 A機能のバグ修正 B機能の追加 A機能の変数名変更 B機能のスペルミス修正 C機能の追加 B機能のアルゴリズム変更 A機能のバグ修正 A機能とC機能の共通部分のくくり出し 共通部分を使うようA機能を変更 共通部分を使うようC機能を変更 C機能の拡張 C機能のコメントのタイポ修正 不要になったB機能の削除 A機能のコード整理 という作業を1日に手元でやって、15回のコミットがローカルブランチに入ってるとして、これを共有前に 共通部分の追加 A機能の追加 C機能の追加 という3回のコミットに直して、それぞれに丁寧なコミットログ書いて、こっちだけを共有するんだよ。他の人がレビューしたり再利用する時間が大幅短縮できる。 git ならコマンド1つでこの「直し」ができる。これをやらないのは、他人の時間を湯水のように使っても許されると思ってるバカだけ。 他でもやるべきだが、git みたいにコマンド一発とはいかないので超面倒。結局ぐちゃぐちゃなのが共有されたりする http://mevius.5ch.net/test/read.cgi/tech/1667720427/799
800: デフォルトの名無しさん (ワッチョイ 317b-vj3y) [sage] 2023/08/19(土) 16:15:13.73 ID:2LFpxJcr0 >>795 それ全部、ブランチ無くてもローカルでコピーすれば出来る案件だろ。 実際、git以前でも出来たけど、何故出来ないと思ってるの? お前、共有リポジトリを生でいじるガイジか? ブランチはある意味そういったコピー履歴/ドタバタ履歴をリポジトリ内に記録する為の機能であって、 後で改竄してそういったドタバタなんて無かったことにするのなら、必要ないんだよ。 最終状態のファイル群をmasterに繋げていけば済むんだから。そしてgitが推奨してるのはこれだろ。 >>797 > 禁止してるところはほとんど無い 綺麗な履歴なら、だろ。 そして>>799のように綺麗な履歴にするのがmustなんだろ。 俺が残したい履歴は > 結局ぐちゃぐちゃなのが共有されたりする(799) と表現されてる方だから、gitは俺には(と言うよりもコードを書く人にとっては)合わないし意味がない、というわけ。 (ただまあ《マージしかしない》Linusにとっては「ぐちゃぐちゃ」してる部分は意味がないのも事実なので、 《自分専用機を作っただけの》彼がこの機能を意図的に落としているように見えるが、 それにつき合わされてgitを崇拝してる連中は頭がおかしいとしか思えない。 お前にとって残したい履歴は何?という話) 逆にHgとかはこの「ぐちゃぐちゃ」な履歴を保持するポリシーなのかな? あちらは履歴の改竄は禁止だと聞いているので。 誰か知ってたら教えて。 http://mevius.5ch.net/test/read.cgi/tech/1667720427/800
801: デフォルトの名無しさん (ワッチョイ 2bcf-YAjS) [sage] 2023/08/19(土) 16:53:04.38 ID:ndraJbkl0 >それ全部、ブランチ無くてもローカルでコピーすれば出来る案件だろ。 だから何だというんだろう。ブランチ使わずにできるからコピーで頑張りましょうってか? http://mevius.5ch.net/test/read.cgi/tech/1667720427/801
802: デフォルトの名無しさん (ワッチョイ 2bbb-8Zil) [sage] 2023/08/19(土) 17:16:31.29 ID:Af/nXbF+0 >>800 ちゃんと調べたか? git も hg も同じだよ。そのためのローカルブランチなんだから どっちも共有リポジトリの改竄は禁止、やったやつは腹を切れ。ローカルはお前にしか影響ないんだから好きにしろ。 http://mevius.5ch.net/test/read.cgi/tech/1667720427/802
803: デフォルトの名無しさん (ワッチョイ 2bbb-8Zil) [sage] 2023/08/19(土) 17:25:39.06 ID:Af/nXbF+0 > お前にとって残したい履歴は何?という話) 結局、プログラムしたことないので個人で残したい履歴と、共有で残したい履歴は違うということが理解できないんだな。 タイポの修正履歴とかは他の人にとってはノイズでしかないので共有不要。自分の手元にだけ残っていれば良い。タイポ修正前のコードを見たいやつはいない。 多人数で開発する場合はノイズが少ないほど開発効率が上がるしバグも少なくなる。 http://mevius.5ch.net/test/read.cgi/tech/1667720427/803
804: デフォルトの名無しさん (ブーイモ MMb3-Xr9l) [sage] 2023/08/19(土) 17:58:00.64 ID:0srhzwdMM >>800 最終成果物としてマージする目的のブランチの他にも、まだ作業中で整理していないブランチもメインリポジトリで共有するぞ 作業方針をレビューする目的とか、お前みたいに口ばっかで全然作業が進まないやつをキツめにフォローする目的とかでな http://mevius.5ch.net/test/read.cgi/tech/1667720427/804
805: デフォルトの名無しさん (ワッチョイ 317b-vj3y) [sage] 2023/08/19(土) 21:34:40.48 ID:2LFpxJcr0 >>802 いや調べてない。以下読んだだけ。 > Mercurialは「履歴は永久的で神聖である」という哲学を持っていて、 > 履歴を操作するコマンドとしては1種類しかありません。 > その一方で、Gitは履歴を操作できる範囲が広いという違いがあります。 > https://tracpath.com/works/development/git-mercurial-subversion/ だから、多分、君らが思ってるほど同じじゃないんだよ。gitは履歴改竄する前提だ。 > どっちも共有リポジトリの改竄は禁止、やったやつは腹を切れ。ローカルはお前にしか影響ないんだから好きにしろ。 これは当たり前で、俺が言ってるのはこれではなく、 「ぐちゃぐちゃ」の履歴を保持する文化があるか、ということ。次レス以降参照 http://mevius.5ch.net/test/read.cgi/tech/1667720427/805
806: デフォルトの名無しさん (ワッチョイ 317b-vj3y) [sage] 2023/08/19(土) 21:36:21.23 ID:2LFpxJcr0 >>803 > 個人で残したい履歴と、共有で残したい履歴は違う > 自分の手元にだけ残っていれば良い これらはその通りだが、gitにはこれを残す方法が用意されてないだろ。(まあsvn等も同様だとも思うが) お前は一々別に残せと言うのか? 799通りやってたら既にそれがgitに記録されてるのに?(1回目) そして共有用に履歴を改竄して、(2回目) またどこか別にオレオレ用履歴を記録し直すなりしろと?(3回目) 三度手間だろ。 お前らの言う「グチャグチャな」履歴(1回目)を提出すれば(2回目)(3回目)はやらなくて済む作業だよ。 そしてそもそも履歴の哲学が間違ってる。 gitは「歴史か物語か」と嘯いてるが、これは90年代のPCが非力なときの思想であって、 履歴は「全部記録した上で表示時に間引く」と結論は出てて、他も全部そうなってるだろ。 (テキストで言えば>>logしてgrepする) 後になって確認するときにならないと、何が必要だったか分からないものだからだよ。 綺麗に改竄された履歴があったとして、仮に修正漏れがあったとき、 何故修正が漏れたのか、どこで対応し損ねたか、反省も出来ないだろ。 タイポの記録なんて馬鹿げてると思うのなら、タイポしないように注意しろという話であって、 タイポ記録まで含めて記録されてれば、 後から「ああ俺はあのときはこんなにタイポしてたのか、ずいぶんマシになったな」というのも分かるだろ。 小綺麗な記録だけ残ってても大して役に立たない。 記録は「できるだけ情報を削らない」のが大原則だ。 gitはこの辺が根本的に間違ってる。思想が古すぎる。 「歴史か物語か」は、適切にgrepする機構が足りてないのを誤魔化してるだけ。 それで騙されてるお前らはお花畑過ぎる。 http://mevius.5ch.net/test/read.cgi/tech/1667720427/806
807: デフォルトの名無しさん (ワッチョイ 317b-vj3y) [sage] 2023/08/19(土) 21:38:13.61 ID:2LFpxJcr0 >>804 それが技術的に出来るのはみんな知ってるよ。 問題は上述の通り、それをやったときに適切にgrepする機構がないから、 最初からgrepした結果になるように履歴を改竄した上でpushしろ、という文化な事。 マージするLinusの都合だけで作ってある。 だからコードを書く側の俺はgitには相当違和感があるし、 805内URLの人もそうだからMercurialとは違うと書いてるのだと思う。 そしてお前らにこの方面の感度が皆無なのは、お前らがコードを書いてないからだとも思う。 まあこれはいい。それで、 > まだ作業中で整理していないブランチもメインリポジトリで共有する で運用するとして、その先はどうするんだ? 整理したらブランチ消すのか?なら手間が増えてるだけだろ。 svnのブランチ、「ディレクトリがブランチになります!!!」と言い切るのはどうなのよ?とも思うが、 実際、svnなら中途半端なコードを各ブランチに上げられても他の人は全く手間は増えないよ。 のろま君が勝手にコピーしてろで終わりだ。 gitの場合は、のろま君をフォローする為に中央リポジトリが毎日更新されてた場合、 (大した手間ではないが)pushする前にまず中央リポジトリと同期しなければならなくなり、 のろま君の為に全員に手間が増えてる。 これは、分散型のgitで集中管理を行おうとしたから発生したオーバーヘッドであり、 集中型のsvnだったら発生しなかった手間だ。 だから当たり前だが、集中型の開発管理を行うのなら集中型のリポジトリの方が適切だということ。 そして大半のプロプライエタリは集中型の開発なので、ゲーム会社が積極的にgitに移行する理由がない。 (というか連中はここら辺のgitの問題を分かってるから移行してないと思うんだよ。 お前らみたいにgitを理解出来ないから移行出来ないのだ!とかいう、 「上から目線ガー」とかうるさい割には心の中では心底他人を馬鹿にしてるゆとりマインドでは理解不能かもしれんが) http://mevius.5ch.net/test/read.cgi/tech/1667720427/807
808: デフォルトの名無しさん (ワッチョイ 2b8f-mdXp) [sage] 2023/08/19(土) 21:45:36.49 ID:QQmUr01P0 コミットが開発プロセスの資産であることを本質的にわかってないんだろうね うちのプロジェクトのメンバーにもそういう人がいるんだよね 毎回説明しても理解してくれない… http://mevius.5ch.net/test/read.cgi/tech/1667720427/808
809: デフォルトの名無しさん (ワッチョイ 317b-vj3y) [sage] 2023/08/19(土) 22:22:25.04 ID:2LFpxJcr0 >>808 コードが資産で、コミットやgitでの管理は手段だよ。 それは典型的な手段の目的化であり、お前が間違ってる。 ユーザーが求めてるのは、新規機能の実装やバグの修正であって、 綺麗なcommit履歴のgitリポジトリではない。 と毎回説明しても理解してくれない…とそいつも思ってるだろうよ。 http://mevius.5ch.net/test/read.cgi/tech/1667720427/809
810: デフォルトの名無しさん (ワッチョイ 2bcf-YAjS) [sage] 2023/08/19(土) 22:41:56.92 ID:ndraJbkl0 >ユーザーが求めてるのは、新規機能の実装やバグの修正であって、 gitを使ってそれができているならなんの問題もないわけだがあんたはいったいなにを主張したいんだろうか http://mevius.5ch.net/test/read.cgi/tech/1667720427/810
811: デフォルトの名無しさん (ワッチョイ 2bbb-8Zil) [sage] 2023/08/19(土) 22:55:00.77 ID:Af/nXbF+0 >>806 >> 個人で残したい履歴と、共有で残したい履歴は違う >> 自分の手元にだけ残っていれば良い > これらはその通りだが、gitにはこれを残す方法が用意されてないだろ。 わざわざ消さなければ残っているのにどうして別の方法が必要なんだ? >履歴は「全部記録した上で表示時に間引く」と結論は出てて、他も全部そうなってるだろ。 お前の脳内結論とか持ってこられても開発効率は上がらないんだよ。複雑なバグの追跡やコードの再利用には綺麗な履歴が必須。 http://mevius.5ch.net/test/read.cgi/tech/1667720427/811
812: デフォルトの名無しさん (ワッチョイ 2b8f-mdXp) [sage] 2023/08/19(土) 22:57:43.95 ID:QQmUr01P0 >>809 なんで資産かどうかの話にユーザが出てくるんだよ もしかして資産は全てユーザに公開されるものだと思ってる?プロダクトの話ではなくて開発プロセスの資産の話だぞ http://mevius.5ch.net/test/read.cgi/tech/1667720427/812
813: デフォルトの名無しさん (ワッチョイ abe4-Xr9l) [sage] 2023/08/19(土) 23:16:41.01 ID:vl4t9mIK0 >>807 みんなは知ってる でもお前は知らなかった 複数履歴に跨るようなgrepもできるのをお前はしらない 知らないのはおまえだけ http://mevius.5ch.net/test/read.cgi/tech/1667720427/813
814: デフォルトの名無しさん (ワッチョイ 2bbb-8Zil) [sage] 2023/08/19(土) 23:17:28.06 ID:Af/nXbF+0 >>807 svn 使ったことないのに、知ってる風を装って語るので嘘杉て笑いが止まらない。 push する前に同期が必要なのが git commit する前に同期が必要なのが svn 理解できるかな? 無理だろうな。 http://mevius.5ch.net/test/read.cgi/tech/1667720427/814
815: デフォルトの名無しさん (ワッチョイ abe4-Xr9l) [sage] 2023/08/19(土) 23:19:47.05 ID:vl4t9mIK0 >>807 作業中のブランチをレビューするのにメインリポジトリで共有するのはそれが簡単だから レビューするのに最新の状態との同期とか必用無いし 作業前の状態との比較も簡単にできるし そのままで問題なさそうなら最終成果物としてマージできるように同期して調整するのも簡単 必要無くなったら消すのも簡単 お前の妄想する手間がかかるから無駄とかこの機能を使わない理由のなんの説明にもなっていない お前は理解できてないから手間がかかるとか無駄とか妄想を垂れ流す http://mevius.5ch.net/test/read.cgi/tech/1667720427/815
816: デフォルトの名無しさん (ワッチョイ abe4-Xr9l) [sage] 2023/08/19(土) 23:21:47.54 ID:vl4t9mIK0 >>814 いやgitはpushする前に同期は必須ではない 同期が必要な場合と必要でない場合を理解できて一人前 http://mevius.5ch.net/test/read.cgi/tech/1667720427/816
817: デフォルトの名無しさん (ワッチョイ 2bbb-8Zil) [sage] 2023/08/19(土) 23:38:08.78 ID:Af/nXbF+0 >>816 ごめん。何を言ってるのか分からない。まさか push -f しろと主張してるの? http://mevius.5ch.net/test/read.cgi/tech/1667720427/817
818: デフォルトの名無しさん (ワッチョイ abe4-Xr9l) [sage] 2023/08/19(土) 23:43:08.38 ID:vl4t9mIK0 >>817 オレが多分話の流れを読んで無いだけだと思うけど、push前に同期が必須かと問われたら 、同期が必須なのは他人がpushする可能性があるブランチだけと答える http://mevius.5ch.net/test/read.cgi/tech/1667720427/818
819: デフォルトの名無しさん (ワッチョイ 2bbb-8Zil) [sage] 2023/08/19(土) 23:51:47.78 ID:Af/nXbF+0 >>818 なら単に用語の問題だな git の push はブランチ単位での同期を要求する。push するブランチの同期が取れてるなら当然それ以上同期コマンドを実行する必要はない。 svn の commit はチェックアウトした範囲全体の同期を要求する。リポジトリ全体をチェックアウトしたなら全体の同期が必要。 まあどっちもとりあえずやってみて、失敗したら同期コマンド打てば良いだけだけどな http://mevius.5ch.net/test/read.cgi/tech/1667720427/819
820: デフォルトの名無しさん (ワッチョイ 317b-vj3y) [sage] 2023/08/20(日) 00:58:08.93 ID:Vn08TQPe0 >>813 では何故改竄された綺麗な履歴を欲しがる? 俺なら799の場合は 上側のドタバタ履歴全部+最終コミットのコメントを「AとCの機能追加、およびコード整理」 として実際の履歴で登録し、 masterにFFマージでこのドタバタ履歴が全部繋がってもgrepですっ飛ばせるのだから問題ないよね、 としたいが、実際はこれが出来ないから手動で改竄した綺麗な履歴を欲しがっているのではないのか? http://mevius.5ch.net/test/read.cgi/tech/1667720427/820
821: デフォルトの名無しさん (ワッチョイ 2bbb-8Zil) [sage] 2023/08/20(日) 01:06:37.87 ID:vNIwX77X0 >>820 じゃあ、ゴミログ残して、お前このあと C は必要だが A は別の機会にってなったときに簡単に対応できるか? 後から他人のゴミログ追いかけて必要な部分と不要な部分切り分ける手間暇馬鹿にならないし、ミスする確率も増える http://mevius.5ch.net/test/read.cgi/tech/1667720427/821
822: デフォルトの名無しさん (ワッチョイ abe4-Xr9l) [sage] 2023/08/20(日) 01:49:04.21 ID:st7HSyAz0 >>820 綺麗な履歴とお前の言うgrepが関係あるといのは、お前の思いこみ妄想 綺麗な履歴を作らないようなプロジェクトもたくさんある http://mevius.5ch.net/test/read.cgi/tech/1667720427/822
823: デフォルトの名無しさん (ワッチョイ d163-Wp5N) [sage] 2023/08/20(日) 04:04:05.06 ID:Qj2YxZj80 長文くんの考えは全部捨てずに突っ込んでおけば必要なものは探し出せるはずで 整理整頓なんか不要だし見た目が悪くても気にしないしそれで他の人が困ろうとどうでもいい というゴミ屋敷理論だからなあ http://mevius.5ch.net/test/read.cgi/tech/1667720427/823
824: デフォルトの名無しさん (ワッチョイ 317b-vj3y) [sage] 2023/08/20(日) 08:34:32.23 ID:Vn08TQPe0 >>821 簡単に対応する必要がないんだよ。 Cがmust、Aがオプションなら、最初から担当者にその旨伝え、分離した形で実装させなければならない。 それをせずに後付でAはやっぱり止めろ、と言うのはマネジメントの失敗であり、 担当者は適切な再実装時間を要求していい。 実際、799の場合なら、上側の実際の変更に6時間、 これを「清書」して下側の履歴に改竄するのに2時間といったところだろう。 「清書」しなくて良ければ次の仕事に取りかかれるので、この時点で効率が75%に落ちてしまっている。 25%も無能マネージャの尻ぬぐい保険に費やすのは馬鹿げている。 そして実際、殆どの場合は「やっぱAやめろ」なんて事にはならないし、 言われてから対応しても本修正(6時間)と同等の時間で対応出来るものだから、言われてからでいい。 事実としてAとC纏めて修正してしまったのだから、そのまま報告しとけ、でしかない。 >>823 「情報を落とすな」というセオリー通りだ。 > 開発プロセスの資産(812) が開発プロセスの改善を目指すものなら、なおのことだ。 マネジメントが無能で修正指示不足(例:上記の「分離」指示不足)による手戻りが多かった場合、 それがそのまま見える形で記録されてないと意味無い。 799の忖度で「マネジメントも僕の修正も完璧、イエーイ、パチパチパチ」と小綺麗に改竄された履歴からでは、何も改善出来ない。 http://mevius.5ch.net/test/read.cgi/tech/1667720427/824
825: デフォルトの名無しさん (ワッチョイ 317b-vj3y) [sage] 2023/08/20(日) 08:35:35.57 ID:Vn08TQPe0 >>822 そりゃ探せばあるだろうが、ここでの議論通り、gitでは「清書しろ」が多数派だろ。 この遠因になってるのは、適切なgrepが無く、クソ汚いcommit履歴が丸見えになってしまうからだ。 それを「歴史か物語か」という「選択」だと誤魔化すのは機能が足りてないから。 例えばcommitにレベルが付加されてて、799branchのコミットレベルは2、masterのコミットレベルは0としておけば、 master上に799のドタバタ奮闘記commitsがFFマージで連なっても、 レベル0だけを表示すればマージ人員用の小綺麗な履歴、 レベル2も表示すればパッチ作成者の実際の奮闘含めての履歴、が得られる。 改竄する必要もなく、情報も落としておらず、誰にも余計な手間がかからない。 gitにはこういう「こうすりゃ良かっただけだろ」的な仕様が全部抜け落ちてて、 全部マージ人員(=Linus)側に都合がいいだけの仕様になってる。 この違和感をお前らが感じないのは、お前らがコードなんて書いてないからだと思うぜ。 ついでに言うと「清書」されたcommitsが欲しければ、それはレベル1として「別パス」を「後付で」生成、 つまりスタート/エンドポイントが799branchと同じ、ただし途中の進行が違う別パスを「後付で」追加出来れば、 レベル0は淡々とした履歴、レベル1で修正内容が「清書」された履歴、レベル2で実際の履歴、が得られてみんな幸せだろ。 マネージャが無能でAは止めると確定してからレベル1の「清書」を作成だ。これが最大効率だ。 高い確率で必要ない「清書」を毎回ご丁寧にやる意味はない。 http://mevius.5ch.net/test/read.cgi/tech/1667720427/825
826: デフォルトの名無しさん (テテンテンテン MM4b-XafZ) [sage] 2023/08/20(日) 08:44:51.44 ID:fiK4YkusM マージ側に都合がいいというのは正しいかもね。日頃からその視点を持って作業したら。 http://mevius.5ch.net/test/read.cgi/tech/1667720427/826
827: デフォルトの名無しさん (ワッチョイ 2bbb-8Zil) [sage] 2023/08/20(日) 08:56:28.01 ID:vNIwX77X0 >>824 だから git 使えば清書は 10秒でできる。 2時間かけるのは馬鹿らしいって話。 http://mevius.5ch.net/test/read.cgi/tech/1667720427/827
828: デフォルトの名無しさん (アウアウクー MM8d-1fKg) [sage] 2023/08/20(日) 08:58:29.28 ID:rPtHvv2SM 長文さんは共同開発プロジェクトにgit使ったこと無いんじゃないかな。 むか〜しに共同開発プロジェクトに参画させてもらった記憶だけで長文書いてそう。 こんなごちゃごちゃ口だけやかましい奴はプロジェクト推進の邪魔だから当時退場させられたんだろう多分 http://mevius.5ch.net/test/read.cgi/tech/1667720427/828
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 174 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.017s