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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
85
(1): (ワッチョイ 617b-8+ss) 2022/11/11(金)06:53 ID:k022U7g40(4/6) AAS
とはいえGitは大体把握した。
俺が使いたい範囲で何が出来て何が足りないかも分かったし、聞いてた話とも整合性が取れた。
色々情報をくれた人はありがとう。
「バケツ」アプリ、割とマジでゴミ箱仕様で作ってもいいんだが、需要あるかね?
(まあこのスレに来ない連中に聞かないと駄目だが)
今すぐ、というわけではないが、アプリ製作も一回やってみようと思ってはいるから。

あと勘違いしてる奴がいるが、俺が今回Gitを使うのは既定路線だ。
その際にバグに遭遇していろいろ内実が見えて、クソだなと感想を漏らしてるだけ。

あとこれ、rebase履歴も保持されないよな?
commit履歴は基本的に整理用だが、
rebase履歴が保持されないのは仕様としてかなり不味い。
そりゃお前らGit屋は完成したパッチしか興味ないのだろうが、
実際のプログラマは各ブランチで平行作業してパッチを製作し、マージする段になって、一本鎖で済むようにrebaseするのだろ?
その際、rebaseでの競合は「手動」で解決するだろ。だからそこでバグを組み込む可能性があって、
パッチを作る側としては、rebase前に「いつでも」「どのポイントにも」戻れないと不味いんだよ。
だからここら辺も本来はViewを分離したアーキにして、
rebaseは「見た目」一本鎖になりますが、内部DBはそこでマージされてるだけで、rebase前の状態も全部残ってます、が正しい。
(まあrebaseしなければいいだけだ!といういかにもC的な馬鹿っぽいソリューションはあるが、それでは管理側に許してもらえないんだろ?)
LinusはGUI全く作ったことがない?のか知らんが、アーキにMVC感がまるでない。
ただMVCも、きちんとやった方が後々色々楽なんだけどね。
86: (ワッチョイ 617b-8+ss) 2022/11/11(金)06:53 ID:k022U7g40(5/6) AAS
ついでにSubVersionの糞っぷりも見えてきてるぞ。
> r13222, r13223, r13232
> libsvn_fs_fs の自動マージアルゴリズムを書き直した
> 変更する理由:
> 30万リビジョンが格納されたリポジトリのパフォーマンスが許容できない
> (小さなコミットをしても50分以上かかる)
> 外部リンク[html]:producingoss.com
勿論もう直ってるんだろうけど、これはそもそも基本アーキがゴミだからこんな事になる。
順方向履歴しか持ってないのだろうよ。最低限逆方向履歴も持たないと駄目だ。
(持ってても整合性取れるまでcommitさせない仕様なら意味無いが)

あと俺がGitに批判的なのは、今の「PC不要論」と同じだ。
スマホで十分な連中には、PCはもう要らないのと同様、バケツで十分な連中には、Gitは要らない。
今はバケツがないからそう感じられないだけ。
87: (ワッチョイ 617b-8+ss) 2022/11/11(金)06:54 ID:k022U7g40(6/6) AAS
>>73
それは知ってるが、余計に使いにくいのと、
実際は空き領域を使う(SSDでいうウェアレベリング)でしかないので、
満タンになると自動的に消されるので使えない。
手動でディレクトリごとzipして名前に日付付けて並べた方がまだマシ。
88
(1): (ワッチョイ 6914-zlm6) 2022/11/11(金)06:54 ID:KNn1/gM50(1/2) AAS
>>85
ちゃんとテストするから問題ない
お前とは違う
89
(1): (アウアウウー Sacd-oA9A) 2022/11/11(金)07:55 ID:IJg9gJTfa(1/3) AAS
これを思い出した。

Linus曰く「Subversionは史上最も無意味なプロジェクト」
外部リンク:m.srad.jp
90
(1): (ワッチョイ debb-qVfh) 2022/11/11(金)09:04 ID:gKK2uUPF0(3/5) AAS
>>82
電動ドリルのスレで、釘を打つにはコツがいる。学習コストが高いって子供が文句言ってるだけだな
電動ドリルはお子様には向いてない危険な道具なのでどっか行け
91: (ワッチョイ b163-FlYH) 2022/11/11(金)09:36 ID:C2rEhT880(1) AAS
>>82
グダグダと思うのを使わずに「全自動履歴保持バケツ」を使えばいい
皆が欲しがっているのが「全自動履歴保持バケツ」というのが本当なら誰かがそれをつくるはずだからな
誰もつくらないのなら「皆が欲しがっているのは『全自動履歴保持バケツ』」は間違いということ

