Git 19

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 8be4-Cw2/)
垢版 |
2022/11/06(日) 16:40:27.51ID:az1H5JFk0
ソースコード管理を行う分散型バージョン管理システム、Gitについて語ろう。

Git - Fast Version Control System
http://git-scm.com/

◆関連サイト
Pro Git - Table of Contents
http://git-scm.com/book/ja
Git入門
http://www8.atwiki.jp/git_jp/

◆前スレ
Git 17
https://mevius.5ch.net/test/read.cgi/tech/1599016710/
Git 18
http://mevius.5ch.net/test/read.cgi/tech/1650651945/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2022/11/13(日) 23:54:26.54ID:md3JoP5e0
>>219
gitがなければ機能しないものを作るってことなんだからgitがベースってことだろ
糞と思うなら使わなければいいだけ
長文君ソフト(仮)のベースとして役に立つと思っているから使うんだろ

長文君は実際に何かを始めたわけではないけどな >>195
224デフォルトの名無しさん (ワッチョイ c597-AMkR)
垢版 |
2022/11/14(月) 00:09:27.46ID:0VMo1QiO0
OOPでGitとSubversionを問題なく交換可能かは、それこそ実際に結合テストしてから言ってほしいものだ。
Git開発陣営は少なくとも動くものを作っているけれど、
「OOPの原則に則れば交換可能でなければおかしい」なんてのは机上の空論でしかないし、せいぜい工学的仮説といったところだろう
作れてないんだから仮説の域を出ない。ちゃんと工学的に明らかにしてくれ。
2022/11/14(月) 00:11:39.84ID:aSCqNEw00
>>220
クレクレ君死ね。

ただ、Cのいわゆる伝統的手法は本当にみんなやってるから、そこら辺のCで見あたるよ。
そもそも大概それがCの糞な所とされてるので、見たこと無い奴はほぼ居ないはず。

これも何度も言ってるでしょ。
俺はもうお前らのフォローはしないと宣言したでしょ。
直接的には教えてやらないよ。

でも本当に、Cを「きちんと」書ける人なら全員知ってるから、周りにいる人に聞いてみなよ。
実際問題として、仮に俺がここで丁寧に教えても、お前ら絶対信用しないだろ。
だから、君ら自身が信用出来る人に、直接聞くしかないんだよ。
つまりLinusがベストなんだけどさ。

或いは、これも既に書いたが、結局のところC++/C#/Rustでも同じ解だから、
これらの言語をきちんと勉強しても、同じ所に到達出来る。
だから自分だけで解決したいんなら、これらをやってみるんだね。
新しい言語は、古い言語の駄目なところを改善してるので、彼等がどこを問題視して、どう解決したかが、簡単に見えやすい。

