[過去ログ]
Git 18 (1002レス)
Git 18 http://mevius.5ch.net/test/read.cgi/tech/1650651945/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
952: デフォルトの名無しさん (ワッチョイ 617b-8+ss) [sage] 2022/11/06(日) 11:51:22.62 ID:OfQ8ymDc0 >>950 いや事実だよ。 Linusは確かにmergeしかしないんだろうけど。 だけどその、mergeするパッチを書く奴は、それを一発で書けたわけがないんだ。 何日もかけて、何回も直して、そこに到達してる。 この過程のサポートがGitにはない。 別branchで作業してもmerge時にhash値が組み込まれるから、 確かに俺がやろうとしてる「日々の進捗」をcommitされると除去出来ずウザイんだろうさ。 しかしパッチのコードは必ずGit-repoをクローンしてから出発するのだから、 Gitにこのサポートが無く、パッチを当てる人はいきなり完成したパッチを書け!勿論でバッグ済みだぞ!みたいな構造なのがおかしい。 すくなくとも、捨てbranch機能があって、そこで日々の作業を終わらせた結果、 mergeするときには本ブランチでその結果がいきなり生えたように見せる機能 (捨てbranchとmergeしても中身の結果だけもらって親にはしない) みたいな機能が必要なんだよ。 ただまあ、これは今でも手動だと出来た気はするが。 だからまあ、確かにパッチ管理ツールであって、 ソフトウェア開発時のバージョン管理ツールではないんだろうさ。 だけど、今、全世界のGitで、mergeコミットと通常のcommit、どっちが多いか考えれば、自明だろ。 一つのパッチを作るまでにも何回もcommitが必要なのだから。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/952
953: デフォルトの名無しさん (ワッチョイ debb-qVfh) [sage] 2022/11/06(日) 12:07:06.70 ID:FBkt/oHG0 >>952 アホか。共同開発が全く理解できてねーじゃねーか。 お前の試行錯誤の記録を push しようとしてんじゃねーよ。 手元で試行錯誤して実装できたら、それを元に綺麗なパッチに書き直す作業するんだよ。 そして完成した綺麗なパッチ群のみを共有リポジトリに公開するんだよ。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/953
954: デフォルトの名無しさん (ワッチョイ 617b-8+ss) [sage] 2022/11/06(日) 12:19:51.48 ID:OfQ8ymDc0 >>948 一応見つけた。 git worktree らしい。 複数のbranchを同時に開く機能で、DBで言うATTACHっぽい。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/954
955: デフォルトの名無しさん (ワッチョイ b114-pSqO) [sage] 2022/11/06(日) 12:20:57.36 ID:JyiC8cnE0 試行錯誤はすべて記録に残すべき →じゃあテキストエディタで保存するたびに記録するべきっていうのか? こういう話なので無視すんなよ?w http://mevius.5ch.net/test/read.cgi/tech/1650651945/955
956: デフォルトの名無しさん (ワッチョイ b114-pSqO) [sage] 2022/11/06(日) 12:21:44.03 ID:JyiC8cnE0 バージョン管理はソースコードの変更履歴を残すのであって 作業履歴を残すものじゃないっていうのが分かってなさすぎ http://mevius.5ch.net/test/read.cgi/tech/1650651945/956
957: デフォルトの名無しさん (ワッチョイ 617b-8+ss) [sage] 2022/11/06(日) 12:30:26.14 ID:OfQ8ymDc0 >>953 それはいいんだけどさ、その肝心のパッチを書く人へのサポートがまるでないだろ。 出発点がgit clone で、その上で作業して、終われば pull request する前提なのにさ。 そしてOSSではなく一般企業等で使ってる奴は、 当たり前だが日々の作業のバックアップや巻き戻し出来るシステムが必要で、そう使ってる。 だから、Gitが難しすぎるというのは、目的外使用だから意味が分かりにくい、というのはあるね。 Indexもマージの時にはあった方が便利なんだろうしさ。(ただのcommitには邪魔でしかない) しかし確かに、Linusに言わせれば、全く問題ないんだろうさ。彼はmergeしかしないしね。 そして他のVCSよりまし、という理由でGitを使う奴は、混乱するんだろうさ。VCSと聞いてきたのだからね。 確かにパッチ管理システムだよGitは。ソースコード生成時のサポートシステムではない。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/957
958: デフォルトの名無しさん (ワッチョイ 617b-8+ss) [sage] 2022/11/06(日) 12:32:16.81 ID:OfQ8ymDc0 >>955 > こういう話なので無視すんなよ?w 無視する/しない以前に、何が言いたいのか分からないから反応しようがないんだよ。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/958
959: デフォルトの名無しさん (ワッチョイ 515f-pSqO) [sage] 2022/11/06(日) 12:42:58.45 ID:sj15aRfA0 >>957 > それはいいんだけどさ、その肝心のパッチを書く人へのサポートがまるでないだろ。 rebase あるよ。 元のローカルブランチを消さないでおけば記録もぜんぶ残るし。よかったね。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/959
960: デフォルトの名無しさん (ワッチョイ debb-qVfh) [sage] 2022/11/06(日) 12:43:13.14 ID:FBkt/oHG0 >>957 git ほどパッチを書くのに向いてるツールは他にないぞ。 index 無しでどうやってパッチの分割とかするんだよ? http://mevius.5ch.net/test/read.cgi/tech/1650651945/960
961: デフォルトの名無しさん (ワッチョイ 617b-8+ss) [sage] 2022/11/06(日) 12:53:16.71 ID:OfQ8ymDc0 >>960 最初から一つずつ書けば分割の必要ないし、 Index無くてもdiffの出力を絞ってpatchに食わせれば普通に分割出来るだろ。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/961
962: デフォルトの名無しさん (ワッチョイ b114-pSqO) [sage] 2022/11/06(日) 13:02:38.08 ID:JyiC8cnE0 >>958 書いてあるとおりじゃん。 試行錯誤の履歴を全部取れというなら、テキストエディタで保存するごとに gitでコミットしなければならないはずだ お前の主張はそういうことなんだから、それをちゃんとやれってこと http://mevius.5ch.net/test/read.cgi/tech/1650651945/962
963: デフォルトの名無しさん (ワッチョイ b114-pSqO) [sage] 2022/11/06(日) 13:04:02.78 ID:JyiC8cnE0 >>961 コミットがメチャクチャなのに、どうやってdiffとってパッチできると思ってるの? そのdiffには関係がない修正が大量に入ってるだろ http://mevius.5ch.net/test/read.cgi/tech/1650651945/963
964: デフォルトの名無しさん (ワッチョイ debb-qVfh) [sage] 2022/11/06(日) 13:37:22.28 ID:FBkt/oHG0 >>961 なんも分かってないことを露呈しているな。 A,B,C,D,Eとコミットした後に Cはc1,c2,c3に分割すべきで、BとEは一つにすべきで、Aは不要だったと気づいたらどうすんの? こういうのがお手軽にできて綺麗なパッチ群に整理できるのがパッチ管理ツールである git の利点なんだ。 そういうのやったことないだろ? http://mevius.5ch.net/test/read.cgi/tech/1650651945/964
965: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/06(日) 13:39:49.06 ID:az1H5JFk0 >>954 脊髄反射で理解したつもりになって書いてるだろ正解率が著しく低い git worktreeは一つのリポジトリに追加のワークツリーを用意して、異なるブランチをそれぞれ別のワークツリーにcheckoutできるようにする機能 DBのATTACHとは全然違う マルチルートは普通に作ったリポジトリをfetchやpushで合成してmerge --allow-unrelated-historiesすればできる でもこれはかなり特殊な用途に使うもので普段使いするようなものではない http://mevius.5ch.net/test/read.cgi/tech/1650651945/965
966: デフォルトの名無しさん (ワッチョイ 617b-8+ss) [sage] 2022/11/06(日) 13:46:46.96 ID:OfQ8ymDc0 >>965 実は今し方ドキュメント読んで、これは違うと書こうとしたところだった。 wor,ktreeはstashの代わりで、同時作業用ではないね。 > マルチルートは普通に作ったリポジトリをfetchやpushで合成して ああこれは俺の要求とは違うね。 まあ、もう地味に.git/.xxx/に転がそうと思案中。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/966
967: デフォルトの名無しさん (ワッチョイ 617b-8+ss) [sage] 2022/11/06(日) 13:57:15.91 ID:OfQ8ymDc0 >>963,964 お前らunixコマンドの使い方知らないだろ。 patch/merge/diff3はgit以前からあるコマンドで、多分初期Gitはそのまま使ってたと思うが。 具体的な使い方は以下。 今、元 fileA に対して、変更後 fileC になってるが、実は中間の fileB が欲しかったとする。このとき、 cp fileA fileB diff fileA fileC | less -N; // ここで該当行を確認する。例えば10-20行目なら、 diff fileA fileC | sed -n '10,20 p' | patch fileB これでfileBが得られるんだよ。これ以上色々複雑な時用に diff3 とか merge もある。 だからパッチの分割はすぐ出来るんだよ。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/967
968: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/06(日) 14:05:27.55 ID:az1H5JFk0 >>967 そういう作業を必要で無くすためにgitが生まれた patchの提出をgitの分散リポジトリ上で可能とするためにね 963とか964が行ってるpatchというのは、いわゆるpatchファイルのことではなく、ブランチ上に存在する差分の事 そのpatchを整理するのに index や rebase がある http://mevius.5ch.net/test/read.cgi/tech/1650651945/968
969: デフォルトの名無しさん (ワッチョイ debb-qVfh) [sage] 2022/11/06(日) 14:19:49.14 ID:FBkt/oHG0 もしかして、もしかすると、git では「パッチ=コミット」っていうことすら理解できてないのだろうか。 まさかそんな人はいないよね。単に言動が変な人なだけだよね。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/969
970: デフォルトの名無しさん (ワッチョイ 617b-8+ss) [sage] 2022/11/06(日) 14:25:32.34 ID:OfQ8ymDc0 >>968 知ってるよ。 ただまあ、確かにパッチ管理ツールだ。 プログラマはこれをソースコード管理ツールとして使おうとするから問題なのだろう。 バックアップが取れて、履歴が戻れれば何でもいいんだが、mergeも出来るから便利だからね。 なお俺は > ブランチ上に存在する差分の事 も所詮はdiffだ、という立場だよ。だから元のunixコマンドで何とでもなるし、 それをシェルスクリプトで集大成したのが初期Gitだろ。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/970
971: デフォルトの名無しさん (ワッチョイ debb-qVfh) [sage] 2022/11/06(日) 14:31:58.60 ID:FBkt/oHG0 >>970 ちがうぞ。最初からパッチ管理ツールとして設計されるぞ。 そしてパッチ管理ツールなんだから、パッチの出力機能さえあれば良いんだぞ。 それ以外の差分が欲しかったら別の外部ツール使えば良いんだぞ。それこそ基本だろ http://mevius.5ch.net/test/read.cgi/tech/1650651945/971
972: デフォルトの名無しさん (ワッチョイ 617b-8+ss) [sage] 2022/11/06(日) 14:33:28.64 ID:OfQ8ymDc0 >>969 各commmit「点」でdiff取ったときに落ちる情報って何? ああcommitメッセージか?そんなのは知らんし要らんよ、って立場。 つか、commitメッセージガーなんて言い訳にならないから、 どのみちソースコードを確認するしかないんだよ。 commitメッセージはその手がかりとラベルに過ぎない。これが俺、というか多分普通のプログラマの立場。 お前らはcommitメッセージが間違ってたら、そいつに責任を負わせられるんだろうさ。 ソースコード読めないからね。 ソースコード読める奴ならこんな言い訳効かないんだよ、何でお前が上にいるんだ!監督する為だろ!になる。 さすがに素通しはヤバい。 そしてどう見てもヤバいパッチを素通ししてるから、なんじゃあこりゃあ?ってなってる。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/972
973: デフォルトの名無しさん (ワッチョイ 617b-8+ss) [sage] 2022/11/06(日) 14:36:33.55 ID:OfQ8ymDc0 >>971 ああそれが diff のデフォルト出力をさせない理由だな。 651から一周回ったが、なるほど色々状況は理解出来たよ。賛同はしないが。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/973
974: デフォルトの名無しさん (ワッチョイ debb-qVfh) [sage] 2022/11/06(日) 14:45:12.77 ID:FBkt/oHG0 >>972 だからお前の考えてるような作業履歴管理ツールじゃないんだから、あきらめて他所へ行け。 gitはパッチ管理ツール。そしてパッチは何時、誰が、何のために作成したかが重要情報なんだよ。それを管理してるんだよ。 ソースコードの保管するツールじゃねーぞ。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/974
975: デフォルトの名無しさん (ワッチョイ 617b-8+ss) [sage] 2022/11/06(日) 14:49:22.34 ID:OfQ8ymDc0 >>974 そこは違うんだな。 みんな結局自分でやるのも作るのも面倒だから、既に動いてるツールを使ってるだけだよ。 Gitの機能のサブセットで十分にカバー出来るのなら、Git使えばいいだけ。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/975
976: デフォルトの名無しさん (ワッチョイ 617b-8+ss) [sage] 2022/11/06(日) 14:56:19.71 ID:OfQ8ymDc0 >>974 だからな、前言ったように、ブッ込んでおけば後で取り出せるバケツでしかないんだよ。 そのバケツにゴテゴテ付いてるから難しそうだが、要らない機能は使わなければいいだけ。 ただ、履歴保持の範囲を知らずに使って、実は記録されていませんでは困るから、使う前に調べてる。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/976
977: デフォルトの名無しさん (ワッチョイ 515f-nsye) [sage] 2022/11/06(日) 15:45:34.08 ID:o7v4FvnP0 https://www.praha-inc.com/lab/posts/commit-message そもそもコミットメッセージは何のためにあるのでしょうか? コミットログのうちコードの変更履歴には「コードをどのように変更したか」という情報が含まれていますが、「コードを何故変更したのか」という情報はコミットメッセージを読まないと分かりません。機能追加、バグ修正、パフォーマンスのためなど、変更した理由は様々なものが考えられます。 もちろんコードを変更した本人に聞けば変更した意図はわかると思いますが、変更した本人にいつでも聞ける状況であるとは限りません。 「何故コードを変更したのか」という情報が欲しい時のためにコミットメッセージが存在します。 加えて、コミットメッセージは基本的に他人が読むものです。 他人というと同僚やコントリビューターなどが挙げられると思いますが、この「他人」には未来の自分も含んでいます。自分が書いたコミットメッセージを数ヶ月先の自分が読む場合、過去の自分のコミットメッセージを未来の自分が読むことになります。 つまり、コミットメッセージは自分以外の人のために存在するのです。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/977
978: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/06(日) 15:52:02.65 ID:az1H5JFk0 まあこいつは分散バージョン管理の難しさを理解できていない 一人でしかプログラム組んだことがないのだろう gitのややこしいと感じる仕様のほとんどは分散リポジトリ管理に起因していて、分散リポジトリ管理の問題をできるだけ明示的にシンプルに解決しようという意図で設計されている http://mevius.5ch.net/test/read.cgi/tech/1650651945/978
979: デフォルトの名無しさん (ワッチョイ b114-pSqO) [sage] 2022/11/06(日) 15:55:03.47 ID:JyiC8cnE0 ほんとなぁ、POSIX原理主義だからユニケージだかUSP研究所だかしらんが 例のあいつも、バージョン管理のツールを、バックアップツールとしてしか考えてねぇ だからとりあえずファイルを入れておけば差分はdiffで見れるだろとか 訳のわからんことを言い出す ある時点とある時点の差を見たいんじゃねーんだよ ある修正にどのような差分があるかを記録=コミットしたいわけで その記録なしに差分だけみれても役に立たないっつーの そこが根本的に違うというか、バージョン管理の役目がわかってない http://mevius.5ch.net/test/read.cgi/tech/1650651945/979
980: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/06(日) 16:10:07.15 ID:az1H5JFk0 「ブッ込んでおけば後で取り出せるバケツ」など言っているが、 必要とされていたのは内容を同期できる複数のバケツで、 なおかつバケツ同士が常にオンラインで通信しているわけではない そういう問題に取り組んだ結果だ http://mevius.5ch.net/test/read.cgi/tech/1650651945/980
981: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/06(日) 16:12:28.94 ID:az1H5JFk0 そういう魔法のバケツを生み出すために、ただのバケツならできることがgitでは制限されていたりもする ユーザから見て不自由のない完全な魔法のバケツを生み出そうとしたプロジェクトは複雑すぎてことごとく失敗してきた http://mevius.5ch.net/test/read.cgi/tech/1650651945/981
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 21 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s