gitはそれを欲しがっている人たちによってつくられてきたわけだが、その人たちに
「俺が欲しいのはそれじゃない。俺が欲しいものをつくれ」と言うだけで自分ではやらない
口だけ番長の長文君
92
(1): (ワッチョイ 5e8f-gUJl) 2022/11/11(金)10:11 ID:xTZiT+Nz0(1) AAS
>>83
へえー君の言うバケツ方式なら猿並みの脳みそでもリポジトリ破壊しないのかーすごいなー是非作って欲しいわー
93: (ワッチョイ 6914-zlm6) 2022/11/11(金)10:37 ID:KNn1/gM50(2/2) AAS
>>92
バックアップするだけだからな
誰でも出来る

バックアップを取り出したり比較したり
そこからパッチ作ったりマージするのが難しいだけ
猿にそんなものは必要ない
94
(2): (アウアウウー Sacd-oA9A) 2022/11/11(金)10:39 ID:IJg9gJTfa(2/3) AAS
長文の人頑張れ。君ならできる(かもしれん)。
Linusが2週間でgitを作った話。 を検索するとgitの初期の話が出てくるよ。
95
(3): (アウアウウー Sacd-oA9A) 2022/11/11(金)10:44 ID:IJg9gJTfa(3/3) AAS
追加で
外部リンク:gihyo.jp
96: (ワッチョイ debb-qVfh) 2022/11/11(金)11:21 ID:gKK2uUPF0(4/5) AAS
>>94
絶対無理じゃよ。
今までの文章見ててもまともなコード(動くコードって意味じゃなくて長期間メンテするような有意義なコード)を書いたことは無いのは明らかだ。
本とかウェブで読んだことを理解できずに超解釈して受け売りするだけの転売ヤー。
97
(1): (ワッチョイ debb-v03j) 2022/11/11(金)15:29 ID:gKK2uUPF0(5/5) AAS
長文君にぴったりの 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も不要な長文君はこの五つの手順だけ覚えとけばいいぞ
コマンド長くて覚えられなかったらエイリアスにでもしとけな
98
(1): (ワッチョイ b57b-3eqv) 2022/11/12(土)06:42 ID:h41UD2lS0(1/29) AAS
>>88
バグにはすぐに引っかかるものと、そうでないものがあるんだよ。
お前らが理解出来るとは思ってないけど。

Gitはパッチ適用ツールであって、本当に、パッチ書く側のサポートが全くない。
Git作ってる連中も、コミッタ?は結局パッチ適用側に回ってしまって、自分でパッチ書かなくなるから気づけない。
ありがちな展開だけどさ。
そして使う側は(目的外使用ではあるが)書く側として使うからずれる。

だから、求められてるのは「書く側」向けの「全自動完全履歴保持バケツ」。
99: (ワッチョイ b57b-3eqv) 2022/11/12(土)06:43 ID:h41UD2lS0(2/29) AAS
>>90
Gitが提供しているもの: 1000ページの取扱説明書を読まないとまともに使えない、超高性能電動ドリル
ユーザーが欲しかったもの: 引き金を引けば回るだけ、簡単で今すぐ使える、ホビー用電動ドリル
100: (ワッチョイ b57b-3eqv) 2022/11/12(土)06:46 ID:h41UD2lS0(3/29) AAS
ちな、CodeOfConduct読んで、あいつら中の人か!ってのが分かったので俺的査定。

Avar Arnfjord Bjarmason: 今なんとか方向修正を試みてるように見える。上手く導ければ有能だが、果たして?
Christian Couder: 出てきてないので不明
Junio C Hamano: 休暇中?らしい (40)
Taylor Blau: 無能。ってか閻魔大王が全スルーするならいないのと同じ。ちゃんと門番やれ。

