[過去ログ] Git 18 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
619: (ワッチョイ de14-kHT+) 2022/10/08(土)14:23 ID:vxPAcYo70(3/4) AAS
>>616
gitのような目的を見失ったバージョン管理ソフトを使っているからだ
バージョン管理ソフトはライブラリよりも長く行き続けなければならんものだが
リポジトリでわけのわからんバイナリ形式を使っておるから
バージョン管理ソフトが滅んだら復元は不可能になる。一体何を考えておるのか。
「データはテキスト形式で保存しろ」とはUNIX哲学でも言われている。
620(1): (ワッチョイ deb0-zauZ) 2022/10/08(土)14:47 ID:TKlSmRLn0(1/2) AAS
容れ物が古くなったら新しい容れ物に中身を移すだけ。
621(1): (ワッチョイ de14-kHT+) 2022/10/08(土)14:51 ID:vxPAcYo70(4/4) AAS
>>620
よくもまあ懲りもせずにといったところだな
そうやって古くなったソフトを捨て新しいものに入れ替え
せっかく覚えた知識は無駄になり移行作業で苦しむ
POSIX原理主義なら一度覚えた知識は一生使うことが出来る
新しいことを覚える必要はない
622: (ワッチョイ deb0-zauZ) 2022/10/08(土)15:05 ID:TKlSmRLn0(2/2) AAS
啓蒙したいんだろうけど
>新しいことを覚える必要はない
これ読んで「そんなメリットがあるなら俺もPOSIX原理主義に入信しよう」と考えるエンジニアがいるもんかね。
623: (ワッチョイ deb0-kEV8) 2022/10/08(土)15:30 ID:5sXOif570(2/2) AAS
>>617
git remote set-headだとリモートトラッキングブランチのHEADが変わっただけでベアリポジトリ側のHEADは変わらず、
HEADが指してるブランチ(master)も削除操作が利かないままだったんですが、もうちょっと教えてもらえませんか
624: (ワッチョイ 5ebb-v24v) 2022/10/08(土)17:26 ID:qNYwj5bN0(2/2) AAS
>>621
いいから、お前は黙ってシェルスクリプトでOSカーネルでも書いとけ。完成するまで戻って来るな。
625: (ワッチョイ de8f-/WJo) 2022/10/08(土)17:39 ID:88/OpuEG0(1) AAS
啓蒙したいんじゃなくて単に荒らしたいだけだから
だいたいオープンソースなのにソフトウェアが滅ぶとか意味がわからん
626: (ワッチョイ af90-lDXs) 2022/10/10(月)11:28 ID:JuIf0a+H0(1) AAS
シェルスクリプトのヤツは釣りだろ?
マジでいってんだったら頭おかしいだろw
(基地外を釣るエサ投下)
627(1): (ワッチョイ de14-kHT+) 2022/10/10(月)17:13 ID:+gDGPUis0(1/2) AAS
外部リンク:megalodon.jp
私の場合は「POSIX原理主義者」という名の人格者として名を知られるようになってきたが、「原理主義」を名乗るだけあって、
628(1): (ワッチョイ 5ebb-v24v) 2022/10/10(月)17:25 ID:PTVZRYxu0(1) AAS
>>627
いいからお前はシェルスクリプトでカーネル書く作業に戻れ。シェルスクリプトがあれば何でもできるんだろ。
629: (ワッチョイ de14-kHT+) 2022/10/10(月)17:30 ID:+gDGPUis0(2/2) AAS
>>628
勘違いしてるぞ。俺は人格者(笑)って書き込んだだけだぞ
630: (ワッチョイ fb10-7iBv) 2022/10/16(日)04:54 ID:kNlIrq3k0(1/2) AAS
Shelling at Russian power plant leaves Belgorod without electricity
動画リンク[YouTube]
631: (ワッチョイ fb10-7iBv) 2022/10/16(日)04:55 ID:kNlIrq3k0(2/2) AAS
間違えた、すまん
632: (アウアウウー Sacf-0j67) [age] 2022/10/19(水)13:19 ID:1sfAoeRGa(1) AAS
Git v2.38.1
633: (ワッチョイ 197b-QJZg) 2022/10/27(木)07:22 ID:TnOoNEjS0(1) AAS
Git初心者でGit練習中の者だが、質問いい?
関数の履歴を見るコマンド
Git log -L '/function myfunction/',/},/:myFile
があり得ないほどメモリを食うのだが、これって今のところ仕様?
それとも俺の使い方がまずい?
2MB程度のファイルを2800回程度コミットしたリポジトリがあって、git gc して12MBになってる。
これに対して上記コマンドが9.4GBメモリを食う。
おかげでMINGW32bit環境では全然駄目で、MINGW64bit環境だと上記の通り。
Linux64bit環境でもスワップを増やさないとコケたので4GB以上は食ってるはず。
(windowsでの結果をふまえ、スワップを9GBに増やした環境では動作した)
Gitのバージョンは、Windowsは最新(2.38.1)で、Unixは2.20.1。
なお出力された内容には不満はない。
ただ、10-20行程度の関数が15個履歴として表示されるだけで、このメモリはあり得ない。
シェルスクリプトでも同じ物は得られるが、1GBすら行かないはず。
最初から最後までfreeしないでやってるとしか思えないが、何かそうなる理由ある?
あと、オプション等で回避する方法があれば教えて。
634: (ワッチョイ e99f-fARP) 2022/10/28(金)00:23 ID:yz6FOYrM0(1) AAS
LooseCompressionの全展開用の領域 2MB*2800=5.6GB
git logは内部でlessにパイプでデータを渡してるから
パイプバッファも含めて約2倍だろうか
Packしなけりゃ少しはマシかもしれない(未確認)
635: (ワッチョイ 197b-QJZg) 2022/10/28(金)07:15 ID:HlXde3ci0(1) AAS
>Pack
git gcのことか?
なら実は当初はしてなくて1.2GBあったが、その時からコケてた。少なくとも2GBは食ってる。
その後gc出来ると知り、やってみたが、実際は自動で何回かやってるようだし、多分大勢は変わりない。
(実は全部新たにコミットし直すのも試してる)
なお愚直にgit show -> 切り出し -> diff を繰り返すだけのスクリプトを作って試してみた。
メモリは普段の使用と変わりなかった。
ただ問題は時間で、12分程度かかる。これでは気軽には使えない。
MINGW64だと2分程度で済む。
時間がかかるのは一々ファイルにしてるから?だから、
/dev/fd/3等で全部でパイプに出来れば短縮出来るかも?、というところ。
(システムキャッシュに完全に載るサイズだから関係ないかも?だし、
そもそも2回ずつ使うのでパイプにフィットしないが)
ただ現在でも初期画面は数分で出るし、出なければ大昔のコミットなのでどうせ問題なく、
実際の運用としては及第点ではある。でも速ければ速いに越した事はない。
Gitはおそらく速度重視なのだろう。
自動増加スワップのMINGW64環境なら現実的には大した問題にはならない。
ただ、全部メモリ上に展開する意味もメリットもないはずなので、
途中で一回もfreeしてないであろうこのコードは、コードとしては大問題だとは思うよ。
(ジョークで言われてる、Javaしか知らない奴が書いた、freeが一つもないコード、になってる)
636(1): (ワッチョイ 6ebb-eWiu) 2022/10/28(金)07:18 ID:RikIMzkC0(1) AAS
報告してあげるといい事案だと感じる
637(1): (ワッチョイ 497b-vCJ4) 2022/10/29(土)06:39 ID:J4pkDf7Q0(1/3) AAS
パイプへの変更は厳しいので、一時ファイルをRAMDISK上に配置してみたが所要時間は変化無し。
よってシステムキャッシュは効いてて、パイプにしても高速化予算はほぼ無いと分かった。
diffを切ったら8分、さらに切り出しを切っても8分(変化無し)、git showをgit --version に変更したら2分で終了した。
よって時間予算は gitプロセス起動が1/6(2分)、git show が1/2(6分)、切り出しはほぼ0、diffが1/3(4分)と判明。
git showを高速化する為には出来るだけ纏めて取り出すのがよく、
メモリ無限大なら全展開が一番速いのも事実だが、せめてコア数程度にして欲しい。
見てる限り特に先頭も末尾も異常に速くはならない為、
動画と同様に途中にスナップショットを適度に挟んでいるように見え、なら、全展開する必然性/妥当性はない。
(やってもそんなに速くはならないのにメモリを異常に消費する=スワップする分余計に遅くなる)
>>636
これは開発者マシンなら最低でもRAM16GBでSSDだよね!というノリなら方針は間違ってない。
ただ、-n 100 とかで直近100コミットに絞れればいいだけなのだが、これが出来ないのが問題。
どうやってもいきなり9GB超掴みに行くのは使用勝手が悪い。そもそも最初の方の履歴なんてほぼ要らんし。
638(1): (ワッチョイ 8bbb-VzUj) 2022/10/29(土)08:37 ID:e5vmfD+T0(1/3) AAS
>>637
HEAD~100 とかじゃ駄目なの?
639(1): (ワッチョイ 8bbb-juJ7) 2022/10/29(土)08:44 ID:+5EirK6r0(1/2) AAS
いやバグレポートすればいいと思う
640(2): (ワッチョイ 497b-vCJ4) 2022/10/29(土)09:15 ID:J4pkDf7Q0(2/3) AAS
>>638
実はそこは初心者過ぎてよく知らないんだわ。
git log HEAD~100
では制限出来なかったけど、どう書くべきなの?
とりあえず公式マニュアルでは -n が最初に載ってるので、-n が一番お手軽なのだと思う。
これが効かないのは、多分実装忘れじゃないかと。
> 外部リンク:www.git-scm.com
>>639
多分、メモリ大量使用は仕様で、-n が効かないのはバグだね。
641(1): (ワッチョイ 8bbb-juJ7) 2022/10/29(土)09:25 ID:+5EirK6r0(2/2) AAS
合理性のないメモリ使用があるなら実害があるユーザーが改善のリクエストをバグレポートで出せばいい
そういうもん
レアケース扱いされることもあれば皆が困ってるようなら優先的にチューニングされる
仕様なのでは!?と空気読んで黙ってるのは奥ゆかしいニンジャ精神
642: (ワッチョイ 497b-vCJ4) 2022/10/29(土)09:38 ID:J4pkDf7Q0(3/3) AAS
>>641
なるほどその通りだ。
ガイドラインが糞長げえ…orz が、数日のうちにレポートする方向でやります。
> 外部リンク[html]:www.chiark.greenend.org.uk
> 外部リンク:www.git-scm.com 内の this guide が上記
643: (ワッチョイ 7997-uk66) 2022/10/29(土)11:09 ID:+W9Ulup+0(1) AAS
>>640
手練れのエンジニアとお見受けするが、どのジャンルで仕事されているので?
644(1): (ワッチョイ 8bbb-VzUj) 2022/10/29(土)15:16 ID:e5vmfD+T0(2/3) AAS
>>640
HEAD~100..HEAD みたいなのを最後につけてレンジを制限する話だけど効かない?
645(1): (ワッチョイ 1302-4ham) 2022/10/29(土)21:10 ID:YQqcaKMe0(1) AAS
git log -100 じゃなくて?
646: (ワッチョイ 8bbb-VzUj) 2022/10/29(土)23:05 ID:e5vmfD+T0(3/3) AAS
>>645
-100 と -n 100 と --max-count=100 は同じ意味で表示するログの数を制限する
A..B はログを検索する対象を制限する。(Bには存在するけどAには存在しないコミットという意味になる)
647(1): (ワッチョイ 497b-vCJ4) 2022/10/30(日)02:06 ID:IOU525bY0(1/6) AAS
>>644
効いた!ありがとう。
何ぞそれ?と思いきや git log のdocumentの頭に書いてあるのな。
> 外部リンク:www.git-scm.com
gitは機能が多すぎてドキュメントがやたら長いので端折っていたのが敗因だ。
やはり最初は一通り読まないと駄目だな。
これなら回せばいいので、組んでみたら32bit環境で43秒で終了した。
これだと高速化チューニングではなく単にfree忘れっぽいのでレポートしておいた。
再現用のスクリプトも同梱してるから気になる人はどうぞ。
外部リンク:lore.kernel.org
648(1): (ワッチョイ 8bbb-VzUj) 2022/10/30(日)09:36 ID:b5HYhcbp0(1/4) AAS
>>647
おつかれ。
慣れてくると git log とかは全ログ対象にはしなくて、素でレンジ指定するので、この手のリソース問題は見つけ難いんだよな。
上下前次1-新書関写板覧索設栞歴
あと 354 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.023s