1 名前:デフォルトの名無しさん [2022/11/06(日) 16:40:27.51 ID:az1H5JFk0.net] ソースコード管理を行う分散型バージョン管理システム、Gitについて語ろう。 Git - Fast Version Control System git-scm.com/ ◆関連サイト Pro Git - Table of Contents git-scm.com/book/ja Git入門 www8.atwiki.jp/git_jp/ ◆前スレ Git 17 https://mevius.5ch.net/test/read.cgi/tech/1599016710/ Git 18 mevius.5ch.net/test/read.cgi/tech/1650651945/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
48 名前:デフォルトの名無しさん mailto:sage [2022/11/08(火) 10:35:58.86 ID:jk+PH9G/0.net] https://github.com/Byron/gitoxide 誰かやるかなあと思ったらやっぱりいた
49 名前:デフォルトの名無しさん mailto:sage [2022/11/08(火) 17:23:38.36 ID:LFTDtpXpr.net] >>45 なんの例えにもなってない 具体的に書けばいいのに
50 名前:デフォルトの名無しさん (ワッチョイ debb-qVfh) mailto:sage [2022/11/09(水) 02:28:31.49 ID:zaNhnmv/0.net] >>49 git の人気が悔しくて悪口書きにきてるだけだから具体例とか出るわけないよ。
51 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 06:24:34.62 ID:raFZ+G/S0.net] >>48 トップページだけ見る限り、そのeinが俺が欲しいものに近い。(のだろう) ただRustだからな~。今Rustって原理主義者が集まってて面倒な感じなんだよ。
52 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 06:25:32.42 ID:raFZ+G/S0.net] >>49 ,50 一対一対応してて、割と具体的だぞ。 興味あるなら見比べてみ。
53 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 06:27:44.26 ID:raFZ+G/S0.net] >>46 そうやって無駄に煽ってネット上の善意を吸収/浪費してきたのだろうよ。 コードクレクレ君は死ね。 (ただ本当に、誰でも書けるレベルのコードすら書けてないことをGit陣営は自覚した方がいい。 というか、書けない、ではなく、書かない、に近くて、 美しいコードに価値なんて無い、だからデタラメでもいいからさっさと書け、という価値観が見える。今の君にもね) しかし俺としては「美しいコードは素晴らしい」という価値観の世界にしたいので、 Gitの状況を知った現在、Gitには肩入れしたくないんだな。 むしろ反Gitに肩入れして、Gitを殲滅したくなってきてる。 こんな価値観の連中をのさばらせておくのは、よろしくない。 多分今後はバグ報告も送らない。 だってあれに俺は3-6時間かかってるけど、まるで生かせてないし、見る限り無駄だったよ。 ただここで色々君らに情報を貰ったのは感謝してる。前スレ最後で数時間相手してくれた人には特に。 あと、大昔にさっぱり意味が分からなかった(事すら認識出来てなかった)「伽藍とバザール」を理解出来たのはよかったけど。 お前らのオススメのGit以外のOSSのVCSって、SubVersionなのか? バケツに構ってる場合じゃないんだけど、いつか見てみるよ。 ただ飲食店が衛生的/不衛生なのと、美味い/不味いは別の軸だからな~。 VCSの根本の問題は、「管理側」が作ってることなんだろう。 Gitは「使う側」が作ったから、プログラマにとっては既存のVCSより断然仕様がいい。 ただLinusは「mergeしかしない側」だから、merge特化で、 俺みたいに日々の業務の履歴保持やバックアップ用には出来て無く、使い心地が悪い。 なら今後、「使う側」が「日々の業務用」のVCSを作れば決定版になるのだろう。 ただ、Gitに問題を感じないのだから、 Linusのコードの書き方はかなり最初期からアジャイルで、一般とは違うのか?とも思ってる。 (究極のアジャイルが>>23 ) この辺も後日確認する予定。
54 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 06:33:44.28 ID:raFZ+G/S0.net] あとさらについで。既に書いたように俺は君達には感謝してるから、 君達の成長の糧になるネタを残しておこう。俺なりの返礼だ。 Git陣営も、君達も、チームで働く意味を理解出来ていない。 チームを上手く機能させるには、「自分」ではなく「相手」の仕事を減らさないといけない。 そしてお互いに「相手」の仕事を減らす事により、チーム全体の仕事量が減り、生産効率が上がる。 これの古典的手法がドキュメントで、まあGitはこの点は十分出来てるよ。 (前言った解像度の不一致の件、あれは直しておいてくれ。ただ全般的にはかなりよく出来てる類だ) だけど今回の顛末、俺は3-6時間かけて、丁寧にバグレポートを上げた。 再現コードをわざわざ作り直し、途中で出てきた回避策も入れて、最終チェックもした。 雑なレポートなら1-2時間で出来るところ、3時間ほど余分にかけて精度を上げてる。 一発で分かりやすく再現しなければ、余分に1-2時間ほど確認作業が必要になってしまう。 仮に5人で対応してくれた場合、そんなことで「チームとして」5-10時間消費するより、 俺があらかじめ3時間消費して精度を上げた方が、「チームとして」2-7時間得する、という戦略なんだよ。
55 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 06:34:47.94 ID:raFZ+G/S0.net] Gitの連中は、俺のレポートで、「同種のバグの存在」を全く気にしていない。 それが彼等の技術的問題か、人格的問題かは分からないけど、 壁に穴が空いてることを気にせず、ゴキブリホイホイを多数設置して済ませようとしてる。 こ
56 名前:黷セと、今回のではバグは収まらず、「同種のバグレポート」が、多分あと10通位必要だ。 そりゃ確かにあと10通来てその都度対応すれば全経路にゴキブリホイホイを設置出来るかもしれない。 だけどこれは、俺と同様の通報者だけで30-60時間消費、さらに対応する連中も数時間ずつ、 まあ単純に3時間として、5人なら3時間*5人*10回=150時間消費するから、合計180-210時間消費することになる。 なら、最初のパッチを作る奴が10時間ほどかけて精査し、 「う~ん、これは壁の大規模補修が必要で、あと30時間ほどかかりますのでお待ち下さい」でも40時間の消費で、 140-170時間の黒字になるんだよ。だから本来はこれを目指さないといけない。 これが「バザール」で出来る事かどうかは俺には分からないけれども、 リソースが限られているプロプライエタリだとこうするしかないから、これがド定番で、 むしろGitの対応に怒りすら感じてるし、 まともに機能してるチームで働いたことのある奴は同様だろうよ。 相手の時間をすさまじく雑に扱ってて、しかも当人達はそれを自覚出来てない。 まともな奴ほど、次からはもう送らない、という選択になる。俺もそう。 (と、ふと思ったが、そもそも俺が既に5番目とか7番目の気がしてきた…orz) [] [ここ壊れてます]
57 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 06:36:12.11 ID:raFZ+G/S0.net] だからさ、Gitの連中がデタラメやってるのも、 共同開発()してる君達が、俺が何を問題視してるかを全く理解出来ないのも、 チームで働く意味を理解出来てないからなんだよ。 それは機能してるチームで活動した経験がないから。 共同開発()は、Gitを使えば、或いは人数がいれば、達成出来ることではない。もっと上のレイヤーの戦略だ。 (俺が上記で指摘した点なんて、完全にアナログだし) それは君達がGitで「管理」出来ると勘違いしてたのと同様、レイヤーを間違ってる。 Gitは「適用」「記録」ツールであって、管理ツールではない。 (記録=台帳管理だから、それが管理だ!のレベルで君達は止まってる) 道具は所詮道具であって、○○使ってれば大丈夫!なんて事にはならないし、 世間はそのレベルで戦ってないんだよ。もっと上位の戦略で優劣を競ってる。 で、この辺でいいかな? 余計なお世話だったかもしれないが、 俺は君達やGit陣営の問題点を分かりやすく示すことにより、俺なりの返礼にしたつもりだ。 (ただGit陣営はこういう諫言を無視してきたから今がああなのだとは断言出来る。 同じ事を思った奴が世界でこれまで誰もいなかったなんてあり得ないから。 だから書くだけ無駄だったかもだが、まあ、受け取る受け取らないは君らの自由だ) もう借りを返したつもりなので、今後は君達に問題点を見つけても無視する。 出来てるつもりの共同開発()ごっこを引き続き楽しむ自由も、君達にはある。
58 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 06:40:41.84 ID:ocNu9S1hM.net] こんな人がPLだったら話長い人だなあと思って敬遠するわ。PMには向いて無さそうな人に思う
59 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 06:41:02.07 ID:lvNzmAyI0.net] https://producingoss.com/ja/setting-tone.html#avoid-private-discussions > 公開されている場所で議論することによるさまざまな損失があなたの頭の中に浮かぶことでしょう。... > 本当は何もわかっていないのに 「自分はすべてわかっている」と勘違いしているボランティアへの > 対応 (どんなプロジェクトでもこの手の人がいます。彼らのうち何人かは将来すばらしい貢献をしてくれる > ことになるでしょうが、 中にはずっと勘違いしたままの人だっています)、ある問題 X が > より大きい問題 Y の一部であるときに、 なぜ問題 Y ではなく問題 X だけを解決したいのかを > 理解してくれない人たち、 などなど。...
60 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 09:01:13.54 ID:xm6SvStZ0.net] 長文君にはゴミ箱がお似合い ごみ箱でバージョン管理する手法が提案される https://srad.jp/submission/54492/ Windowsのゴミ箱を「作業フォルダ」として使っている人は意外といるらしい→驚愕の声続々 https://togetter.com/li/892609
61 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 09:32:33.75 ID:KYaOBnwRa.net] https://twitpic.com/dtqxgo 画像貼れるかわからないけど、なかなかいい提案
62 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 09:50:39.39 ID:fSnT1d04r.net] 長文くんは空想と現実の区別がついてなさそう レポートも本当に送ってるんだか
63 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 12:19:42.34 ID:iczqgiJF0.net] 日々の作業のバックアップだけしたいならそもそもVCS使う必要ないしな
64 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 00:01:03.02 ID:lrWcMZ4k0.net] >>58 その切り取り方はだいぶ酷い。続き読んだら正反対の結論だし。 ちなみに本編のその部分の内容には同意。リンク先は俺にはまあまあ面白い。ありがとう。 切り取り方に悪意がないとして、それが君の意見なら、 回答は、上位戦略、 「動いているコードはいじるな」「動いているコードであっても、改善出来るのならどんどん改善しろ」(11) による。前者の場合はXの修正に留め、後者の場合はYを修正する。 ただこれはソフトウェア界では既に結論が出てて、「後者(Y)じゃないと無理」だ。(よって疎結合化は必須) だから『今は』余程の事がない限り後者で、 その本が前者なのは、上梓が2005.10で、おそらく2003頃の常識で書かれてるから。 その頃は前者が主流だったのは11に書いたとおり。 そしてGitももしかして?なのは18に書いた通り。修正が『今の常識からすると』普通ではないから。
65 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 00:01:23.56 ID:7zTsALdP0.net] ただ、Gitの場合はおそらく技術的問題だと思う。 Xの修正に留めるのは、変に壊さない為だが、Git陣営は今壊れているところすらも「きちんと」直そうとしてない。 だから、そこで言われてるXでもないんだ。 ちなみに、「正しいXの修正」が45における「バルサン」だ。 壁の補修が必要なのは分かるが、それは今とても出来ないから(或いは賃貸等でそもそも出来ないから)、 せめて今出来る最善手で、ということ。 Gitは今打てる最善手すら打とうとしてない。 (コードの修正範囲を絞られたとしても、もっとましな解決方法がある) だから多分技術的にも足りてなくて、それは本人達の慢心だよ。 傲慢でつけあがってるから、他人がどういう解決をしているか調べたこと無いんだよ。 Cの基本的手法を見たこと無いはずがないし、よくよく考えれば、見た目違うだけで、 C++も、C#も、Rustも、本質的には同じ解決方法を採ってる。 だから、C以外の言語であっても「きちんと掘り下げて」勉強してたら、こうはならないんだよ。 多分連中は、Cを書けるだけで満足してて、しかもCの基本的(=伝統的)手法を馬鹿にしてる。だからこんな事になってる。 (スクリプト系も全く使えないから仕様もおかしな事になってるし) だから不勉強の根っこは人格的問題で、結果、技術不足が発生してる。 というところまで見えてしまうから、まともな奴は近づかないよ。 俺もこりゃ駄目だ、大体こんな奴等に構ってられる状況でもないし、って感じ。 そもそもLinusがいるんだから任せときゃ問題ない。
66 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 00:01:54.15 ID:7zTsALdP0.net] ちなリンク先 > "綺麗で、読みやすくバグのないコードを書きましょう。" といったことをガイドラインに書いても意味がありません。 > もちろん、これらは望ましいことではありますが、 これらが望ましくないと思われる世界は存在しないので、言及する価値がないのです。 > https://producingoss.com/ja/written-rules.html なおGitとこのスレ
67 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 00:02:35.94 ID:7zTsALdP0.net] >>59 ,60 それを揶揄するのがお前らの傲慢なところだ。(60は賛同かもだが) それは、「ユーザーが実際に求めてる機能はその程度で十分」ということなんだよ。 まさに、例のブランコ状態。Gitなんて超超超超オーバースペックだ。 たださすがに「ゴミ箱」は怖いから、 「バケツ」アプリで、GUIは完全にゴミ箱と同じ、ただし消せないし消えない、で一般には十分なんだよ。 従来VCSが提供したもの: 管理者に都合がいいだけの、すさまじく使いにくいVCS Gitが提供したもの: 超超超超オーバースペックで、確かに何でも出来るが、すさまじく分かりにくいVCS ユーザーが本当に欲しかったもの: 消えないゴミ箱
68 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 00:31:57.21 ID:eyva6wLj0.net] > Gitなんて超超超超オーバースペックだ。 誰が困るんだ? 必要ない機能なら使わなければいいだろ
69 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 00:32:49.23 ID:eyva6wLj0.net] >>66 ×ユーザーが本当に欲しかったもの: 消えないゴミ箱 ○バージョン管理を理解してないバカ(お前)が理解できるギリギリの機能:消えないゴミ箱 こうやで、間違えんな
70 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 00:46:30.79 ID:Av/Z41zQa.net] 管理者の為の仕様部分がオーバースペックって言ってるんかな。 管理の都合で記録残したりが嫌かな。 言いたいことが分からんでもないが、みんな人間的に欠陥持って仕事しているので、数人で仕事する時にはその機能があって良かった時も出てくるで。
71 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 02:36:46.00 ID:CrU8rP2e0.net] 世の中にはバージョン管理が理解できなくて、必要性を全く感じない人もいるのだな。 git の機能は実際に必要な人が多数いたから実装されたものがほとんどなんだけど。 自分が不要な機能は他の人も不要と思っちゃうところが素人の限界なんだろうな。 そういう馬鹿ユーザー層にも git の知名度が上がったんだろうけど、今頃ようやく勉強始めてスレを長文で荒らすのは勘弁して欲しい。 git は既にかなり長い歴史のあるソフトウェアなんで長期間便利に使い続けている人が多数いるんだぜ。 何が気に入らないか知らんけど、このスレを荒らしても git には勝てないぞ。
72 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 04:58:42.46 ID:zjNgRmcKa.net] このスレを荒らすことでgitに勝った気になりたい人なんじゃないかな多分
73 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 05:14:26.10 ID:CBCnjUQK0.net] 長文君は「傲慢でつけあがっている」人たちがつくっているgitを使わずに「バケツ」アプリを使えばいいのに。 みんなの望んでいるのがgitでなく「バケツ」アプリというのが本当なら、実際にそういうアプリがつくられて 改良を続けられているはずだから。それこそgitよりもずっとね >Xの修正に留めるのは、変に壊さない為だが、Git陣営は今壊れているところすらも「きちんと」直そうとしてない。 >Gitは今打てる最善手すら打とうとしてない。 >だから多分技術的にも足りてなくて、それは本人達の慢心だよ。 >傲慢でつけあがってるから、他人がどういう解決をしているか調べたこと無いんだよ。 >まさに、例のブランコ状態。Gitなんて超超超超オーバースペックだ。 >ユーザーが本当に欲しかったもの: 消えないゴミ箱 >「バケツ」アプリで、GUIは完全にゴミ箱と同じ、ただし消せないし消えない、で一般には十分なんだよ。
74 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 09:30:46.14 ID:bawORDDu0.net] 今時のOSはバケツ機能が標準搭載されてるから Gitを理解できない長文君でも安心(笑) Time Machine で Mac をバックアップする https://support.apple.com/ja-jp/HT201250 Windows のファイル履歴 https://support.microsoft.com/ja-jp/windows/17128
75 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 11:07:23.60 ID:CrU8rP2e0.net] それこそ電動ドリルのスレに来て、「メーカーは釘打ちユーザーのことを何もわかってない。オーバースペック」とわめいてるレベルなんだよな。 メーカーに直接クレームいてれ迷惑かけてないだけまだマシという考え方もあるが、恥というものを知らないらしい。
76 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 12:18:43.03 ID:PYTCWKKr0.net] 「今後は君達に問題点を見つけても無視する」とか書いてあってちょっと期待したのに1日も我慢できないじゃねーの。ほんとこいつ
77 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 13:02:48.06 ID:CrU8rP2e0.net] 初心者の中には以下の違いの区別ついてないやつがいる 1)バックアップ…ハードウェアなどの故障に備えてデータの保全を図るシステム 2)作業記録…作業ミスなどに備えてデータの更新を記録するシステム。セキュリティ目的の場合もある 3)バージョン管理…作業の成果物を効率的に管理して情報共有や意思決定を支援するシステム git はこのうちの3)のために特化したツールなので1)や2)の目的で使おうとしても無理がある。ちゃんとやりたいなら他の仕組を併用しなければならない
78 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 20:45:32.99 ID:waDPm/2h0.net] バージョン管理で意思決定とかちょっと何言ってんのかよく分かんないがman gitしても意思の決定を支援してくれそーなコマンドは出てこなかったよ Siriみたいのがあーしろこーしろ答えてくれるコマンドがあんのか?
79 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 22:00:16.17 ID:rcgr86R60.net] >>77 たぶんgitとGitHubの区別が付いてないと思う
80 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 23:24:58.33 ID:6zeJdr0ca.net] これは GitHub のAI は賢いよ、という御告げかな。 使ったことないのだけど。
81 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 02:15:01.88 ID:gKK2uUPF0.net] バージョン管理でいう「意思決定の支援」は、適切な情報を保存し提供することで変更方法や戦略などの取捨選択を素早くできるようにするというやつだな。必要な情報を必要な時に参照できるのがバージョン管理の必須要素だよ。
82 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 02:31:05.65 ID:gKK2uUPF0.net] バックアップしたデータや作業ログを見てもバグ修正の方法とか機能追加の方針とかは決めれないけど、git のコミット履歴があると決定の助けになるだろ。 機械が勝手に判断してくれる魔法みたいな話じゃないので期待すんな。 git log, git blame, git bisect などで素早く目的の情報を探し出せるというのは重要機能。
83 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 06:49:36.44 ID:k022U7g40.net] >>67-72 GitはGitで良いんだよ。Linusが必要だから作ったのだし、 確かに全世界で同時開発してて、既に安定版もリリース済みなLinuxには最適だろう。 ただ、今Gitが一般人や職場で使われてる領域では、世界規模な同時開発なんてやってない。 日々の進捗を記録し、履歴を保持し、バックアップが簡単に取れれば十分なんだよ。 これにGitが使われてるだけ。実際欲しがられてるのは「全自動履歴保持バケツ」。 だからGitが悪いのではなくて、他のアプリがしょぼすぎてGitを滅ぼせないのが問題なんだが。 なお散々言ってるが、俺はGit自体が気に入らないのではなく ・Gitの仕様がグダグダ過ぎて、余計な学習コストがかかりまくるのと ・Gitの開発がグダグダ過ぎ。 俺達はGitを使ってるから世界一の開発出来てる!とでも勘違いしてるからあんなことになるんだよ。 Gitはツールでしかない。上手く使えてるかはまた別だ。 肝心の本家がグダグダ過ぎ。 本家はGitとはこう使う!という広告塔でもあるのだから、もうちょっと真面目にやれよ。 これにソースを読み書き出来ない君達は気づけないだけ。 君達もゴキブリ駆除業者呼んで「ゴキブリホイホイの多数設置」されたらブチ切れるだろ? 割とこれ、当たってる例えだからな。(身近にCを「きちんと」書ける奴がいたら聞いてみるといい) じゃあ自分で作れ?なら、確かに作れるが、我慢してGitを勉強した方が早い。(再開発が面倒なだけ) だから誰も作らないわけで、Gitが日々の業務にフィットしているわけではまるでない。
84 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 06:51:48.71 ID:k022U7g40.net] あとGitが不味いのは、 ・「素人向け」ではないこと。 これはCの様に、切れ味抜群だが、素人が使ったら怪我をする、が外面仕様としてモロに見えているところだ。 GUI版はここら辺対策出来てるのかもしれんが。ただ一般に言われてる 「Gitは難し
85 名前:キぎる。ちょっとした規模の開発になると、リポジトリを破壊する奴が出てきて、 『Git用員』が必要になってしまう。こんな事は他のVCSではなかった」には納得だ。 (正確に言うと、難しいのではなく、仕様が直感的でないのが問題。多機能は本来は問題にならない) そして君達はまさにこの「Git用員」で、 ユーザーであるプログラマに「管理側に都合がいいGitの使い方」を強いてて、嫌われてるわけだ。 ただこれ、Gitの思想もおかしくて、両者が簡単に共存出来るようにすぐに出来るんだが、(Viewの変更だけで済む) 「管理側」が作ってるから実装したくないのだろうよ。だからこの辺、サクッと実装した物が出てくれば話は変わる。 C++やRustの連中も大概だが、実際問題としてCの糞コードを修正するよりは、最初から書いた方が早い。 これは基本アーキテクチャが素晴らしいからだ。 ただ実態は、幸か不幸か、ソースや開発体制のクソっぷりが基本アーキの良さで誤魔化せてしまってる。 ただこれも、バザールでは仕様なんだろう。なんだかねー。 > 9. 賢いデータ構造と間抜けなコードのほうが、その逆よりずっとまし。 これも例えて言うとな、Gitは「1本目の包丁」向けの仕様ではないんだよ。 今現在、Gitは無視出来ない存在になってて、プログラミング入門者、場合によっては大学でも使い方を教えるだろう。 ただ本来、VCSを学ぶのはまともなコードが書けてからで十分で、本末転倒なんだ。 むしろその程度の初心者ならセーブ禁止で、 毎日毎回「自分の頭の中にあるコード」を写経させた方が上達するだろうよ。学生には嫌われるだろうけど。 Gitは柳刃包丁や中華包丁と同様、「5~6本目の包丁」仕様であって、 三徳包丁のような「1本目の包丁」仕様ではないんだ。 ただ既に言ったが、これはGitが悪いのではなく、Gitを滅ぼせない他アプリが問題だから、 俺が加担するとしたら他アプリ=「バケツ」製作側だ。 そして君達「Git用員」の需要を世界規模で消滅させ、路頭に迷わせるのが正しい解だね。 [] [ここ壊れてます]
86 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 06:52:27.39 ID:k022U7g40.net] 具体的に言うなら、「学習コスト高すぎ」問題だ。 見る限り50-100時間程度か?少なくともチームの一員として 「リポジトリを破壊せず、普段のコード提出は問題なくでき、チームに『Git用員』が不要」なレベルに到達するまでに。 ただこれは本当に酷い話で、「ゴミ箱」アプリなら完全に把握するまでに5分だろ。なら、50-100時間丸々開発に使える。 あと今回俺が言ってるクソソース問題、 実はCの場合は言語機能がほぼ無いので、ソリューションはどれも馬鹿げているほど単純で、 見れば分かるものしかない。(他言語では文法でサポートされてるので各々2-3時間の勉強が必須) そしてあまりに馬鹿げてるから「イケてない」扱いされ、傲慢な若者には無視され、結果、メモリリークしてるわけだ。 これは「何故みんなこうするのか」をレクチャーすれば済む話で、 技術的には10分あれば十分なんだよ。(パッチ送ってくるレベルの奴には) ただ、絶対人の話を聞かない連中だから、Linusがやるしかないけど、 これを省いてGitに学習時間50-100時間かけてクソコードを量産してるんだから、完全に本末転倒だろ。 ここで同種のバグを一掃しないと余計に時間がかかる、という感覚がないのもどうかしてるし。 gitが難しくて、結果的に「『頑張って』勉強するんだ!」みたいな奴が集まってるのはいいのかもしれんが、 頑張る方向を完全に間違ってる。 「ゴキブリホイホイの無限設置だ!」と頑張られても、そりゃ違う、と思うだろ。 (頑張る連中なんだから、正しい方向に導けば上手く流れるだけなのに、そうしないのは上部の怠慢だよ。つまりLinusだな。 頑張らない連中のケツを蹴飛ばして何とかするのとはだいぶ訳が違う)
87 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 06:53:12.04 ID:k022U7g40.net] とはいえGitは大体把握した。 俺が使いたい範囲で何が出来て何が足りないかも分かったし、聞いてた話とも整合性が取れた。 色々情報をくれた人はありがとう。 「バケツ」アプリ、割とマジでゴミ箱仕様で作ってもいいんだが、需要あるかね? (まあこのスレに来ない連中に聞かないと駄目だが) 今すぐ、というわけではないが、アプリ製作も一回やってみようと思ってはいるから。 あと勘違いしてる奴がいるが、俺が今回Gitを使うのは既定路線だ。 その際にバグに遭遇していろいろ内実が見えて、クソだなと感想を漏らしてるだけ。 あとこれ、rebase履歴も保持されないよな? commit履歴は基本的に整理用だが、 rebase履歴が保持されないのは仕様としてかなり不味い。 そりゃお前らGit屋は完成したパッチしか興味ないのだろうが、 実際のプログラマは各ブランチで平行作業してパッチを製作し、マージする段になって、一本鎖で済むようにrebaseするのだろ? その際、rebaseでの競合は「手動」で解決するだろ。だからそこでバグを組み込む可能性があって、 パッチを作る側としては、rebase前に「いつでも」「どのポイントにも」戻れないと不味いんだよ。 だからここら辺も本来はViewを分離したアーキにして、 rebaseは「見た目」一本鎖になりますが、内部DBはそこでマージされてるだけで、rebase前の状態も全部残ってます、が正しい。 (まあrebaseしなければいいだけだ!といういかにもC的な馬鹿っぽいソリューションはあるが、それでは管理側に許してもらえないんだろ?) LinusはGUI全く作ったことがない?のか知らんが、アーキにMVC感がまるでない。 ただMVCも、きちんとやった方が後々色々楽なんだけどね。
88 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 06:53:58.17 ID:k022U7g40.net] ついでにSubVersionの糞っぷりも見えてきてるぞ。 > r13222, r13223, r13232 > libsvn_fs_fs の自動マージアルゴリズムを書き直した > 変更する理由: > 30万リビジョンが格納されたリポジトリのパフォーマンスが許容できない > (小さなコミットをしても50分以上かかる) > https://producingoss.com/ja/stabilizing-a-release.html 勿論もう直ってるんだろうけど、これはそもそも基本アーキがゴミだからこんな事になる。 順方向履歴しか持ってないのだろうよ。最低限逆方向履歴も持たないと駄目だ。 (持ってても整合性取れるまでcommitさせない仕様なら意味無いが) あと俺がGitに批判的なのは、今の「PC不要論」と同じだ。 スマホで十分な連中には、PCはもう要らないのと同様、バケツで十分な連中には、Gitは要らない。 今はバケツがないからそう感じられないだけ。
89 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 06:54:51.83 ID:k022U7g40.net] >>73 それは知ってるが、余計に使いにくいのと、 実際は空き領域を使う(SSDでいうウェアレベリング)でしかないので、 満タンになると自動的に消されるので使えない。 手動でディレクトリごとzipして名前に日付付けて並べた方がまだマシ。
90 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 06:54:56.54 ID:KNn1/gM50.net] >>85 ちゃんとテストするから問題ない お前とは違う
91 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 07:55:19.91 ID:IJg9gJTfa.net] これを思い出した。 Linus曰く「Subversionは史上最も無意味なプロジェクト」 https://m.srad.jp/story/07/12/03/1024220
92 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 09:04:46.52 ID:gKK2uUPF0.net] >>82 電動ドリルのスレで、釘を打つにはコツがいる。学習コストが高いって子供が文句言ってるだけだな 電動ドリルはお子様には向いてない危険な道具なのでどっか行け
93 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 09:36:15.40 ID:C2rEhT880.net] >>82 グダグダと思うのを使わずに「全自動履歴保持バケツ」を使えばいい 皆が欲しがっているのが「全自動履歴保持バケツ」というのが本当なら誰かがそれをつくるはずだからな 誰もつくらないのなら「皆が欲しがっているのは『全自動履歴保持バケツ』」は間違いということ gitはそれを欲しがっている人たちによってつくられてきたわけだが、その人たちに 「俺が欲しいのはそれじゃない。俺が欲しいものをつくれ」と言うだけで自分ではやらない 口だけ番長の長文君
94 名前:デフォルトの名無しさん (ワッチョイ 5e8f-gUJl) mailto:sage [2022/11/11(金) 10:11:58.79 ID:xTZiT+Nz0.net] >>83 へえー君の言うバケツ方式なら猿並みの脳みそでもリポジトリ破壊しないのかーすごいなー是非作って欲しいわー
95 名前:デフォルトの名無しさん (ワッチョイ 6914-zlm6) mailto:sage [2022/11/11(金) 10:37:17.96 ID:KNn1/gM50.net] >>92 バックアップするだけだからな 誰でも出来る バックアップを取り出したり比較したり そこからパッチ作ったりマージするのが難しいだけ 猿にそんなものは必要ない
96 名前:デフォルトの名無しさん (アウアウウー Sacd-oA9A) mailto:sage [2022/11/11(金) 10:39:45.87 ID:IJg9gJTfa.net] 長文の人頑張れ。君ならできる(かもしれん)。 Linusが2週間でgitを作った話。 を検索するとgitの初期の話が出てくるよ。
97 名前:デフォルトの名無しさん (アウアウウー Sacd-oA9A) mailto:sage [2022/11/11(金) 10:44:54.12 ID:IJg9gJTfa.net] 追加で https://gihyo.jp/dev/serial/01/alpha-geek/0040
98 名前:デフォルトの名無しさん (ワッチョイ debb-qVfh) mailto:sage [2022/11/11(金) 11:21:45.64 ID:gKK2uUPF0.net] >>94 絶対無理じゃよ。 今までの文章見ててもまともなコード(動くコードって意味じゃなくて長期間メンテするような有意義なコード)を書いたことは無いのは明らかだ。 本とかウェブで読んだことを理解できずに超解釈して受け売りするだけの転売ヤー。
99 名前:デフォルトの名無しさん [2022/11/11(金) 15:29:19.65 ID:gKK2uUPF0.net] 長文君にぴったりの git の使い方教えてやるわ 他の人は参考にすんなよ 初期化: git init -q ; git add .; git commit -qm "box" 一覧: git stash list --pretty='format:%h %ai %gD' ; echo 保存: git stash -aq; git stash apply -q 取出: git reset -q --hard; git clean -qfdx; git stash apply -q <xxx> 削除: git stash drop -q <xxx> commitメッセージもindexも不要な長文君はこの五つの手順だけ覚えとけばいいぞ コマンド長くて覚えられなかったらエイリアスにでもしとけな
100 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 06:42:22.57 ID:h41UD2lS0.net] >>88 バグにはすぐに引っかかるものと、そうでないものがあるんだよ。 お前らが理解出来るとは思ってないけど。 Gitはパッチ適用ツールであって、本当に、パッチ書く側のサポートが全くない。 Git作ってる連中も、コミッタ?は結局パッチ適用側に回ってしまって、自分でパッチ書かなくなるから気づけない。 ありがちな展開だけどさ。 そして使う側は(目的外使用ではあるが)書く側として使うからずれる。 だから、求められてるのは「書く側」向けの「全自動完全履歴保持バケツ」。
101 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 06:43:34.00 ID:h41UD2lS0.net] >>90 Gitが提供しているもの: 1000ページの取扱説明書を読まないとまともに使えない、超高性能電動ドリル ユーザーが欲しかったもの: 引き金を引けば回るだけ、簡単で今すぐ使える、ホビー用電動ドリル
102 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 06:46:43.39 ID:h41UD2lS0.net] ちな、CodeOfConduct読んで、あいつら中の人か!ってのが分かったので俺的査定。 Avar Arnfjord Bjarmason: 今なんとか方向修正を試みてるように見える。上手く導ければ有能だが、果たして? Christian Couder: 出てきてないので不明 Junio C Hamano: 休暇中?らしい (40) Taylor Blau: 無能。ってか閻魔大王が全スルーするならいないのと同じ。ちゃんと門番やれ。 そういえばGitのコーディングルールはどこにあるのだ? 今回ほどの糞コードは、コーディングルールで引っかけて落とせるはずだが。
103 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 06:52:44.85 ID:h41UD2lS0.net] >>89 ,94,95 全部読んだ。なかなか面白かった。(89はコメントも全部読んだ) 君が冷やかしかマジかは分からないが、マジで要るんなら作ってみてもいい。 ただし今すぐ取りかかれるわけでもないし、全般的に考えて本年度末(3月末)位が現実的な目標になる。 今考えている構成をざっくり言うと以下 ・Gitをゴミ箱/バケツ化するラッパ(フロントエンドのみ。バックエンドはGitで、Gitは別インストール必須) ・electronで作ってwindowsストアに配置(広告付き無料アプリ) 十分売れてる限り保守してやんよ(その必要すらないほど単純なアプリだが) ・プロプライエタリで伽藍開発。バザールなんてとても無理。コードは俺が書くから、お前らは使い勝手をフィードバックしろ。 ・GitBucket(仮称)、Gitと付けたら不味いのなら考え直す ・コンセプトは、「何も知らなくても使える『全自動完全履歴保持バケツ』」 よって仕様は限りなく簡素化し、それ以上やりたければDBはgitだからgitアプリ使え、とする ・diffは取れるがmergeは直感的GUIがないので無理。が、主にバイナリを保存する連中には全く関係ないし。 ・branchはディレクトリに割り当てて手動で。というより、git内にcommit履歴が保持されてないのでbranchの識別が出来ない。
104 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 06:54:37.10 ID:h41UD2lS0.net] 実装するだけなら2週間程度で十分だが、 ・electron使ったこと無いので調査に2週間ほどかかる ・アプリストアも広告付きのアプリも作ったことないので、これも2週間ほど調査必要 ・仕様を練らないとろくな事にならない、 Linusが2週間と言ってるのは実装であって、それ以前にずっといろいろVCS使ってきてるから仕様が熟成済みだっただけ。 ・そもそも顧客がいるかどうか ・一応は他WindowsGitアプリを全部確認する必要がある。今tortoiseGit試しにインストールしてみたところ。 があるので、冷やかしでないのなら新しくスレ立てて様子見する。 スレタイには GitBucket(仮称)と、何か「Gitはもう諦めた系」「頑張らない系」の連中を集められる文言を入れたいが、何がいいか。 板はここかソフトウェア板だと思うが、他に候補があるか。 ただ対象ユーザーはここに来る連中ではなくガチのど素人なので、もっと全然違うところの方がいいかも? スレタイ案: A. もうGitBucket(仮称)でええやん。 B. GitBucket(仮称)使ってるからって、Gitが分からなかった訳じゃないんだからねっ!!! C. GitBucket(仮称)計画中、Gitに疲れた奴集まれ D. 日常のバックアップツールGitBucket(仮称) 冷やかしじゃない奴からの投票を受け付ける。
105 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 06:57:39.26 ID:h41UD2lS0.net] >>97 (わざわざ色々考えてくれたのなら手間かけてすまんが) 正直全く分からんし、俺はstashも糞仕様と思うから使う気ない。 というか、Gitの連中、「仕様は小さくあるべき」という感覚がそもそも無いと思う。 俺だったら、branchなんて、各ディレクトリにそのままマッピングする。 つまり、sample.txtの開発なら、 .git master/sample.txt develop/sample.txt featureXXX/sample.txt stash/sample.txt で、実行パスは xxxx/current/sample.txt としておいて、 ブランチの切換はcd、実行ブランチの切換は ln -s master current でよかった。 stashなんて不要機能そのものだよ。直感的じゃないし、そこまでGit信じ切れないし。 この馬鹿仕様で git add -A で取ってれば各ブランチの同時開発状況含めて完全にcommit履歴が保持出来る。これで十分だ。 Gitによってカレントディレクトリの内容が「上書き」されるのはかなり気持ち悪い。 zip展開するときと同様、バケツからは明示的に取り出さないと上書きされない、が分かりやすくて良いんだよ。 branch切換で全部上書きで入れ替わるのは、頻繁に過去と現在を往復するにはいい仕様だが、普通の人には要らん。 というわけでGitBucketは基本この方針でmasterに全ての履歴を数珠繋ぎ、 平行開発はディレクトリとシンボリックリンクで手動でやれ、 git branch xxxx で切り替えれば勿論切り替わるが、バックアップはその状態で取るのであしからず、 それが嫌なら一々masterに手動で戻せ、(自動戻しは失敗するときがあるので付けない) だから戻し忘れたら一見ちぐはぐになるが、どのみち何処かに残ってるからなんとか探し出せ、という仕様。 要するにGitBucketはbranchを無視する。 (現在のbranchの記録はしておく。これでbranchを使う人も使わない人も問題ない)
106 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 09:27:34.24 ID:xzRuq+6da.net] electron 使うなら、ブラウザ上にOSのデスクトップ画面を再現するのと同じ事ができるだろう。 ゴミ箱/バケツのところでなくて、デスクトップに置いて管理されている事になっているファイルをコントロールできるようにして欲しい。
107 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 09:30:46.94 ID:Cj/ueztB0.net] >>98 > Gitはパッチ適用ツールであって、本当に、パッチ書く側のサポートが全くない。 パッチ適用ツールはpatchコマンドっていうんだよ gitはそれ以上のサポートがたくさんある これ以上何がほしいいっていうんだよw
108 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 09:31:53.24 ID:Cj/ueztB0.net] >>103 > 俺だったら、branchなんて、各ディレクトリにそのままマッピングする。 同じ名前のブランチが複数あることを想定してないね ちょっと失格かな。
109 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 09:37:06.39 ID:Cj/ueztB0.net] >>103 > というわけでGitBucketは基本この方針でmasterに全ての履歴を数珠繋ぎ、 ああ、GitとGitHubの区別もついてなさそうだね
110 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 09:39:05.08 ID:Cj/ueztB0.net] >>103 > branch切換で全部上書きで入れ替わるのは、頻繁に過去と現在を往復するにはいい仕様だが、普通の人には要らん。 branch切り替えで入れ替わるのはコミットしたものだけだよ これは便利でコミットしてない設定ファイルやデータファイルなどは そのまま残る こういうことまで考えつかなかったでしょ?w
111 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 10:59:50.02 ID:h41UD2lS0.net] >>104 > デスクトップに置いて管理されている事になっているファイルをコントロールできるようにして欲しい。 それはやる。というか、今考えている動作モードは2つで、 A. ある階層以下全部の履歴を記録 B. 明示的に指定したファイルまたはディレクトリの履歴を記録 で、Aがgit的、Bがゴミ箱的な使い方になる。 ライトユーザーにはBの方が直感的だろう。 毎日「ゴミ箱ならぬ記録箱」にブッ込んでおけば、万一の時に引っ張り出せるだけ、という使い方だ。 ただし中身がgitなので、当然Aの方が実装しやすい。 当たり前だが同居させないと余分なコードがいるので、無理にでも同居させる。 この解だが、一応 .git c/users/user/desktop みたいに、カレントをルートと見立てたファイルツリーとし、 明示的に指定されたらそこ(ディレクトリまたはファイル)を指すシンボリックリンクを作ってgitに取らせるつもり。 (この場合は上記desktopが実際のdesktopを指すシンボリックリンク) これで不味いかね?普通に読むだけならシンボリックリンクは実体が見えるので、 gitがシンボリックリンクを特に区別しないならこれで全く問題ないはずなんだが。(未調査) 或いは git add c:/users/user/desktop とか、絶対パスで指定した方が上手く行くのだろうか? しかし見る限り git add で指定するのは通常はカレント下だけなので、 (仕様的には使えたとしても)変なバグを踏みそうなので回避した方が無難ではある。 この仕様で問題なのは、パスが糞長いと記録出来なくなること。 つまり、カレント下に絶対パスを付け加えるので、実体のファイルツリーよりも「常に」カレント分だけパスが長くなり、 パスの文字数の上限(今も260文字らしい)を越えると記録出来なくなる。 > https://learn.microsoft.com/ja-jp/windows/win32/fileio/maximum-file-path-limitation だからガチもん商用アプリではこの解は使えない。 (仮にルートに置いてもc:\の3文字は長くなるので、ユーザーファイルが合計258-260文字のパスになってるときに記録出来ない) が、今回は、「そんな糞長いパスにするな」で終わり、諦める。(WARNINGは出す)
112 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 11:00:10.29 ID:h41UD2lS0.net] てな話を仕様として詰める必要があって、つまり、 1. どういう機能が欲しいか 2. それはこの仕様(実装)でいけるか みたいなこと。 ちょこちょこやるのはさておき、本格的にやるならスレ分けるべきだな、という話。
113 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 11:11:14.80 ID:h41UD2lS0.net] >>105 commit/rebase履歴の全保持と、commitのフィルタ機能だね。 記録側からみればゴミなcommitも、プログラマからみれば重要なんだよ。だからそれを見えなくする機能だね。 CSSでいうdisplay:noneの機能。 今は、「綺麗に清書して=プログラマには必要だったコミットも全部消して」提出しろ、になってるだろ。 これが無駄だし、プログラマ的には不快だ。 それは悪戦苦闘の記録であって、デグレードした場合に参照したい時もあるんだよ。消してるのは不味い。 ローカルだけにしろ、はその通りだが、今はローカルだけにも出来ない仕様だろ。(無駄にブロックチェーンしてるので)
114 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 11:11:41.80 ID:h41UD2lS0.net] >>106 世界規模で勝手に開発してるLinuxならそうだろう。 しかし、ローカルファイルシステム、或いは共有ファイルシステムに於いては、当たり前だが「同じディレクトリ名」=「同一」なんだよ。 だからディレクトリ名が被って困る、なんて事はない。 そして、バックアップ的には、branchはパスが伸びた程度の意味しかないから、これで問題ない。 (git流のbranchの使い方をしてても、これで問題ない。 通常のファイルシステムでは、パス+ファイル名が同じなら同一と見なすが、 ここがgitではパス+ファイル名+ブランチ名になってるだけ。 branch自体の参照先も変えられる!と思うかもしれんが、それはユーザーがそうしたのであって、 確か○月○日頃の○○ブランチ内にそのファイルがあるはず、と思い出すのはユーザー責任だ。 いずれにしても何処かに記録はされてるから、あとは頑張って探せという仕様)
115 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 11:13:16.58 ID:inQx9iPN0.net] git関係ないけどWindows10 1607以降はMAX_PATH制限なくなってるんだな
116 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 11:13:17.79 ID:h41UD2lS0.net] >>108 知ってるぞ。 ただ、切り替わらなくてもいい共通ファイル類はその場合には .git 階層に置くんだよ。 というかね、gitが何故か「カレント主義」になってて、とにかく「カレントディレクトリ」なんだよな。 これは本当によく分からない。 俺がGitGUIで最初にやったのは、「Open repository ...」を探すこと、だからな。 無いから、「え?まさか?カレントで起動しないと駄目なのか?」でわざわざショートカット作り直して起動し直した。 普通そんなアプリ無い。この辺は、「いつも通りのアプリ」じゃないと駄目なんだよ。
117 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 11:26:13.02 ID:403mRijK0.net] >>101 仕様や開発グループがグダグダだと思っているものをバックエンドにするのか 「gitがグダグダだからできなかった」と言い訳して終わりそう >>103 mergeのことは考えてないんだな
118 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 11:28:11.58 ID:zxvXZjfz0.net] >>102 投票とかどうでもいいから早く別スレ行け 馬鹿向けのアプリは馬鹿だけが多数寄ってきて繁盛するからそっちで頑張れ git は馬鹿には使えないことが理解できたんだろ
119 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 11:37:38.69 ID:zxvXZjfz0.net] >>103 ブランチにディレクトリを使うのは既に subversion がやって失敗した道だぞ ファイル数やファイルサイズが大きくなるとブランチ切るのに時間とディスク容量がかかり過ぎる 過去話読んでも何も学ばないやつはゴミを再発明するよな とはいえ、お前やお前が想定しているユーザー層はたいした規模のプログラム組まないだろうからゴミでも十分かもな、知らんけど
120 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 11:45:13.42 ID:h41UD2lS0.net] >>115 車輪の再開発はしないんだよ。 どこまで使えるか判断して、その範囲は使うし、それを超えた範囲は使わない。 (今の実態だと、git add 絶対パス、はほぼ確実にバグを踏むから使わない) 自分で作ればバグがない物が簡単に出来るわけでもないし。 > mergeのことは考えてないんだな GUIでmerge、例えばドラッグアンドドロップでmergeは怖いだろ。 コピーするつもりがmergeされたら悲惨なことになる。 (コピーや移動と同じGUIにmergeをアサインしてはいけない) だからmerge自体はgitアプリで明示的にやれ、という仕様。その方が安心だ。 そもそもバイナリはmerge出来ないし、 GitBucket使うような連中にはmergeなんてほぼ要らん。 てゆうかね、そもそもmergeが主な仕事ならgit使うべき。あれは完全にmerge特化型だから。 GitBucketのユーザーは、そのmergeのネタを作る側、つまりプログラマとかクリエーターとかだ。 管理側じゃなくて、管理される側。
121 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 11:59:07.72 ID:zxvXZjfz0.net] >>111 アホでやんの。マニュアル斜め読みしただけで実際に使用してないので本質が見えてないな rebase する前に新しいブランチ切ってやれば rebase前とrebase後の両方残せるという基礎の基礎すら理解できてないのか 普通はそうやって使うんだよ。マージも一緒。 ブランチが軽量で好きなだけ切れるので情報残したい数だけブランチを切ればいいだけだよ rebase --keep-base みたいな使い方もあるけど基本が理解できてないやつは混乱するだけだろうな
122 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 11:59:16.76 ID:403mRijK0.net] >>118 × mergeが主な仕事ならgit使うべき。 ○ mergeを使う可能性があるならgitを使うべき 長文君ソフト(仮)ではmergeのことを考えてないんだから すでに書かれてるけど他のスレに行ってくれ 仕様の検討も含めてそっちでやればいいんだから
123 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 12:01:03.49 ID:h41UD2lS0.net] >>117 ああその失敗情報は有り難い。 ただ、そこは理論的に問題ない。 技術的には、Gitでもカレントを「上書き」するのだからコピーと同じだけのI/Oが必要であり、 I/Oバウンドの場合、GitでもSubversionでもその部分の処理時間は同じになる。 (Gitのbranch切換とSubversionのブランチ作成が同じI/O負荷) そこで速度差が出るのだから、実際は、86で既に言ったとおり、Subversionが各ソースを「展開」するのが遅くて、 それはおそらく順方向履歴しか持ってないからだ。 (逆方向履歴持ってれば、commitは早くならないかもしれないが、branch切り出しはコピーと同速に出来る) ここら辺はSubversionの基本アーキが腐ってるからだが、 この点GitBucketは中身Gitだから、コピーするだけで、結果的には本家Git(上書きするだけ)と同速だよ。 そのコピーが重い? だったらbranch切換セレクタだけは付けるから、それで勝手に自前で管理しろ。 バックアップツールとしては、branchはパスが伸びただけの意味しかないからそうする、というのは112の通り。 コピーオンライトのファイルシステム、つまりハードリンクにする手もあるけど、これはユーザーが付いて来れないだろ。 ならコピー時間待たせた方がいい。
124 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 12:09:47.00 ID:h41UD2lS0.net] >>119 > rebase する前に新しいブランチ切ってやれば そこはbranchではなくてタグだとは思うが、要はそれ、gcされないようにポインタ残してるだけだろ。 しかし開発しなくなったbranchは刈り取れ、というのが一般の使い方だろ。(それが推奨されてるように見える) そもそもgcされないようにxxする、というのが間違ってるんだよ。 そんなところまでユーザーが密結合すべきではない。 普通にオススメ通りやったら、探せば何処かに履歴はあるよ、程度じゃないと。 まあ--keep-baseについては見てみるよ。 Bookの方が断然良かったのでman の方読むの止めてたから、知らなかった。
125 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 12:11:08.00 ID:zxvXZjfz0.net] >>121 お前、作成の負荷と切り替えの負荷の区別ついてないだろ 実用上で問題になるのは作成の負荷、切り替えはディレクトリ方式の方が軽いけどそこは重要じゃない
126 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 12:15:51.67 ID:zxvXZjfz0.net] >>122 必要なものには後で探せるように名前をつけておく。 名前のないものはいらないものなので掃除の時に捨てる。 基本中の基本すら理解できないの?
127 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 12:18:07.20 ID:bWvYfJDZ0.net] Subversion のブランチ作成がファイル数やサイズで重くなるとか・・・ てきとうなこと言うやつが二人になってカオス。二人とも早く別スレに行くか黙るかしてくれ。
128 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 12:34:32.74 ID:ajB/boEg0.net] GitBucket をdisってんのかと思った。 その名前はもう使われてるから変えろバカ。
129 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 12:54:11.71 ID:h41UD2lS0.net] >>120 多分な、開発現場において「ファイル内の」mergeが日常ってのはあまりないと思うぞ。 それは各自が勝手にどのファイルをどういじってもいい、ということだから。 gitによって開発フローが変わった!ってのがこの辺かもしれんが、 普通は担当を振り分けて、結果的に 「この期間にこのファイルを触るのは○○だけ」 と交通整理される。 同時に変更する必要があれば、同じ奴に同時にやらせるだけ。(注文が増えるだけ) そして各自が変更したファイルをかき集めて、くっつけて終わりだ。 お前らはこれもmergeと言ってる気がするが、 これは「更新日時が新しければ上書きする」だけの話で、手動でも楽勝だし、 プログラマはこれをmergeとは言わない。 プログラマが言う「ファイル内」のmergeが日常的に発生するかどうかはその部署のオペレーションによる。 (が、会社とか統制取れる場所でこれをする意味はないから、OSS以外ではほぼないと思うが)
130 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 12:57:01.77 ID:h41UD2lS0.net] >>126 了解。考え直すよ。一度位ググるべきだったわ。
131 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 13:00:04.63 ID:zxvXZjfz0.net] >>125 お前的には svn copy だけがブランチの作成で svn checkout は不要という主張したいの? svn 的には checkout までが作成で、ブランチの切り替えは cd じゃないか。 オフトピなので svn の思想の話を続ける気はないけど、気になった。
132 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 13:08:13.18 ID:403mRijK0.net] >>127 結局これだろ mergeを使う可能性があるなら長文君ソフトでなくgitを使うべき gitのスレなのにmergeの意味が違うとか言い出すし…
133 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 13:18:34.58 ID:h41UD2lS0.net] >>130 つまりお前らGit屋の要求仕様は、 ファイル内のmerge:要らん ディレクトリ内のmerge(=新しい方を取るだけ):要る ってのか?これなら手動でやった方が楽だよ。 普通にゴミ箱=エクスプローラ的GUIになんだから、日付でソートして纏めて選択して持ってくだけ。 いちいち「オレオレアプリ的merge」とか用意するから余計混乱する。 使い慣れたエクスプローラで苦も無く出来るのだから、それで十分なんだよ。
134 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 13:25:22.90 ID:403mRijK0.net] >>131 訳のわからないこと言ってないで、とっとと長文君ソフト(仮)スレ立てて移動しろ
135 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 13:25:51.41 ID:zxvXZjfz0.net] >>131 そんな低レベルの話してるのはお前だけだぞ
136 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 13:45:55.74 ID:/s1n3tt70.net] >>127 > 普通は担当を振り分けて、結果的に > 「この期間にこのファイルを触るのは○○だけ」 > と交通整理される。 いつの時代のこと言ってんの?待ちが発生すること自体問題とは考えないの? > 同時に変更する必要があれば、同じ奴に同時にやらせるだけ。(注文が増えるだけ) > そして各自が変更したファイルをかき集めて、くっつけて終わりだ。 > お前らはこれもmergeと言ってる気がするが、 > これは「更新日時が新しければ上書きする」だけの話で、手動でも楽勝だし、 > プログラマはこれをmergeとは言わない。 更新日時見てマージとか、複数の人が並行開発した場合を考えてないよね
137 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 13:47:01.20 ID:h41UD2lS0.net] >>132-133 最初に言っておくべきだったが、俺が作るアプリはお前らGit屋向けではないよ。 プログラマ、或いはクリエイター向けで、 Gitなんか勉強したくない、何でもいいからバックアップと履歴が取れてればいい、という人向けだ。 だから内部DBには都合がいい物を使うだけで、SQLiteもあり得るし、途中での変更もあり得る。 Git屋はGitを使うべきだよ。そもそもGitがGit屋向けフルチューンだし、 だからこそ文句言われてるわけだが、目的外使用なのだからLinusから見れば完全に筋違いだ。 なら、俺が「プログラマ/クリエイター向け」のツールを提供しよう、というだけ。
138 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 13:49:39.50 ID:zxvXZjfz0.net] >>135 だから、このスレでやるな。 自分のスレ作って引き籠もれ。
139 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 13:51:09.55 ID:h41UD2lS0.net] >>134 それなら、お前にはフィットしないだろうし、お前の周りはGitを引き続き使えばいいだけ。 俺は127方式やもっと小規模(個人)レベルでの開発を想定したツールを提供するだけ。 目論見が外れてたら、思ったより売れなくて、俺の骨折り損なだけ。 これで何の問題もないだろ。
140 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 14:12:47.90 ID:403mRijK0.net] >>135 >>137 長文君ソフト(仮)ではmergeのことを考えてないから mergeを使う可能性があるなら長文君ソフト(仮)ではなくgitを使うべき ってことだろ。なんなんだよGit屋って。 とっとと長文君ソフト(仮)スレ立てて移動しろ
141 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 14:55:15.80 ID:h41UD2lS0.net] >>119 ,124 --keep-base見たが、これ仕様が欠けてるんだよ。 だから君みたいな「あらかじめポインタ(branchまたはtag)を確保しておく」使い方しか出来ない。 rebaseが成功したらbranchは新しい方を指すので、古い方は名無しになってしまう。(放置したらgc対象) だから本来の仕様は、 --keep-base "AsThisBranch" とかで、新しいbranch名かタグ名を指定出来ないとおかしい。 これ --keep-base だけしても名無しのままだから即削除されないだけで、じきにgcされるから、意味ないと思うぞ。 こういうところがGitは仕様が雑なんだよ。仕様の重要さをまるで理解してない。これただの落とし穴だよ。 そして落ちない工夫が「あらかじめbranchにしておく」君のやり方で、バッドノウハウになってるだけ。 そりゃ君らみたいなGit屋にとっては落とし穴は多ければ多いほど重宝されて都合がいいんだろうけどさ。 それでちょっと確認したいんだけど、君がbranchに拘ってるのは、もしかしてタグ付けてもgc対象になったりする? 何かこの辺雑だし、下手すればあり得るので怖いんだけどさ。 あと俺が欲しい仕様は、rebaseした奴の親としてrebase前の記録が全部保持されるタイプで、--keep-baseではない。 まあ俺はrebase無しで運用してこの辺回避するからいいんだけどさ。(つかmergeでいい)
142 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 14:56:22.97 ID:h41UD2lS0.net] >>138 プログラマ: 主にソースコードを書いてる連中 クリエイター: 例えば主にフォトショで絵を描いてる連中 Git屋: Gitを操作することが主な仕事(>>83 内のGit用員)、ソースコードは書けないし、絵も描けない
143 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 15:04:56.83 ID:ajB/boEg0.net] まあ、こうやって素人考えをぶつけてみることでgitの良いところを再認識できるのであれば まったくの無駄ではないのかもしれまい。
144 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 15:24:26.31 ID:h41UD2lS0.net] >>141 × Gitの良いところ ○ Gitと被るところ バックアップツールで必須な ・更新されたファイルを保存しておく ・変更されてないファイルは改めては取得しない ・変更履歴も保持し、必要なら古いファイルも取り出せる ・可能なら定期的に圧縮する をGitが持ってるから、目的外使用されてるだけだな。 まあ基本アーキがいいから目的外使用でも本来ツールと戦えるということではあるけど。 ただ変更を酷く許してないところは頂けない。ここは俺はぶち壊す予定。 (間違ったファイルをコミットして大騒ぎ、結局全部作り直し、みたいのを無くして、ファイルを普通に消せるようにする。 ハッシュがずれたところで、ツリーには関係ない) Gitのバックエンドは出来がいいんだと思うよ。多分。(俺が問題に遭遇してないだけかもだが) Gitが糞なのは、フロントエンドと、仕様だね。ドキュメントは多すぎるが、よく書かれているし、少ないよりは断然いい。
145 名前:デフォルトの名無しさん [2022/11/12(土) 15:51:38.43 ID:pkT2sKDg0.net] どうでもいいが95%はコード書いて検証してる時間で、複数人でレビューしながら開発とかでない限りGitに使う時間って5%くらいだろ。 皆プログラム書きつつGit触れて普通だと思うんだけど。それこそWeb業界では。難しいことになるときがないとは言わないけどたまーにでしょ。 グラフィックの感性で勝負とか、そういう特殊な世界のプログラマー以外でWeb系でGitも使えないんじゃ普通仕事にならないけどな。
146 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 16:11:19.82 ID:zxvXZjfz0.net] >>142 git はバックアップツールじゃないぞ。 料理に例えるならお前が欲しがってるのは出来た料理を保管するための冷凍庫。 git が提供してるのは料理を作ったりアレンジするためのレシピ本(とその編集機能) あとお前の言う「プログラマ」って、単なるコーダーで、本物のプログラマじゃないだろ。工場で刺し身にタンポポ載せてるやつは料理研究家じゃないからな間違えんなよ。
147 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 17:09:07.94 ID:403mRijK0.net] >>140 長文君はgitをバックアップツールとしか見てないのに、Git屋というそのためだけの要員を わざわざ雇っている会社があるという妄想に取り憑かれているんだな
148 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 17:57:20.46 ID:h41UD2lS0.net] >>143 いや5%(=24分)も十分多すぎだけどな。 まあそれはさておき、コードと開発体制も糞だったのを忘れてたから、 Gitの良い所: 基本アーキ、バックエンド、ドキュメント Gitの糞な所: フロントエンド、仕様、コード、開発体制、(ドキュメント多すぎ) となる。ここで、駄目なところは全部マネジメントに起因してる。 一般の会社なら課長/係長クラスで締める部分が締まってない。 これは指揮系統を持たない「バザール」の宿命で、他知らんけどこんなもんなのかもしれないが、 OSSという意味ではchromeとかもっとガッツリやってる(ように見える)し、少なくともregressionテストは流しまくってる。 あっちはGoogleが締めてるのかもしれないが、Gitは見た目1本もregressionテスト流してないのは駄目だろ。 Subversion(58内記事)ではregressionテストに落ちたらcommit禁止だったらしいし。これが普通。 CVSはこの辺ガッツリやりすぎて、テスト用の3万行超のシェルスクリプトに (自分がcommitする部分の為の)新規テストを追加しなければcommitしちゃ駄目、とかで問題だったとも書いてあったが。 >>144 料理の味で勝負をしたいのに、冷蔵庫の使い方を100時間かけて勉強して、 冷蔵庫のご機嫌を取らないといけない事に、みんな文句言ってるんだよ。 ただこれはテクノロジーが達してないだけではある。 昔は航空機関士が同乗してたように。(乗ってて何とかなったとはとても思えないが、それはそれ) 今はGit屋が必要なレベルで、じきにもっと簡単な物が出てきてお役ご免になるはず。 出てこないようなら俺が作るよ、ということ。