そういえばGitのコーディングルールはどこにあるのだ?
今回ほどの糞コードは、コーディングルールで引っかけて落とせるはずだが。
101
(5): (ワッチョイ b57b-3eqv) 2022/11/12(土)06:52 ID:h41UD2lS0(4/29) AAS
>>89,94,95
全部読んだ。なかなか面白かった。(89はコメントも全部読んだ)
君が冷やかしかマジかは分からないが、マジで要るんなら作ってみてもいい。
ただし今すぐ取りかかれるわけでもないし、全般的に考えて本年度末(3月末)位が現実的な目標になる。

今考えている構成をざっくり言うと以下

・Gitをゴミ箱/バケツ化するラッパ(フロントエンドのみ。バックエンドはGitで、Gitは別インストール必須)
・electronで作ってwindowsストアに配置(広告付き無料アプリ)
 十分売れてる限り保守してやんよ(その必要すらないほど単純なアプリだが)
・プロプライエタリで伽藍開発。バザールなんてとても無理。コードは俺が書くから、お前らは使い勝手をフィードバックしろ。
・GitBucket(仮称)、Gitと付けたら不味いのなら考え直す
・コンセプトは、「何も知らなくても使える『全自動完全履歴保持バケツ』」
 よって仕様は限りなく簡素化し、それ以上やりたければDBはgitだからgitアプリ使え、とする
・diffは取れるがmergeは直感的GUIがないので無理。が、主にバイナリを保存する連中には全く関係ないし。
・branchはディレクトリに割り当てて手動で。というより、git内にcommit履歴が保持されてないのでbranchの識別が出来ない。
102
(3): (ワッチョイ b57b-3eqv) 2022/11/12(土)06:54 ID:h41UD2lS0(5/29) AAS
実装するだけなら2週間程度で十分だが、

・electron使ったこと無いので調査に2週間ほどかかる
・アプリストアも広告付きのアプリも作ったことないので、これも2週間ほど調査必要
・仕様を練らないとろくな事にならない、
 Linusが2週間と言ってるのは実装であって、それ以前にずっといろいろVCS使ってきてるから仕様が熟成済みだっただけ。
・そもそも顧客がいるかどうか
・一応は他WindowsGitアプリを全部確認する必要がある。今tortoiseGit試しにインストールしてみたところ。

があるので、冷やかしでないのなら新しくスレ立てて様子見する。
スレタイには GitBucket(仮称)と、何か「Gitはもう諦めた系」「頑張らない系」の連中を集められる文言を入れたいが、何がいいか。
板はここかソフトウェア板だと思うが、他に候補があるか。
ただ対象ユーザーはここに来る連中ではなくガチのど素人なので、もっと全然違うところの方がいいかも?
 
スレタイ案:
A. もうGitBucket(仮称)でええやん。
B. GitBucket(仮称)使ってるからって、Gitが分からなかった訳じゃないんだからねっ!!!
C. GitBucket(仮称)計画中、Gitに疲れた奴集まれ
D. 日常のバックアップツールGitBucket(仮称)

冷やかしじゃない奴からの投票を受け付ける。
103
(5): (ワッチョイ b57b-3eqv) 2022/11/12(土)06:57 ID:h41UD2lS0(6/29) AAS
>>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を使う人も使わない人も問題ない)
104
(1): (アウアウウー Saa9-9aJV) 2022/11/12(土)09:27 ID:xzRuq+6da(1) AAS
electron 使うなら、ブラウザ上にOSのデスクトップ画面を再現するのと同じ事ができるだろう。
ゴミ箱/バケツのところでなくて、デスクトップに置いて管理されている事になっているファイルをコントロールできるようにして欲しい。
105
(1): (ワッチョイ 2514-H0Ic) 2022/11/12(土)09:30 ID:Cj/ueztB0(1/9) AAS
>>98
> Gitはパッチ適用ツールであって、本当に、パッチ書く側のサポートが全くない。
パッチ適用ツールはpatchコマンドっていうんだよ
gitはそれ以上のサポートがたくさんある
これ以上何がほしいいっていうんだよw
106
(1): (ワッチョイ 2514-H0Ic) 2022/11/12(土)09:31 ID:Cj/ueztB0(2/9) AAS
>>103
> 俺だったら、branchなんて、各ディレクトリにそのままマッピングする。
同じ名前のブランチが複数あることを想定してないね
ちょっと失格かな。
107: (ワッチョイ 2514-H0Ic) 2022/11/12(土)09:37 ID:Cj/ueztB0(3/9) AAS
>>103
> というわけでGitBucketは基本この方針でmasterに全ての履歴を数珠繋ぎ、
ああ、GitとGitHubの区別もついてなさそうだね
108
(1): (ワッチョイ 2514-H0Ic) 2022/11/12(土)09:39 ID:Cj/ueztB0(4/9) AAS
>>103
> branch切換で全部上書きで入れ替わるのは、頻繁に過去と現在を往復するにはいい仕様だが、普通の人には要らん。
branch切り替えで入れ替わるのはコミットしたものだけだよ
これは便利でコミットしてない設定ファイルやデータファイルなどは
そのまま残る