LinusはC++を滅茶苦茶嫌ってて、まあその理由も分かるし、正直同意もするけども、
当たり前だがC++はCのベストプラクティス集みたいな所はあるので。(少なくともC++89/98は。その後明後日の方向に暴走中ではあるが》

あとそもそも最初に言ったが、今回は一番取り扱いが簡単なケースなんだよ。
こんなのでリークするのは、最初から構造がおかしいからだよ。
出来ないのなら、基本に忠実にやれ、でしかない。

ただ君らは構造を議論出来るレベルじゃない。まずはOOPの基本から勉強すべきだよ。
2022/11/14(月) 00:22:09.12ID:aSCqNEw00
>>224
完全に、じゃなくて、そりゃグルーは書くんだよ。
(まあオブジェクト内側にブチ込んでしまえば見た目完全にはなるが)
ただ、俺がやろうとしてることはVCSが普通に持ってる機能(のはず)だから、
VCS自体は何であれ多少の変更で動作するはずなんだよ。

てかお前らには構造の話は通じないから、ここら辺でいいか?

大体、ゴミ箱アプリの中身がGitかSVNかなんて、交換可能に決まってるじゃん。
むしろなんでそれが無理だと思うのかが俺には分からん。
2022/11/14(月) 00:32:35.55ID:aSCqNEw00
>>222
知らんが、要らん。
これなら手動でディレクトリごとzipしとく、の方がマシだ。
2022/11/14(月) 00:50:33.04ID:i6KxBWUg0
>>225
例えばgithubに上げられてるCで書かれてるソフトのうち、「きちんと」書かれていると
思うのをいくつか挙げて、それはgitと比べてどのように「きちんと」しているか説明することは
できないということで、「きちんと」したのは長文君の妄想内にしかないと思われてもしかたないな

>>226
そう思うのならgitの代わりに「コードが糞ではなく開発グループがキモくない」と思うのを使えばいいだけ
2022/11/14(月) 00:52:36.47ID:huosUPX00
>>224
交換可能なはずがないんだよね
そもそもSVNとgitでリポジトリの概念が違うんだから

あとgitは実行速度を重視した実装になっているけど、彼の言うOOPが取り込まれたら実行速度がどれくらい落ちるか、個人的には非常に興味があるね
230デフォルトの名無しさん (ワッチョイ c597-AMkR)
垢版 |
2022/11/14(月) 01:28:19.71ID:0VMo1QiO0
>>227
またろくに仕様を調べもしないでzipのほうがマシとか言って、傷口を広げるだけですよ

人格攻撃ではないのだが、40代ぐらい、正しいCやOOPは出来るほどの技術力は実際にはあるんだが、
人格に難がありすぎてビッグマウスで信用されずWeb業界でやっと拾ってもらえて、
だがGitが使えずWeb業界でも疎まれていて、鬱憤を晴らしにここにきてるのかな。
Gitを使いこなせないレベルのHTML/CSS屋とかならまあ求められてるものが違うからGitわかんないってのもわかるんだけど、
正しいCとかOOPとか言ってるのにGit使えないというのは、SIerしか考えられない不思議。
231デフォルトの名無しさん (ワッチョイ c597-AMkR)
垢版 |
2022/11/14(月) 01:31:10.94ID:0VMo1QiO0
>>229
まあ単なる経験則になっちゃうしgit-svnの実装の問題だと言われたら
コードを読んでない自分は反論できないので書かなかったけど、git-svnでどれだけ皆無理だと悟ったか知らないんだろうね
232デフォルトの名無しさん (ワッチョイ c597-AMkR)
垢版 |
2022/11/14(月) 01:36:05.46ID:0VMo1QiO0
>>226
Gitのコミットはリモートリポジトリだったとしても必ず作業ディレクトリの.gitディレクトリに行われる一方で、Subversionのコミットはリモートリポジトリにする必要があるのに?
どのVCSも同じ機能があると思ったら大間違いだよ。CVSなんかかなり絶望的だと思うぞ(すまんCVSは流石に太古の昔しか使ってないので嘘かも)
2022/11/14(月) 04:51:45.99ID:PeuKV+c+0
「バージョン管理ソフトを利用したゴミ箱アプリの開発」

ただしSubversionを使うときはサーバーが必要です。
ファイルを削除するたびにリモートにファイルを保存したりします。


ってことやろ?
2022/11/14(月) 06:36:03.20ID:Vk7GKPFC0
>>225
長文君、どんどんボロが出るなあ
きんちとしたCのコードなんて基準も何もない妄想って認めてるんだね
2022/11/14(月) 07:31:46.61ID:aSCqNEw00
>>233
SVN全く調べてない俺が勝手に想像してるのはその形態。
鯖立てなんて出来ません!な連中に対応するつもりだから、鯖立て必須は厳しい。


ただ、どうもこのスレの連中は、本当に全くプログラミング出来ないらしい。
>>101,102読めば、ああなるほどね、と並のプログラマならぱっと分かる。
あまりにもトンチンカンな話が多すぎる。マジでお前ら、死ねとしか思われてないぞそれは。
2022/11/14(月) 07:32:21.12ID:aSCqNEw00
ただ、いずれにしてもキモイよ。少なくとも俺には。


俺が想像してた世界:
「はい、バグっぽい何か」「ああバグだね」「直しといたぜ、確認よろしく」「とりあえずこちらでは動いた」

俺が思う本来Gitがあるべき姿:
「そのバグパッチ作ってみました」
「う~ん、君のコードはこの点が問題だから、ここをこう直してくれないかな。そうすれば、もっといいコードになる」
「マジか、このOSSではLinusから直接、技術指導を受けられるのか。なるほど勉強になったぜ」
「次も書くぜ!Linusには悪いが、どんどん教えて貰う!!!」

GitやSubversion:
「はい、バグっぽい何か」
「あらいいプログラマね、お茶してかない?」
「いや俺が欲しいのはバグが無くなったソフトウェアであって、
お茶したいわけでもないし、そもそもお前らと仲良くなりたいわけでもないんだが」(=「SNSでやれ」)


って書いてて思ったが、
SNS未発達時代のOSSはSNSも兼ねてて、こんなものなのかもしれん。
しかし今もそうなのはやはりキモイ。
完全にドライに技術的なら、CodeOfConduct(=ポリコレ宣言)なんてそもそも要らんし。

ただこれは俺が匿名文化に馴染んでるからであって、
一般人には実名SNS的対応の方が受けるのかもしれんし、まあご自由にどうぞ、ではある。
俺にはキモ過ぎて無理だな、ってだけで。
2022/11/14(月) 07:48:51.42ID:UbsjwJD50
>>236
これかかんの?

俺が想像してた世界:
 略
俺が思う本来Gitがあるべき姿:
 略

俺が実際にやってること:
  わーわーわーわーわーわーわーわーわーわーわーわーわーわーわーわーわーわー
2022/11/14(月) 07:55:12.73ID:aaTBlyIu0
>俺はもうお前らのフォローはしないと宣言したでしょ。

わかったから他所でやれよ。有言実行。
239デフォルトの名無しさん (ワッチョイ cd68-YfO/)
垢版 |
2022/11/14(月) 10:23:41.00ID:TzEiJIKc0
ごっみばけっつの人はさっさと専用スレ作って移動しろよ
いつまでめーわくかけ続けるんだよ
2022/11/14(月) 10:26:41.02ID:a8E3Hx5Cr
長文さんってgit とgithubの区別ついてなさそう
2022/11/14(月) 11:29:40.73ID:i6KxBWUg0
>>211
>内部DBを外部ソフトに委ねるのは、最大の目的は、そのソフトのツール群を使えるようにする為。
>最悪ユーザー側で何とでもなるというのは、ユーザーにも安心で、これは重要なんだよ。
>そして外部ソフト自体がバグってても勝手に直してもらえる。

長文君が「糞と思っている」gitをベースにしようとするのは、
コードの品質/アプリの仕様そのものが一番重要で、それさえあれば全てが上手く行く >>177
というのは間違いと思っていて、gitがこうなっているから、ということだな

>C. コミュニティに人を集めれば自然と持続性は確保出来る。つまり人数が一番重要。
>これを取り持つのがツール(ツールやcommitメッセージが本体)
>B. ドキュメントを整備しまくれば、後はがんばって読めばいいだけ。
>A. コードの品質なんて後から付いてくる。バグも誰かが勝手に直してくれる。

長文君は実際に何かを始めたわけではないけどな >>195
2022/11/14(月) 11:40:54.89ID:i6KxBWUg0
>>236
さっさと長文君ソフト(仮)作りを始めて自分の理想のコミュニティを作ればいいのに
検討したことや結果を公表する場所を決めて発表することすらできずに
グダグダ言い続けるだけの長文君
243デフォルトの名無しさん (アウアウウー Saa9-FFna)
垢版 |
2022/11/14(月) 12:29:56.96ID:EWF0SvAna
fork して branch した後なら
いくらでも rebase して
push -f しまくってる
244デフォルトの名無しさん (アウアウウー Saa9-FFna)
垢版 |
2022/11/14(月) 13:09:25.49ID:EWF0SvAna
やっとここまで読んだ
GitPail がふさわしい名前だと思う
2022/11/14(月) 13:42:15.70ID:Vk7GKPFC0
git って一部でもつけんじゃねー、って思う。
勘違い君に文句言いにこられても困る。
2022/11/14(月) 18:27:40.45ID:huosUPX00
git rebase --ontoを今更ながら知ったが便利だなこれ
今までgit rebase -iした後色々こねくり回してたけど楽になった
2022/11/14(月) 18:31:19.43ID:UbsjwJD50
>>246
長文「バックアップしたいだけなのにそんな難しい機能はいらねーよ!」
2022/11/14(月) 18:38:05.91ID:Vk7GKPFC0
>>246
欲しいって思った機能って調べるとだいたいあるよね。
2022/11/15(火) 06:02:57.49ID:DDE9IX5V0
OSSがコミュニティ的なら、例の「コミュニティの一生」も当てはまってしまうと思うんだよな。
> https://dic.nicovideo.jp/a/%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%81%AE%E4%B8%80%E7%94%9F


【Gitの一生】

Linusが面白いことをする

面白いから凡人が集まってくる >>95

住み着いた凡人が居場所を守るために主張し始める

Linusが見切りをつけて居なくなる

残った凡人が面白くないことをする

面白くないので皆居なくなる


>>176に書いたとおり、人数こそ力の源泉で、「人数の維持」が目的になってるように見える。
だけどそれは本来は手段で、「アプリの品質」を上げるのが目的でしょ。
(まあ賛同されるとは思ってないし、完全に平行線だが)

そもそもGitって今完全にメンテナンス状態?
つまり、本質的な新規機能要求(バックエンドに追加が必要)は無く、View(フロントエンド)をいじってる状態か?
ならまあ、実際面白くもないだろうよ。勿論メンテナはご苦労さんだが。
ああそういえばSHA256対応だっけ?あれは単なる作業だよ、本来は。チャレンジングではないから、面白くもない。
(つかこれがチャレンジングになっちゃうのはコードが糞だからだ。これも何度も説明したけどさ)
2022/11/15(火) 06:03:50.02ID:DDE9IX5V0
>>244
Pailは確かにいい。
ただ問題なのは、バケツは全員通じるが、ペール???な連中向け(俺含めて)のソフトだということだ。
2022/11/15(火) 10:54:20.75ID:ITVdMBx/r
チャレンジングなことしたことないやつほどそういう言葉使うよねぇ
エンジニアに妙な憧れ持ってそう
2022/11/15(火) 11:04:07.91ID:tWQzaYQC0
だから「バケツ(仮)」で新スレつくってそっち行け。git って付けなければ誰も文句は言わん。
2022/11/15(火) 16:01:59.97ID:u2Y2Sh/m0
rebaseって使う機会無いんだけどなぁ
以前、どこかの職場で履歴は一直線がいいとか意味不明な理由でrebaseさせられていた時があったわw
force pushするしかないし気味悪いw
2022/11/15(火) 16:50:03.41ID:bU8+MPV6a
本探してたら、わかばちゃんの旧版の書評に
https://honto.jp/ebook/pd-review_0628444763.html

>実は現場では、SourceTreeは重要でありながら、きちんと使える人は意外と少ない。
本来はこの手の専門家であるはずのプログラマーは、コマンドでGitを使うため、SourceTreeには縁がないからである。

知らなかった。
2022/11/15(火) 17:32:15.63ID:5R6vrZIA0
>>253
あるパッチの中にtypoしているのが後で見つかった場合どうするの?
そのパッチを他のブランチに適用する時困るでしょ
2022/11/15(火) 18:40:15.33ID:u2Y2Sh/m0
>>255
別にまた修正すればいいだけじゃね?
前のブランチに戻って修正するの?w
2022/11/15(火) 19:22:21.43ID:5R6vrZIA0
>>256
ブランチが3つあったら
3回同じ修正しろって言ってるの?
ちょっと問題外すぎ

rebaseいらない。だって3回修正すればいい
だめだこりゃw
2022/11/15(火) 19:26:08.61ID:5R6vrZIA0
多分最新のコードを見ながら必要な部分を
目視でより分けて修正しろって言ってるんだろうな
2022/11/15(火) 19:33:40.07ID:oaKUlL5c0
うちは自分の作業中にもメインブランチがどんどん進むからローカルでrebaseしまくりだな
2022/11/15(火) 19:44:34.40ID:5R6vrZIA0
>>259
普通そうだよね
定期的にrebaseしてないとマージが面倒になるし
2022/11/15(火) 19:55:16.46ID:aKa6LP36a
長文さん、あぼ~んしたいからコテ入れてくれ
2022/11/15(火) 20:22:00.46ID:tWQzaYQC0
rebase 使わないとか git の利点半分くらい捨ててるぞ。
上で言われてるパッチ1個当てるくらいなら cherry-pick で済むけど
ブランチを再構成したり、コミットの順番を入れ替えたり、コミットを統合したり、分離したり、コミットメッセージを修正したり、使わない日がないくらいの万能ツール。
2022/11/15(火) 20:37:46.10ID:5r8tW8Xc0
>>261 今週のうちには専用スレに引っ越してくれるらしいよ。 >>166
> スレは立てるが、肝心のアプリ名を今考え直してるところだから、来週まで待ってくれ。

まぁまた言うだけでやらない理由を長々と説明()しはじめそうな気はしてるけど。
2022/11/15(火) 22:12:13.74ID:u2Y2Sh/m0
>>257
言っている意味が分からんw
checkout -bした時点のbranchが間違ってましたって話?w

どっちにしてもrebaseなんていらんよw
2022/11/15(火) 22:19:29.03ID:26oE0jcj0
>>263
後からどうとでもつけられるアプリ名を理由に挙げるくらいだからね
「アプリ名が気にいらないから他のを考える」とか言いそう
2022/11/15(火) 23:41:22.91ID:xjjxhqm80
rebaseに関しては
履歴を戻ってでもコミットとその流れを綺麗にしたい派

戻るの面倒だし汚くてもいいじゃん派
がいるから話が噛み合わない
2022/11/16(水) 00:06:32.65ID:cpWhvvM10
コミットも含めて作品
ゴミを作ってる人には rebase は不要
そもそも git 不要だな
2022/11/16(水) 02:10:40.58ID:cpGIBcGj0
>>264
だからコミットが複数に分割されてしまうから
rebaseして意味のある単位に整えるんだろうが

いちいちパッチ当てるときに、
あれとこれとそれとどれを当ててくださいって
10個ぐらい持ってこられても困るぞ
2022/11/16(水) 02:12:08.75ID:cpGIBcGj0
>>266
コミットをパッチと考えて
後で再利用することを考えてる人

vs

後で見返すことなんてない人

の違いだな
結局一人プロジェクトなんよ
rebaseを価値を理解してないのは
2022/11/16(水) 02:52:08.03ID:cpWhvvM10
作りながら、やっぱりこのパッチは不要だから外そうとか、このパッチとこのパッチを両方適用して試そうとか、別の人の作業を取り込んで影響を調べようとか、お手軽自由自在にできるのが rebase の真髄
あと昨日の作業でタイポしちゃったとかでも直すのには rebase を使うのが基本
branch と rebase 無しでやれって言われたら気が狂いそう。もう昔には戻れない
2022/11/16(水) 04:26:00.99ID:WlnXLGJV0
パッチ適用 ←ここでコミット

やっぱやめた ←ここでコミット

2つのパッチ適応 ←ここでコミット

別の人の作業を取り込んでみよう ←ここでコミット

タイポ発見修整 ←ここでコミット

何がいけないの?これでいいじゃん
2022/11/16(水) 04:42:56.11ID:cpGIBcGj0
>>271
そんな都合よく行くかよw
実際の開発したことないのか?

パッチ適用 ←ここでコミット
タイポ発見修整 ←ここでコミット
バグ発見修整 ←ここでコミット
やっぱやめた ←ここでコミット
タイポ発見修整 ←ここでコミット
2つのパッチ適応 ←ここでコミット
やっぱやめた ←ここでコミット
タイポ発見修整 ←ここでコミット
別の人の作業を取り込んでみよう ←ここでコミット
バグ発見修整 ←ここでコミット
3つのパッチ適応 ←ここでコミット
バグ発見修整 ←ここでコミット
タイポ発見修整 ←ここでコミット
タイポ発見修整 ←ここでコミット

こんな大量のゴミコミットの中から、必要な部分だけ取り出すとかできるかよ
普段から整頓しておけって、子供の頃に教わらなかったか?
2022/11/16(水) 07:24:52.25ID:4to+8mNM0
>>251
Gitのコンセプトはなかなかチャレンジングだぞ。
全世界で唯一の履歴、完全平行作業(各自が任意のファイルを自由に同時に編集)ってのは、上手く行けば確かに面白い。
思考に階層がまるでない君らには通じないと思うが、
ソフトウェアは本来、実装階層ではなくて、コンセプト階層で勝負すべきなんだよ。
2022/11/16(水) 07:27:07.12ID:4to+8mNM0
>>253
(俺が言うとろくな展開にならなそうだが)
rebaseは清書用だからな。コードを実際に書く人向けではない。
mergeだけでも問題なく行ける。というかrebase自体がほぼmergeだし。
ここはGitのコンセプトがずれてて、
> リベースかマージか
> https://www.git-scm.com/book/ja/v2/Git-%E3%81%AE%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E6%A9%9F%E8%83%BD-%E3%83%AA%E3%83%99%E3%83%BC%E3%82%B9#_リベースかマージか
二者択一ではなく、共存が正しいのだが、機能的に欠けてるからおかしな事になってる。
共存させる為には経路情報が必要で、俺はそれが当然保存されてると思ってて探したのに無い!で始まったのが前スレ814-
この辺、Gitに欠けてる機能を補完するとしたら第二弾以降になる。まあ全く予定無しだが。

rebaseを常用するのは、少なくとも従来スタイル(>>127)だとマネジメントが機能してない証拠でしかなく不味い。
Gitが開発の手法を変えた!とか言われてるのはこの辺ぶち壊して、
従来型の(やってる感だけの)マネジメントなんて要りません!としたからだろうけど、
(まあ実際の所ろくにマネジメント出来てないし、
仮に問題が分かったとしても後からでは余計に邪魔でしかないので手当も出来ず、
なら最初から何もやりません!ってのも分からなくもないが)
Gitの場合はついでにアナログ的努力、具体的には176内
・regressionテスト
・レビュー
・コーディングルール
もイラネ!って全部捨ててるのはさずがに駄目だと思うが、これで回ってきてるのも事実だからな。

まあこれはさておき、多分rebaseの馬鹿らしさを実感出来る状況にあること自体がマトモであり、幸せなんだろうよ。
そしてそれは知らない人には通じない。これもよくある状況だよ。
ドタバタしか知らない連中は、ドタバタするものだと思っちゃってる、ってこと。朝の支度と同じ。
Gitは力業(ちからわざ:パワープレイ)が出来るだけに、全部力業に持ち込んでて、力業に頼らない方策を無視してる。
これも勝つ為の戦略だ!はありだけど、例えばサッカーで力業しか無かったら色々言われるでしょ。
2022/11/16(水) 07:27:38.13ID:4to+8mNM0
>>262
あ~ cherry pick ってそういう意味か。意味不明な機能だなとしか思ってなかったわ。
ただそれって多分、三角マージの指定方法を洗練すればmergeに統合出来た話で、
別機能にするのは仕様の練り方が全然足りない気がするが。(まあその気すらないようだが)
2022/11/16(水) 07:29:33.99ID:iIuOsXs40
> ただそれって多分、三角マージの指定方法を洗練すればmergeに統合出来た話で、
できねーよ
頭悪いのか
2022/11/16(水) 07:31:39.07ID:iIuOsXs40
>>276
> rebaseを常用するのは、少なくとも従来スタイル(>>127)だとマネジメントが機能してない証拠でしかなく不味い。
rebaseを管理の機能だと思ってるから
アホなんだよなぁw
2022/11/16(水) 07:33:21.02ID:iIuOsXs40
> rebaseは清書用だからな。コードを実際に書く人向けではない。
これも理解してないやつのセリフ

適切なタイミングでコミットするから
rebaseが必要なんだが

ああ、コミットをpushと勘違いしてそうだなこいつw
279デフォルトの名無しさん (ワッチョイ 1d4e-Uv+W)
垢版 |
2022/11/16(水) 08:09:55.58ID:lN1QdtbS0
facebook(meta)がgit対抗ソフト出した!
https://engineering.fb.com/2022/11/15/open-source/sapling-source-control-scalable/
> 歴史的に、バージョン管理システムの使いやすさには多くの要望が残されてきました。開発者は、リポジトリの複雑なイメージを維持することが期待されており、一見単純な目標を達成するために難解なコマンドを使用することを余儀なくされることがよくあります。Saplingでそれを修正することを目指しました。

長文ガイジの言い分は正しかった!!
280デフォルトの名無しさん (ワッチョイ 1d4e-Uv+W)
垢版 |
2022/11/16(水) 08:16:53.76ID:lN1QdtbS0
> 多くのソース管理システムでは、コミットのスタックを操作することは特に困難です。スタックの早い段階でコミットに 1 行を追加するには、git rebase -iのような複雑なステートフル コマンドが必要です。Sapling は、最新のエンジニアでもスタック内のコミットを編集、再配置、および理解できるようにするための明示的なコマンドとワークフローを提供することで、これを簡単にします。
>
> 最も基本的なことは、スタック内のコミットを編集する場合、そのコミットをsl goto COMMITでチェックアウトし、変更を加えてsl amendで修正するだけです。Sapling は、スタックの一番上を新しく修正されたコミットに自動的に移動またはリベースするため、競合をすぐに解決できます。競合を今すぐ修正しないことを選択した場合は、そのコミットの作業を続行し、後でsl restackを実行してスタックを再び元に戻すことができます。Mercurial の Evolve 拡張機能に着想を得た Sapling は、内部で各コミットのミューテーション履歴を追跡し、スタックを何度編集しても、後でアルゴリズムによってスタックを再構築できるようにします。

Sugeeeeee!!!
2022/11/16(水) 11:37:37.39ID:4GOK4Qmg0
>>277
rebase自体がほぼmergeと言ってる時点でもうね…
OOPの話にしてもそうだけど、彼は点でしか物事捉えられないんだろうね
2022/11/16(水) 12:11:32.56ID:KM49zAuba
>>280
AI とか使って何とかするのか?
2022/11/16(水) 12:19:06.08ID:KM49zAuba
基本的なコマンドは一緒にしてあるんだね
Git Cheat Sheet
https://sapling-scm.com/docs/introduction/git-cheat-sheet
2022/11/16(水) 12:50:32.85ID:adH18wyIM
どうせ新しく作るならAndroidやiOSをサポートしてほしかった
2022/11/16(水) 13:04:46.48ID:LmJ8L4ow0
Sapling is a new Git-compatible source control client.
だからgitリポジトリを操作するラッパーっていう感じか
2022/11/16(水) 13:07:00.65ID:cpWhvvM10
>>282
コンフリクトが出てもその場で直さずに放置して後で直せばいい、という阿呆な仕様でステートレスにしてるだけなので気にするな。
2022/11/16(水) 13:21:48.17ID:Y1TjeBe0a
>>286
凄くよく理解できました。
ありがとう。
Mercurial 使えはいいのかも。
2022/11/16(水) 13:35:28.58ID:cpWhvvM10
sl は
git のサブコマンドは(一見では)実態を表してないように見える
git rebase は万能過ぎて、最初に覚えるのがつらいので複数のコマンドに分割
って問題意識でコマンドを整理したんだろうな。histedit とかの命名に苦笑
どのみち一緒に使うことになるので最終的には手間が増えるだけな気がするけど
# うちでは sl ってやると蒸気機関車が走るよ
2022/11/16(水) 15:13:02.96ID:NssUpRQd0
🚂🚂🚂
2022/11/16(水) 15:21:07.43ID:sEsoti0qa
https://github.com/mtoyoda/sl
291デフォルトの名無しさん (ワッチョイ 1d4e-Uv+W)
垢版 |
2022/11/16(水) 17:57:06.17ID:lN1QdtbS0
でもお前ら正直Linusからの反撃(口撃)楽しみにしてるんだろ?
292デフォルトの名無しさん (アウアウウー Saa9-FFna)
垢版 |
2022/11/16(水) 18:20:17.34ID:z+sJwdsYa
sl ってやると蒸気機関車

世代がばれるな
2022/11/16(水) 18:25:58.19ID:LmJ8L4ow0
今WSLにaptでslインストールしてみたけど蒸気機関車走ったわ
2022/11/16(水) 18:31:10.60ID:LmJ8L4ow0
Macでもbrewでインストールできて蒸気機関車走った
2022/11/16(水) 18:35:05.10ID:zNTc7QNW0
カレントブランチという概念が無くなって代わりにカレントコミットになるのね
カレントコミットはブランチのヘッドである必要が無くて、そのカレントコミットにamendとかcommitができる
amendするとカレントコミットからブランチヘッドまでを自動でリベースしてくれる

確かにひと手間減りそうだけど挙動を理解できてない奴が使うとリベースのコンフリクトが頻発して面倒なことになりそう
コンフリクト解決を後回しにできるみたいだけど溜めるとそれはそれで大変そう
2022/11/16(水) 18:35:26.56ID:zNTc7QNW0
みんなと共有済みのブランチでこの途中へのamendが出来ないようにしておかないと、amendした修正をマージするのが大変そうだけど、うまくやってくれる仕組みがあるのかな?
2022/11/16(水) 18:38:18.21ID:5yQdaCF40
Git の最新アップデートから考える開発手法の潮流
https://speakerdeck.com/yuukiyo/trends-in-development-methodology-from-the-latest-git-updates
2022/11/16(水) 19:07:56.24ID:zNTc7QNW0
ワークツリーの状態はカレントコミットが属するブランチの状態に保たれる?として、カレントコミットが複数のブランチに属してるような状態(できるのか?)ではどうなるのかな?
カレントコミットとは別にワークツリーの位置を指定するようなのは >>283 見ても見当たらないが、goto NAME と goto COMMIT でうまいことやってくれるのか
2022/11/16(水) 23:51:27.30ID:4to+8mNM0
>>279
> What will stand out, though, is how every command is designed for simplicity and ease of use.
> There is no staging area.
> Fixing mistakes with ease
うむ。アプリに対する哲学は俺と同じだ。
ただまあ、同様につらつら考えてたが、どうも根本の戦略が違うと感じる。

従来: 手戻りを最小化する
Git: 手戻りの手間を極限まで減らせば、手戻りがあっても問題ない

ここで言う「手戻り」は、最狭義の
> やっぱやめた (271,272)
から、
・regressionテストを省いたことで、一部機能を壊したことに気づけなかったことによる、再修正
・レビューをしなかったことにより、不十分な修正であることを見逃してしまった事による、再追加修正
・CodingRuleを規定しなかったことにより、潜在的にバグを発生させやすいコードが存在し、結果的にバグが発生したことによる、修正
・OOPの基本を遵守しなかったことによる、ハッシュ交換程度での、大手間
・そもそも基本アーキがゴミな事による、実装では回避しようのない、大手間(Gitはこれは問題ない)
みたいな、広義~広範囲の物も含めてだ。

ただこれをきっちり成功させる為には、リーダーポジションにそれなりに優秀な奴が必要なのと、
そいつにだけどうしても過重な負担がかかってしまうのが問題だ。
これは、相手の力量を見極めて仕事を配分していくので、手駒がない場合には自分でやらざるを得ない、というより、
無理に振ったところでどうせ後で全部やり直しになるところまで確定的に見えてしまうので、自分でやることを選択してしまうからだ。
例の「ブラック会社に勤めてるんだが、もう俺は限界かもしれない」の藤田がそれで、完全に過労死コースになる。
(俺はWebで無料公開してた漫画の所までしか知らないが、藤田の彼女がそうなってたような)
2022/11/16(水) 23:51:46.25ID:4to+8mNM0
この構造をぶち壊そうというのだから、Gitは過労死ストッパーとしては素晴らしいのかもしれんが、
俺や従来Cプログラマから見たら、「そんなコードでバグが取りきれる訳ねえだろ馬鹿かよ」でしかない。
その後の手間を考えたら、一度に直した方が楽なのに、それを選択しないのだから一緒にはやってられんよ、というわけ。
この根底には「手戻りを最小化する」という従来型アプローチの肯定がある。

対してGit教的にはこれは禁忌であり、「手戻りのコストが0ならいくら手戻りしても問題ないはずだ!」で、
Gitの場合は基本アーキだけは締めて、後は放置というわけだ。
CodingRuleやレビューはどうしても主観的だから、政治/哲学/信条が入り込む余地があって面倒なことは分かるけども、
完全に客観的なregressionテストまでやらないのは、逆方向の哲学を持ってるように見える。
つまり、従来型へのアンチテーゼだ。
まあ、従来型のアプローチにどこまで意味があったのか、という実験としては面白いだろうよ。
つき合ってられんので俺は降りるが。やり直すのが確定してる工事なんて無駄でしかない。
Gitが目指しているのは結局のところ、「ネットを介した人海戦術」でしかない。
そりゃ学術界からは相当嫌われるよ。
2022/11/16(水) 23:52:15.86ID:4to+8mNM0
そういえば禿曰く、「コーディングを開始する前にじっくりと設計した方が良いプログラムの規模に下限はない」で、
これが従来型での基本だよ。
「やっぱ止めた」ではなく、「やっぱ止めた、になる事は、最初からやらない」が正しいとされる。
ただ当たり前だがこれには仕様聞いたら実装をぱぱっと思いつく程度の技術レベルは必要で、
お前らには全然無理だ。
Gitは馬鹿が闇雲にやってもなんとか前進出来るようにはしたから、そりゃお前らには必要なんだろうよ。
だから従来は「プログラミングの勉強をしてない奴は、ろくにメンテできない」世界だった。
今はお前らが「Gitを勉強してない奴はGitを使うな!」と言ってて、ツールの勉強はしてるらしいが、
全くプログラミングの勉強をしてないから、糞コードを糞コードとも認識出来なくなってる。
これはGit陣営もだ。なんだかねー。
ネット人海戦術を成功させる為には、どんな馬鹿でも有効な人材として使う為のツールは重要だけども、
やっぱ本末転倒だと思うぜ。
本来の目的であるプログラミングの勉強をすべきで、ツールはあくまで補助的なものだろ。
世界一のクレクレ君には、そりゃいつか誰かがいいコードくれるのだろうけどさ。マジでなんだかねー。
2022/11/17(木) 00:57:49.25ID:PPyT+nV+0
コーディングを開始する前にじっくりと設計した方が良い
このやり方では大きなものは作れない
2022/11/17(木) 00:59:42.90ID:SzkkMxOua
一応貼っておきます。
難解なコマンドって、何言ってるんだろ。

Metaの大規模ソースコード管理システム「Sapling」がオープンソース化
https://gigazine.net/news/20221116-meta-sapling/

>「一見すると単純なゴールに到達するためには、難解なコマンドを使わざるを得ない」といった点をSaplingは解決しており、さまざまな面でシンプルに仕上がっているとMetaは述べています。
2022/11/17(木) 07:02:49.14ID:oFtgoZb10
Git終了のお知らせ

Metaの大規模ソースコード管理システム「Sapling」がオープンソース化 - GIGAZINE
https://gigazine.net/news/20221116-meta-sapling/
305デフォルトの名無しさん (アウアウウー Saa9-Y/9p)
垢版 |
2022/11/17(木) 08:39:39.23ID:t8CddWfYa
>>303
これは楽しみ

でもネーミングがダメだな
一般的な単語をそのまま使うのは検索性が劣るので普及しにくくなる
306デフォルトの名無しさん (ワッチョイ 1d4e-Uv+W)
垢版 |
2022/11/17(木) 09:11:12.47ID:782WqxX70
大抵の環境ではslって打つと汽車走るしなぁ
307デフォルトの名無しさん (アウアウウー Saa9-FFna)
垢版 |
2022/11/17(木) 09:56:43.00ID:V4QZv0Fqa
>>296
Git じゃなくて GitHub の話になるけど GitHub の fork はそこをうまく解決出来る手段だと思うわ
308デフォルトの名無しさん (アウアウウー Saa9-FFna)
垢版 |
2022/11/17(木) 10:03:55.51ID:V4QZv0Fqa
>>301
判ります
2022/11/17(木) 14:30:18.96ID:gm2HE+q+0
zuckerにしとけばよかったのに

zucker --clone
310デフォルトの名無しさん (ワッチョイ 1d4e-Uv+W)
垢版 |
2022/11/17(木) 19:17:01.68ID:782WqxX70
Gitオワタwww

Meta、Git互換のソースコード管理クライアント「Sapling」をオープンソース化
https://codezine.jp/article/detail/16876
> なお、インタラクティブなsmartlog Web UIも用意されており、「sl web」を実行するだけでWebブラウザが起動され、スマートログ、コミット、修正、チェックアウトなどの表示が可能となる。ほかにも、sl undo、sl redo、sl uncommit、sl unamendといったさまざまな操作を元に戻せるコマンドも用意されている。
2022/11/17(木) 19:53:43.27ID:CXVXUQuWM
meta の人が首切られても twitter の人みたいにならないようにしてるんかな
2022/11/17(木) 19:55:29.04ID:nV36xVvO0
>>310
お前何回同じリンク貼ってるの?
馬鹿なの?
>>303
>>304
313デフォルトの名無しさん (アウアウウー Saa9-Uv+W)
垢版 |
2022/11/17(木) 20:29:34.50ID:uFwG0ab0a
gitおじさんイライラで草w
codezineのリンクは初出だがw涙で字が見えないらしいwww
2022/11/17(木) 20:45:14.23ID:oYIw5RmVa
200m四方までズームで追える仕様が、200cm四方までズームで追える仕様になってないと、置きかわりは無理やで。
2022/11/17(木) 21:19:54.35ID:ArWNCDPA0
gitを使っている人ならsaplingの方が良いと思ったら乗り換えるだろうが
gitが難しいとか言ってる人に使いこなせるんだろうか
2022/11/17(木) 22:08:49.01ID:EURizIvt0
>>315
どうだろうね?
逆にgitに慣れた人が乗る換える利点は全くなさそうだけど、rebase 使ったことないとかほざいてる人たちは、とっと乗り換えるのが吉かもしれない。
ま、ちゃんとソースとか公開されてから評価なので今の時点で考えても無駄だな。
2022/11/17(木) 23:07:28.26ID:S8efKX2d0
gitよりもできることが制限されるとしたら乗り換えるメリット全くないな
2022/11/18(金) 00:06:31.69ID:jciRgkpH0
ステージングがない時点で移行できる人は初心者とかに限られてる気がするんだけど……
2022/11/18(金) 03:05:52.17ID:NJJaJqGX0
ごくわずかしかいないhgユーザーなら移行もありなんじゃね
知らんけど
2022/11/18(金) 06:51:03.16ID:AxmdzuHg0
>>302
お前らではな。それがGit以前の「最低限」だったし、その状況でGNU/Linuxは完全に動作してた。
ただまあ、Gitが何でどういう連中に崇拝されてるのかは理解出来たよ。
最終目的の「長期的メンテナンス」を、「コードの品質」でやるか「スーパークレクレ君」でやるかの違いだ。
ん~、やはり全く納得できんが、まあ見物だ。
しかし「スーパークレクレ君」にしても、最低限の選別眼は必要だと思うがなあ。Git開発陣にはこれもない。

昔から「仕事は段取り8割」と言われていて、プログラミングにもこれは当てはまるが、
「それなりの経験を積まないと、何が起こるかまるで想定出来ないので、段取りしようにも出来ない」という本質的な問題があって、
Gitはここを破壊したのだろう。だから本質的に初心者ホイホイで、初心者こそGitの恩恵にあやかれる。
道路工事やビル建設とは違い、情報だけを相手にするプログラミングだから、成立するのかもしれん。
Git開発陣見てると「段取り?何それ美味しいの?」だからね。
対して従来型は結局のところ「段取り」良くやろうとしてるだけだ。
ただGit開発陣以外はGitをツールとして段取り良くする為に使ってるし、俺はそいつらの方が正しいと思うけど。
それから、

従来: 「将来の手間の最小化」を目指し、今手間をかけて疎結合化する。(これにはリソースが限られているという大前提がある)
Git: 「リソースは無限大」なのだから、今の手間を最小化し、とにかく人を集めれば、いつか誰かが良いコードを書いてくれる。

とまあ、これも正反対だ。
結局のところ、従来型における「自分達でやらねばならない」という、
当たり前すぎて前提条件とも言われない、プロジェクトに於ける潜在意識みたいな物を、
Gitはぶち壊し、「いつか誰かがやってくれるんだから良いじゃん」とまあ、
(見てないけど)ゆたぽんに対する嫌悪感と同質の物を俺は感じる。あれもネットがなければまるで成立しないのが同じ。
良く言えばネット社会に適応したとも言えるわけだが、なんだかねー。
2022/11/18(金) 06:51:32.62ID:AxmdzuHg0
まあそりゃプログラミングの勉強なんてキリがないし、10,000時間とか要求されるし、
これに比べれば50-100時間もすればツールの達人には成れるから、おまえらみたいな馬鹿には魅力的に映るんだろうが、
マジでプログラマってコード書けない奴はゴミとしか見てないから、そこだけは注意しておいた方がいいと思うぜ。
(個人的にはこれも行きすぎだとも思ってはいるが)
ちなみに個人的にはこういう正当な苦労はしないと意味ないと思ってる。
自分にとって獲得が楽な知識は、他人にとっても楽なんだよ。
先行すれば、一時的にはちやほやされるかもしれないが、すぐに取って代わられるし、使い捨てられる。
プログラマなら、正当に、プログラミングの勉強をするべきだと思うぜ。
お前にとって10,000時間かかることは、後輩にとっても10,000時間かかるんだよ。
ツール屋として生きる、ってのも俺はありだとは思うけどな。(ただ多くのプログラマはそうは見てない)
2022/11/18(金) 06:53:10.29ID:AxmdzuHg0
>>315
その感覚が既にズレてる。

× 使いこなす
○ コードを書くことに集中しろ

自動rebaseってのは、ユーザーがrebaseする必要なくしているわけで、つまり、
プログラマはコードを書くことに集中しろ、日々の業務フロー通りにやってれば、自動的に上手く記録されるようになってる、というだけ。
要は「本業に集中しろ」であり、至極真っ当な方策。
使いこなすのではなく、そもそも使ってる感覚すら無くすことを目指してる。これは正しい。

メールや名刺を放り投げておいたら自動的に完璧に整理されてて、「あん時のアレ!」で出てくる、みたいな話。
或いは卒アルと言えば分かりやすいか?
まあ今時の若者には逆に通じないかもしれないが、
俺らが高校生だった大昔は、今みたいに全員がカメラ持ってる状況ではなかったから、
提携業者が勝手に学校に出入りして日々の授業風景から学園祭まで色々写真を撮り溜めてた。
そして卒アルとして編集されて、勝手に出てきた。
俺らは生徒として活動してれば、そつなく記録されてた、というわけ。これを目指してる。
日々の業務フローを適切にこなしてれば、完璧に記録されてるから、本業に集中しろ、というわけ。
使いこなす必要なんて、最初から無いんだよ。業務フローを守れ、それだけ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況