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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
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で変更したファイルを
一回のコミットで整理したいです。

git cherry-pick -n fromID..toID
などで整理しているのでしょうか?
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が
> マジで、Cを選択する理由が「何もなかった」としてもだ、C++プログラマー避けになるというだけで、Cを使う大義名分になる。
> 外部リンク[html]:cpplover.blogspot.com
と言ってるのは知ってるが。(しかもこれはGitの話らしい)
ちなみに俺はLinusの意見にも賛同する。プロジェクトに馬鹿が混入しないことは本当に重要なことだ。

ただ君と根本的に違うのは、「簡単は正義」と思ってることだ。
簡単に出来るのなら、簡単な方がいい。
馬鹿をふるい落とす為に敢えて難しい構造やコードにすることはない。
俺が見る限りLinusもそうしているわけではないが、君がそうしたいのは理解した。

まあ機会があれば実装して広めることになるかもしれない。
ただ俺は別のことをやろうとしてるから、Gitなんて動けば何でもいい程度でしかないので、優先順位は極めて低い。
あとたぶん、君は
> 文句言ってる暇があったらコード書いて変更した方が速い
の意味を誤解している。が、これは今言っても通じないと思う。
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したのだろうし、普通はこうすると思うけど。

別に実装すべきなのはフォーマッタで、--word-diffとかの部分だよ。
勿論GNUdiffに入れるのがベストだが、この辺は断られてもおかしくないし。
ただこれも人間用であって、マージする為に必要な機能部分ではないから、
君らから見てもGitではなくdiffに入れておけ、となるはずだが。

まあdiffに手を入れたくなるのは分かるが、それはソフトウェア開発ではやってはいけない方向で、
我慢してGNUdiffにcontributeしておく方が全体の長期的利益になるんだよ。
Gitがこの辺、アルゴリズムとViewをごちゃ混ぜに扱ってるのも気になる。
MVCとかまるで言われない世界ではあるけど、それでも基本として理解しておくべきだよ。
ビューを分離しておくことはものすごく重要だから。
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
このオプションが相当にヤバい。
これはデフォで

diff | less

となってる部分を、

diff --output-indicator-new='>' | less

とすれば幸せになれますよ、ということだが、これは

diff | sed 's/^\+/>/' | less

とすれば出来ることなので、gnuにこれを提案しても当然「そんなんイラネーよ」で終わってしまう。
Cで実装すべき案件ではないから。
そこで何故断られたのかを理解せず、だったらforkしますのノリなので、完全に無能の働き者だよ。
多分こいつらは本当にCしか書けない、Cしか知らない連中だ。
sed/awk/perl/python/rubyのどれかでも少しでも出来れば、この発想にはならない。
コントリビューターがこれを出してくるのも、メンテナがこれを止めないのも狂ってる。
プロジェクトにはいまだに正規表現を書けない老害しかいないと分かる。
だからこのオプションは、Linus的に言えば、常識的なプログラマー除けにはなってしまってるだろうよ。
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取るかすればいいだけでしょ。
正直、原因究明して小細工するより後者の方が断然楽なので、合理的判断ならそうしてると思うけど。

>>691
前後したが上記。

>>689
その内部でマージやリベースを行う為のdiffをGNUdiffのdllコールと置き換えて、
マージやリベースが動かなくなるかって話だよ。普通に動くと思うけど。
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でマージ出来る/出来ないにはならないだろ。
それは完全に人間用であってさ。
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
パッチファイルを受け取って
他の人がマージすることもあるだろ
ほーんと、しらんならだまっとけ
1-
あと 303 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.012s