こういうことまで考えつかなかったでしょ?w
109: (ワッチョイ b57b-3eqv) 2022/11/12(土)10:59 ID:h41UD2lS0(7/29) AAS
>>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文字らしい)を越えると記録出来なくなる。
> 外部リンク:learn.microsoft.com
だからガチもん商用アプリではこの解は使えない。
(仮にルートに置いてもc:\の3文字は長くなるので、ユーザーファイルが合計258-260文字のパスになってるときに記録出来ない)
が、今回は、「そんな糞長いパスにするな」で終わり、諦める。(WARNINGは出す)
110: (ワッチョイ b57b-3eqv) 2022/11/12(土)11:00 ID:h41UD2lS0(8/29) AAS
てな話を仕様として詰める必要があって、つまり、

1. どういう機能が欲しいか
2. それはこの仕様(実装)でいけるか

みたいなこと。
ちょこちょこやるのはさておき、本格的にやるならスレ分けるべきだな、という話。
111
(1): (ワッチョイ b57b-3eqv) 2022/11/12(土)11:11 ID:h41UD2lS0(9/29) AAS
>>105
commit/rebase履歴の全保持と、commitのフィルタ機能だね。
記録側からみればゴミなcommitも、プログラマからみれば重要なんだよ。だからそれを見えなくする機能だね。
CSSでいうdisplay:noneの機能。
今は、「綺麗に清書して=プログラマには必要だったコミットも全部消して」提出しろ、になってるだろ。
これが無駄だし、プログラマ的には不快だ。
それは悪戦苦闘の記録であって、デグレードした場合に参照したい時もあるんだよ。消してるのは不味い。
ローカルだけにしろ、はその通りだが、今はローカルだけにも出来ない仕様だろ。(無駄にブロックチェーンしてるので)
112: (ワッチョイ b57b-3eqv) 2022/11/12(土)11:11 ID:h41UD2lS0(10/29) AAS
>>106
世界規模で勝手に開発してるLinuxならそうだろう。
しかし、ローカルファイルシステム、或いは共有ファイルシステムに於いては、当たり前だが「同じディレクトリ名」=「同一」なんだよ。
だからディレクトリ名が被って困る、なんて事はない。
そして、バックアップ的には、branchはパスが伸びた程度の意味しかないから、これで問題ない。
(git流のbranchの使い方をしてても、これで問題ない。
通常のファイルシステムでは、パス+ファイル名が同じなら同一と見なすが、
ここがgitではパス+ファイル名+ブランチ名になってるだけ。
branch自体の参照先も変えられる!と思うかもしれんが、それはユーザーがそうしたのであって、
確か○月○日頃の○○ブランチ内にそのファイルがあるはず、と思い出すのはユーザー責任だ。
いずれにしても何処かに記録はされてるから、あとは頑張って探せという仕様)
113: (ワッチョイ adc2-owoj) 2022/11/12(土)11:13 ID:inQx9iPN0(1/3) AAS
git関係ないけどWindows10 1607以降はMAX_PATH制限なくなってるんだな
114
(1): (ワッチョイ b57b-3eqv) 2022/11/12(土)11:13 ID:h41UD2lS0(11/29) AAS
>>108
知ってるぞ。
ただ、切り替わらなくてもいい共通ファイル類はその場合には .git 階層に置くんだよ。

というかね、gitが何故か「カレント主義」になってて、とにかく「カレントディレクトリ」なんだよな。
これは本当によく分からない。
俺がGitGUIで最初にやったのは、「Open repository ...」を探すこと、だからな。
無いから、「え?まさか?カレントで起動しないと駄目なのか?」でわざわざショートカット作り直して起動し直した。
普通そんなアプリ無い。この辺は、「いつも通りのアプリ」じゃないと駄目なんだよ。
1-
あと 888 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.018s