gitを使わずにディレクトリコピーでバージョン管理

■ このスレッドは過去ログ倉庫に格納されています
2021/09/07(火) 17:20:16.10ID:YOJCpOYh
しろって大学で習ったんですが・・・
アホですかあいつ?
188デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:18:17.24ID:+fBDwmx3
>>152
愚か者めバイナリで保存するのがダメだとまだわからんのか
Unixではデータはテキストで保存するのが常識だ
バイナリだとUnixツールが使えん、Unixの思想に反しておる
grep、diff、patch、ファイルを使ったバージョン管理で
使うこれらのコマンドが使えなくなるのがその証拠だ
189デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:19:48.47ID:/A8hhUIw
>>185
ファイル単位で独立してるから他に波及しないと思うけどね
壊れたことないからわからないけど、git壊れた経験ある?

全世界で使ってる人がいるけどgit壊れるって話も聞かないし
めったにないことのように思える

リポジトリが壊れたらgitを知らない人が対処はできないだろうね

7zはそのバージョンのファイル全部まとめてぶっ壊れるわけでしょ
7zを知らないひとがそれを直せるかと言ったらできないわけじゃん

たとえ壊れることがあったとしてもリモートリポジトリ使ってれば問題ないよね
7zはすごくヤバいけど
190デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:20:07.89ID:+fBDwmx3
>>187
7zも禁止だ。それは移植性がない。
独自のツールは10年後動く保証がない
認められる圧縮形式はcompressとuncompressのみだ
191デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:21:25.82ID:/A8hhUIw
>>186
アイデアを誰にも知られず独占したいってことね、じゃあローカルで使うなりサーバ立てるなりすればよいだけだよ
2021/09/10(金) 17:22:11.04ID:aTRJkGWC
>>183
例えば、Photoshopやスマホアプリの中に、画像の一部を魔法の様に消したり、
人間の部分だけを自動的に切り出すようなものがあるが、それもどういうアルゴリズム
を使っているのかは簡単には分からない。
また、3Dの山などの地形データを生成するアルゴリズムも分からない。
物理の教科書にも載ってない。
そういうものの多くは特許はとることなく、クローズドソースとして販売されてきた。
githubにアップロードして主催者がそれを勝手に見たらとんでもない損失。
2021/09/10(金) 17:23:03.48ID:aTRJkGWC
>>189
バックアップの重要性を分かってないのか。
そりゃ話にならんぞ。
194デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:27:21.62ID:/A8hhUIw
>>188
某POSIX原理主義者みたいなこと言ってるなあ
プレーンテキストだとデータが欠落してもわからない
ストレージの容量を食うなどの理由で圧縮してるんだと思うよ

Unixの常識に価値があると思ってるというお気持ちは伝わってきたけど
伝統工芸みたいでくだらない
進歩を止めてそこに付加価値を見出そうとしてるんでしょ
もしくはUnixに幻想をいだいて憧れてるだけかな
いずれにしろ愚鈍なだけ
195デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:27:48.82ID:+fBDwmx3
Unixのコマンドを駆使すればgitでできることは全てできる
バージョン管理ソフトは10年持たない。Unixのコマンドは10年後でも利用できる
ソフトウェアの寿命よりも短いツールなんか使い物にならない
gitが滅んだらソフトウエアは復旧不可能になる
Unixコマンドを使え!問題は自力で解決せよ!
196デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:29:20.83ID:/A8hhUIw
>>193
ちょっと話が飛躍してる気がする
リモートリポジトリ使ってればディスク障害起きたとしても問題ないよね

7zはそういうの結局手作業でコピーしたりしないといけないんじゃない?
ならgit使っちゃいなよユー
197デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:31:45.88ID:/A8hhUIw
>>195
gitが滅ぶってことはgitよりも優れたバージョン管理ツールができるってことだから
マイグレーションツールも提供されるに決まってるよね、常識で考えなよ
2021/09/10(金) 17:32:42.96ID:dS7angqs
>>196
gitは、想定された範囲内でしか使えない。
単純バックアップの場合、プロジェクトの問題発生時に非常に効率よく作業できる。
199デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:33:56.42ID:/A8hhUIw
>>198
い、意味が、わからない

gitってただのファイルで管理されてるから
リポジトリを単純バックアップすることもできるよ
2021/09/10(金) 17:34:02.38ID:dS7angqs
gitをすばらしいといってる人は、実際のバックアップの使い方を見たこと無い人。
もっと効率よく出来る。
201デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:34:36.72ID:/A8hhUIw
7zで?
202デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:34:40.99ID:+fBDwmx3
>>194
ディスク領域の節約がしたいならrsyncを使え!
rsyncにはハードリンクを使った差分バックアップの機能がある
なぜ我々がrsyncは許容しているかわかるか?
ハードリンクはUnixの機能だからrsyncが滅んだとしても
Unixのコマンドだけで取り出せるからだ
2021/09/10(金) 17:35:05.30ID:dS7angqs
>>199
違うんだって。
過去バージョンに対してさまざまなことを確認したり、複数のバージョンを
色々試して不具合がいつおきたかを調査する時、gitでは効率が悪すぎて
話にならん。
2021/09/10(金) 17:36:10.42ID:dS7angqs
>>201
シンプルだから、何でも出来る。
gitは複雑だからgit作者の想定の範囲内の事しかできない。
205デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:36:28.92ID:+fBDwmx3
>>197
マイグレーションツールができる保証などない
メーカーはすぐサポートを打ち切る
10年後も同じように使えないツールは使い物にならない
Unixのコマンドなら10年後も使える
206デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:36:51.42ID:/A8hhUIw
>>202
> rsyncは許容しているかわかるか?

日和ってんじゃねえぞカス、POSIXつらぬけよ軟弱者
207デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:37:51.38ID:+fBDwmx3
>>203
Unixのコマンドを使ったバージョン管理ならcp -Rpを使うだけ
日付+番号のディレクトリに移動するだけで
当時の環境を完全に再現することができる
208デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:40:31.77ID:/A8hhUIw
>>205
いや、あのね、gitが滅ぶくらいに一般に普及するすぐれたバージョン管理ツールが
できるならマイグレーションツールが作られるに決まってるよね

メーカーよりも個人が作りそうな気がするけどなあ
メーカーが作ったものがgitを滅ぼすくらいに普及するとは思えないし
当然無料で提供されるものだよ、オープンソースでなかったら
オープンな実装をする人が出てくるだろうね、gitがそうであったように

あなたはUnixを高めようとするあまり視野狭窄に陥ってるように思える
209デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:43:01.85ID:/A8hhUIw
>>204
7zで?
2021/09/10(金) 17:44:12.61ID:dS7angqs
>>208
共同開発時に、GUIツールでそれぞれがソースの一部を修正し、どこを修正したか
あとから見て分かることは便利だが、Visual Source SafeやTeam Foundation Server
ではそれが出来る。
gitでは基本そんな便利なツールが無い。
2021/09/10(金) 17:44:34.94ID:dS7angqs
>>209
gitよりは便利。
212デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:45:14.69ID:+fBDwmx3
>>210
Unixのツールならdiffを使うだけだな
gitなんぞに頼るからそういうことになる
213デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:46:14.33ID:/A8hhUIw
>>200
えっと、gitはバックアップツールではないので
バックアップすることだけが目的ならgitは使う必要ないと思う

gitはバージョンな管理ソフトだからgit使うとプログラムの開発がすごく捗るよ
214デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:46:27.82ID:/A8hhUIw
>>211
7zが?
215デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:47:58.58ID:/A8hhUIw
>>212
gitもdiff使うだけだな
216デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:48:15.10ID:/A8hhUIw
7zてめえはどうなんだよ?あ?
217デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:51:34.07ID:/A8hhUIw
gitはLinusが大量のパッチを差分確認してマージするために作ったツールだからなあ
218デフォルトの名無しさん
垢版 |
2021/09/10(金) 17:58:12.89ID:/A8hhUIw
>>207
なんだそのクソ面倒くさい作業は

ディレクトリ移動したらファイルパス変わっちゃう・・・
219デフォルトの名無しさん
垢版 |
2021/09/10(金) 18:04:26.74ID:/A8hhUIw
>>202
ハードリンクに頼ったらリモートに対応できないんじゃないっすかね?
リモートに対応できなかったらディスク障害起こってドカーンですよね

圧縮しておいてワーキングツリーに展開する方式のほうが
ローカルでもリモートでも処理に一貫性があってシンプルでわかりやすくてすごいですよね

Unixは良いものだと思うけど原理主義はよろしくないね
rsyncで日和るくらいならgitでも日和れば良いよ
220デフォルトの名無しさん
垢版 |
2021/09/10(金) 18:08:39.91ID:/A8hhUIw
gitでできるようなことはファイルシステムでできるのが理想なのだろうけどね
人間がフォルダ管理するのではなくてファイルシステムがgitの機能を持つって意味ね
いまは過渡期なのかもね
221デフォルトの名無しさん
垢版 |
2021/09/10(金) 18:13:55.47ID:/A8hhUIw
>>192
うんあのそれはわかったよ
ローカルで使うなり自分専用のサーバ用意するなりすればいいよね
gitはgithubじゃなくても使えるんで
222デフォルトの名無しさん
垢版 |
2021/09/10(金) 18:16:23.35ID:/A8hhUIw
バックアップが大事だと思うなら
サーバでgitのリポジトリをバックアップしとけばいいと思うよ
バージョン管理もできてリモートのおかげで障害にも強くてバックアップもあって万全
223デフォルトの名無しさん
垢版 |
2021/09/10(金) 18:29:05.86ID:+fBDwmx3
>>218
それぐらい工夫しろ
いいか諸君、機能が無いと不満を言っても始まらぬ。
シェルスクリプトを書くなり何なりして、自力で解決するのだ!
224デフォルトの名無しさん
垢版 |
2021/09/10(金) 18:34:22.95ID:+fBDwmx3
バージョン管理ソフトは目的を失っった。バージョン管理ソフトウェアのそもそもの目的は何だったのか。
開発を続け、バージョンアップしていくソフトウェアの維持管理に要するコストの抑制であったはずだ。
これは、我らがソフトウェアを5年、10年と生き長らえさせようとする、その根底に流れる目的そのものである。

ソフトウェアはバージョンアップする。新しいコードを加え、古いコードは切り捨て、時には依存するライブ
ラリーを付け替えもする。その変わる様をすべて 届けることがバージョン管理ソフトウェアの役割であり、
それができて初めてまともに維持管理コストの抑制が実現する。

ゆえに「バージョン管理ソフトウェアは、ライブラリーの類よりも遥かに長く生き長らえなければ意味がない。」
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

ところが実際はそうなっていない。「バージョン管理ソフトウェアの維持管理」を強いられる。
本末転倒もいいところ。お前は何を言っているんだ。
225デフォルトの名無しさん
垢版 |
2021/09/10(金) 18:43:38.33ID:/A8hhUIw
>>223
はい!git使います!
226デフォルトの名無しさん
垢版 |
2021/09/10(金) 18:47:10.42ID:/A8hhUIw
>>224
「バージョン管理ソフトウェアの維持管理」を強いられてるの?
gitのコミッタでもやってるん?
227デフォルトの名無しさん
垢版 |
2021/09/10(金) 18:58:50.07ID:/A8hhUIw
自明のことだけれども
gitは維持管理のコストが十分に小さく
使うメリットが大きいから多くの人に受け入れられてるんだと思うよ

そういう現実から目をおそむけになって本末転倒と言われましてもね
それはこちらのセリフですぞと思うわけでございましてね

>>1 の大学で教えてる人ってPOSIX原理主義の人なのかな
228デフォルトの名無しさん
垢版 |
2021/09/10(金) 19:02:17.92ID:/A8hhUIw
縛りプレイはそれはそれで楽しいからPOSIX原理主義も嫌いじゃないけど
gitはgitで仕組みがシンプルでUNIX哲学のKISSの原則に則ったソフトウェアで
gitはgitで良いんだよなあ
229デフォルトの名無しさん
垢版 |
2021/09/10(金) 19:09:42.28ID:+fBDwmx3
>>228
gitはUNIX哲学のKISSの原則を理解しておらぬ
KISSの原則とは誰でも使える道具だけを使ってソフトウェアを作ることだ
つまりUNIXコマンドのことだ
gitのような特定の人しか使えない道具に依存することでは断じて無い
gitが使えない状況になった時に作業できないのでは本末転倒だ
230デフォルトの名無しさん
垢版 |
2021/09/10(金) 19:25:06.02ID:/A8hhUIw
>>229
> gitが使えない状況になった時に作業できない

こういう現実的でない状況を想定しないといけない時点で何かおかしいと思うよね

> KISSの原則とは誰でも使える道具だけを使ってソフトウェアを作ることだ
> つまりUNIXコマンドのことだ

これは単純に嘘だよね

非現実なことを言ったり嘘を言ったりしないとUNIXコマンドの素晴らしさを説けないなら
UNIXコマンドなんてクソですわ、PISIXなんてうんこですわ

でもYouTuberとしてなら活路がある気がする

原始人のような生活をしてPrimitive Technorogyというジャンルで
人気を集める動画があるからね

そういう趣味趣向としてなら一定の人たちに刺さるコンテンツにはなると思う

もし収益が得られたらそのお金でgitのサーバ立てたら良いと思う
231デフォルトの名無しさん
垢版 |
2021/09/10(金) 19:28:03.86ID:/A8hhUIw
>>229
ところであなたはOSはNetBSDとか使ってるの?

FreeBSDもLinuxも基本コマンドはシンプルさとは程遠い実装になってるじゃん
あれはダメだよね、性能だけを追求してエレガントさをなくした闇落ちコマンドだよね
232デフォルトの名無しさん
垢版 |
2021/09/10(金) 19:28:27.88ID:+fBDwmx3
>>230
wikiを読め!
https://ja.wikipedia.org/wiki/KISS%E3%81%AE%E5%8E%9F%E5%89%87

この原則の実例として次のような逸話がある。ジョンソンが設計チームに
一握りの工具を手渡して、平凡な整備員が戦闘状況で、この工具だけを使って
修理ができるようなジェット戦闘機を開発しろと課題を出したのである。

これをソフトウェア開発に当てはめると、平凡な開発者がUNIXコマンドという工具だけを
使って作れるようなソフトウェアを開発しろということだ
233デフォルトの名無しさん
垢版 |
2021/09/10(金) 19:28:36.77ID:E1Nw8KVf
いや、gitはPOSIX2018から標準コマンドだから。
2021/09/10(金) 19:28:37.85ID:cyYUC2eh
チーム開発での混乱を少しでも軽減することが大事であって
10年前のレガシーコードとかクソどうでもいいんだが
235デフォルトの名無しさん
垢版 |
2021/09/10(金) 19:31:27.81ID:/A8hhUIw
>>232
隅々までよんだけど、FreeBSDやLinuxの基本コマンドのような実装をするべきではないという旨が書いてあった
FreeBSDやLinuxの基本コマンドはUNIX哲学に完全に反してるわ、基本コマンドの使用を禁止して
クリーンな実装と置き換えるべきだと思いました
236デフォルトの名無しさん
垢版 |
2021/09/10(金) 19:34:16.11ID:/A8hhUIw
NetBSDとOpenBSDは基本コマンドをすごくシンプルに実装してるよね、あれこそがUNIXなんだろうなって思う
237デフォルトの名無しさん
垢版 |
2021/09/10(金) 19:34:30.47ID:+fBDwmx3
>>230
> こういう現実的でない状況を想定しないといけない時点で何かおかしいと思うよね
どこが現実的でないというのか?
バージョン管理ソフトは実際にrcs、cvs、svn、gitと何度も変わっておるだろう

時代によって使うものが替わり、新しいバージョン管理ソフトウェアが流行りだせば
その使い方を覚え直し、時にはリポジトリーの移行を強いられてきた

よくもまあ、懲りずにと言ったところだが、我らはもうたくさんだ!
もしかすると、きさまらは「gitを覚えれば安泰だ」などと思っているかもしれんが、
あと数年、遅くともあと5年も経てばきっと次のバージョン管理ソフトウェアが登場し
覚え直しとリポジトリーの移行を余儀なくされることだろう
238デフォルトの名無しさん
垢版 |
2021/09/10(金) 19:35:19.10ID:/A8hhUIw
POSIX原理主義の人へ
>>233を見たか? どうなんだ? gitよりPOSIXの方が先に変化しそうですが、POSIXやばくないですか?
239デフォルトの名無しさん
垢版 |
2021/09/10(金) 19:37:42.04ID:/A8hhUIw
>>237
覚え直すくらい余裕だしリポジトリーの以降も余裕っしょ
gitはシンプルでサクサクで素晴らしいと思ってるけど
それを置き換えるような優れたバージョン管理ソフトが出てくるのは楽しみでしかないけどなあ
240デフォルトの名無しさん
垢版 |
2021/09/10(金) 19:39:04.31ID:+fBDwmx3
>>238
デマを流すな。POSIXにあるバージョン管理ソフトウェアはsccsだけだ。
だがこれは使わないと断っておこう
これはオプション扱いであり、これがサポートされたUNIX系OSは今やほとんどないからだ
241デフォルトの名無しさん
垢版 |
2021/09/10(金) 19:46:13.29ID:+fBDwmx3
>>239
大工と我々のエンジニアで、一つだけ大きく違うところがある。
大工は高度な技術を身に付け、日々その能力を発揮し、素人には真似できない仕事をする。
一方、我々は、高度な専門知識や技術を身につけても、普段はそれを活用しない。
むしろ、誰でも真似できるように噛み砕き、あえて高度ではないやり方で仕事をする。

常に技能を求められる職人仕事は別だが、事務仕事における人間の作業内容はそれほど複雑ではない。
というより、ルーチンワークになるところまで分割されていることが多い。
あまり複雑にしすぎると、業務が属人化して引き継ぎが難しくなり、人材流動のある企業活動が現実的ではなくなってくる。

人が理解できるレベルでの処理をPCにやらせるのに、これまでの担当者が理解できないような
高度な技能が必要となるようなやり方をする必要はない。これまでと同じレベルでの難しさで開発および操作できる必要がある。

こうした当初の目的を忘れることがないように我々は心得三箇条をもっている。

一、人手の作業を模倣せよ。
一、誰でも読めるコードに訳せ。
一、とっとと終わらせ、飲みに行け。

我々の手法は自動化と誰でも使用できることに注力した結果、わかりやすさと作業時間短縮を強く意識させるものになっている。
我々の間では「不慣れな技術はやめて、慣れてる技術で片づけてさっさと飲みに行こう。コロナのせいで店が閉まるのが早い」
というフレーズが飛び交っている。
242デフォルトの名無しさん
垢版 |
2021/09/10(金) 19:53:24.46ID:/A8hhUIw
>>241
そんな自己啓発本に載ってるような安い文章に感化されてしまったの、なさけない
他人の言葉を引用するんじゃなくて自分の経験から出た自分の言葉はないものなの?
どうもあなたの中身が空っぽに思えて仕方ないんだけれども

OSのパッケージマネージャは使ってるでしょ
標準以外でも使うと便利なコマンドってあるよね
gitも使ってええんやで
243デフォルトの名無しさん
垢版 |
2021/09/10(金) 19:54:32.74ID:/A8hhUIw
> 一、誰でも読めるコードに訳せ。

FreeBSDやLinuxの標準コマンドはこれを守ってないんだけれどもそれについてはどう思う?
244デフォルトの名無しさん
垢版 |
2021/09/10(金) 19:58:30.03ID:/A8hhUIw
開発をスムーズにすすめることが目的の場合
POSIXにこだわることは目的を見失うことになるような気がする
gitという優れたコマンドがすでにあるならそれを使うべきじゃないかな
シェルスクリプトを一生懸命考えて書く時間あるならgitでサクッと解決して飲みに行ったらいんじゃないかな
245デフォルトの名無しさん
垢版 |
2021/09/10(金) 20:17:22.05ID:+fBDwmx3
gitは高度なやり方である。我々は高度な専門知識や技術を身につけても、普段はそれを活用しない。
誰でも真似できるように噛み砕き、あえて高度ではないやり方で仕事をする。
gitを使うと業務が属人化して引き継ぎが難しくなり、人材流動のある企業活動が現実的ではなくなってくる。
これまでの担当者が理解できないような高度な技能が必要となるようなやり方をする必要はない。
246デフォルトの名無しさん
垢版 |
2021/09/10(金) 20:20:15.01ID:/A8hhUIw
>>245
そうかな、gitはいまどきデザイナも使うくらい広まってるよ
gitでできることをシェルスクリプトで作りましたので保守してくださいと
言われる方がつらいと思うけどなあ

POSIX原理主義の方が属人性すごいと思う
2021/09/10(金) 20:24:32.73ID:BvzuEO+M
独りで開発してると正直gitいらんかもしれない
でもpushでリモートにコピーできるのは便利かなァ
2021/09/10(金) 20:27:59.48ID:pn7y7rhP
>>245
×あえて高度ではないやり方で仕事をする
◯僕は新しいことを覚えられないから自分が知ってるやり方だけで仕事をする
2021/09/10(金) 20:29:15.00ID:pn7y7rhP
>>237
あんたの言うところの我らって誰?
脳内の別人格の皆さん?
2021/09/10(金) 20:34:58.50ID:An9suLEf
はっきりしてるのはこんなドブスレで爺さん相手に暇潰しても得るものはないということだな
2021/09/10(金) 21:55:19.99ID:kAVp3Lay
漏れは、以下のRuby スクリプト内で、7zip を起動して、
drag & drop した複数のファイルの、SHA256 のハッシュ値を取得しているけど、
以下のように、出力が多くて、単純にハッシュ値だけを取得できない

Size: 623
SHA256 for data: C40DD428B8F4A8D528BE9BD26BAC0F67C75A5E3669F72242AD122703E80EF69E

それと、日本語のファイル名も、文字化けして出力される

command = "C:/Program Files/7-Zip/7z.exe"
option = " h -scrcsha256 "

p ARGV # 配列
puts "-" * 20

# SHA256 の Hash (CheckSum)
# 7z h -scrcsha256 "C:\Users\Owner\あ.txt"

ARGV.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each do |full_path|
res = `#{ '"' + command + '"' + option + '"' + full_path + '"' }` # コマンド実行

puts full_path + res + ( "-" * 20 )
end

# コマンドプロンプトを経由しない際に、
# 出力したコマンドプロンプト画面を閉じないようにする
sleep
2021/09/10(金) 22:00:47.40ID:sC58HZ25
POSIX原理主義者の人の、口調しか真似られないの悲しすぎない?
あっちはちゃんと殴るための武器を自前で作ってくるのにこの駄劣化さんは叩き台も提示できない…
2021/09/10(金) 22:16:30.29ID:xoZ3IzsZ
うちの会社のPGは全員git使えるけどな
PGなら今時git使えて当たり前だろ
254デフォルトの名無しさん
垢版 |
2021/09/10(金) 22:54:43.79ID:+fBDwmx3
>>252
ならば叩き台を提示してやろう

目先のことしか考えていないバージョン管理ソフトウェアに辟易し、今ある道具と知恵のみで
シンプルに長く管理する我々のたどり着いたバージョン管理のやり方はいたってシンプルだ。

・一般的な UNIX コマンドとシェルスクリプトだけを使う。
・他に使っていいのは頭だけ。コマンドをどう使うかという知恵を絞るために。
・ファイル一式?スナップショット?は、「コミット」ではなく、日付+番号を付けたディレクトリーに「コピー」するのみ。
・過去のリビジョンの閲覧や比較・分析は、find、xargs、grep、diff などを駆使したワンライナーでこなす。
・ブランチやマージなどの高度な概念に頼る前に、しっかりコメントを残す。

リポジトリーへの保存はバージョン管理の最低限ではあるが、それだけでは不十分だ。
どのように不十分か分かりやすく言えば、「困った時はソースを読め」と言ってるるのと同じことだ。
ソースがあれば他のドキュメントは不要という変わり者でなければ、しっかりコメントを残すことだ。
最も大切なのは、ソースファイルや設定ファイルなどの冒頭に、動作に差し支えのない範囲でコメントを残すことだ。そこに、次の情報を含める。

・このファイルの名前
・このファイルの概??何をするものかを簡潔に?
・最終編集時に施した修正内容
・最終編集者(最終編集者)以外は書かない?
・最終編集日?最終編集日以外は書かない?
255デフォルトの名無しさん
垢版 |
2021/09/10(金) 22:55:05.49ID:+fBDwmx3
コメント例

######################################################################
#
# プログラムや設定ファイルの名
# そのプログラムの概?
#
# その他のコメント……
# ・このリビジョンで何をしたのか
#
# Written by 最終編??on 最終編?日
#
######################################################################

プログラムの途中にコメントを残すのもよいが、冒頭にも残す。途中に書いてあるだけでは、書いてある場所を探すのが手間だ。
また、最終編集した際の日付と人(メールアドレスなど)も残す。長年経った時に、そのリビジョンをいつ誰がが作成したのか把握するためだ。
それが他人であった場合、わからないことがあればその者に聞けばいい。
だたし、複数人で手を入れていたとして、最終編集者でない者の名前や日付を残す必要はないし、むしろ消すべきだ。
歴代の担当者が知りたくば、リポジトリーに残っている過去のリビジョンを見れば済む。
同様の理由で、修正前のコードをコメントアウトした状態で残す悪習も止めること。
2021/09/10(金) 23:03:41.84ID:FsmeH+FF
マシンリーダビリティ皆無
257デフォルトの名無しさん
垢版 |
2021/09/10(金) 23:06:14.61ID:+fBDwmx3
ソースコードのコメントとして、誰が最後に編集したのか
その名前と日付とメールアドレスを残すということが重要だ
もちろん吾輩も実践しておるぞ
258デフォルトの名無しさん
垢版 |
2021/09/10(金) 23:56:31.26ID:+fBDwmx3
>>252
それからお前は一つ勘違いしているぞ
我が書いたのはすべてこの本に書いてあることの受け売りだ

初めてのPOSIX原理主義
https://richlab.org/coterie/lpf.html
超進化を遂げたシェルスクリプトを学ぶ15回の講義
2021/09/11(土) 00:19:33.88ID:FLpw4YrF
ID:+fBDwmx3 はやたらとUNIXUNIXと連呼してるが何使ってきたん?
俺は学生時代はBSDとSolaris使わされたけど
それ以降はLinuxとWindowsしか使ってないわ
2021/09/11(土) 01:12:17.74ID:PFLibieQ
そんな彼らシェルショッカー日本支部の成果物はこちらでバージョン管理・頒布されております
https://github.com/ShellShoccar-jpn
2021/09/11(土) 02:11:18.55ID:0UCj7j6M
ちなみにPOSIX原理主義を唱えているのは有限会社USPしかおらんし、
彼らがPOSIXを濫用して作った応答性と並列性に無頓着なシステムはUSPしか改修に手を挙げない
標準に従っているのに短命要素しか無いねえ
262デフォルトの名無しさん
垢版 |
2021/09/11(土) 02:19:10.14ID:Iqs4bETa
1年くらい前にシェルスクリプトでWebサービスを作るユニケージ開発が話題になったけど
それを数年前に本格的に導入したハンズラボはいまでは技術的負債と言ってる
開発を担当した本人たちですら数年持たなかったんだよね

なんでもかんでもシェルスクリプトでやろうとするのは
趣向としての面白さがあるからこれは素晴らしいものだと思えるけれども
使い勝手や保守性、性能はそんないいもんじゃないってのが実際のところ
263デフォルトの名無しさん
垢版 |
2021/09/11(土) 02:24:24.24ID:Iqs4bETa
それがハマる分野ハマる規模のものはあるのだろうけどね
そういう少数のユーザを狙い撃ちするような小規模だけど鋭いプロダクトは
まあなかなかかっこいいものはあるかな
264251
垢版 |
2021/09/11(土) 02:45:39.85ID:IblrjkB0
何でもかんでも、シェルスクリプトじゃ保守できない

だから漏れは、何でもかんでも、Ruby で作る。
コマンドも、Rubyスクリプト内で呼ぶ

例えば、apt upgrade も、Rubyスクリプトで書いてる

#!/usr/bin/env ruby

# sudo のパスワードを自動入力する
# echo <your_password> | sudo -S <your_command>

puts `echo パスワード | sudo -S apt-get update`

puts `sudo apt-get upgrade -yV`

それと、>>251
で、7zip を使っている香具師に、
どうやってハッシュ値だけを取得するのか、教えてもらいたい
2021/09/11(土) 03:28:30.64ID:bRIwOh2/
フォルダ管理だと複数人で開発するときのマージが面倒臭い
一人ででも直近の更新履歴が自動でわかるのは便利

んでもって毎回フォルダ全コピーはデカイデータも一緒に管理してるときに
コピー時間にやたらと取られるのでやめたほうが良い
それのフォーマットがプログラムと連動してる場合もバージョン毎の管理が必須なのでオススメできない
2021/09/11(土) 05:18:41.28ID:ENehYciN
>>260
公式サイトがwikipediaでワロタw
広告・宣伝活動のような内容になってるって書いてあるし
自分でページ作ってリンクしてるだろ
2021/09/11(土) 06:02:11.21ID:ENehYciN
>>258
そのリンク先に講義内容が書いてあったんだけど

> そんな中,まさにその疑問や悩みに応えるような内容の講義「シェルスクリプト言語論」を
> 金沢地区の大学向けに、2016年から開講してきました.ここまで4回(4年)開講し,
> 内容が洗練されてきたところでついに書籍化しました

https://richlab.org/j/2772

その12回目と15回目にcp -prとかrsyncつかってfindやgrepやdiffを駆使しろって
書いてるんだけどマジでこんな内容教えてるの?
ネタとわかっていて受講してる人ならいいけど、本気でやってる人は可哀想

デカデカと赤い文字で「これで事足りていないか?ソフトに安易に頼りすぎ。」って
書いてあるけど普通に足りなすぎだろ。
バージョン管理をバックアップソフトと勘違いしてないか?

この講義やってる
金沢大学総合メディア基盤センター 大野浩之
ユニバーサルシェルプログラミング研究所 松浦智之
ってなにもの?
2021/09/11(土) 06:04:08.68ID:ENehYciN
あ、wikiに書いてあった
この講義やってる二人ってユニケージの社員じゃんか
269251
垢版 |
2021/09/11(土) 06:45:59.52ID:IblrjkB0
さすがにシェルスクリプトでは、プログラミングできない

Vagrant, Chef, Cookpad 製のItamae, AWS のKumogata2 は、Ruby製。
さすがにサーバーの構築運用は、Rubyが標準

今は、Go 製のDocker になったけど。
他には、Kubernetes, Terraform とか
270251
垢版 |
2021/09/11(土) 06:54:36.59ID:IblrjkB0
シェルスクリプト・POSIX などを言う人は、Linux じゃない

Unix の時代の人。
数十年前の話

まさか、AWS とかクラウドで、Unixを使う香具師なんていないだろ。
たぶん、オンプレで数十年前の話だろう
2021/09/11(土) 09:08:41.03ID:0UCj7j6M
視野が狭い
ツールを使う中で自然と得られる、ツールに限られない知識を見ないふりしている
シェルの抽象化力が低いことに由来するメンテナンス性の低さを無視している
gitがOSSであることも無視している

あとコメントを過大評価している
しっかりしたコメントさえあればアセンブラでもCOBOLでも改修難易度は同じとか思ってないかね
272デフォルトの名無しさん
垢版 |
2021/09/11(土) 13:58:05.19ID:CPeqz/gU
git手を見る…
2021/09/11(土) 14:48:12.87ID:WRGMhX/P
>>153
既存の方法じゃとにかく遅い
Linuxカーネルくらいのサイズになると
ソースコード管理ツール経由よりtar.bz2を転送した方が速い
というのがgitの動機の一つだからね
サイズ小さくしないと転送レート上がらない

まあ嫌な人は転送時やアーカイブ時だけ圧縮するツールでも作れば?
2021/09/11(土) 14:49:42.97ID:WRGMhX/P
>>271
shの不自由さ(と利点)はむしろ抽象度が高すぎる事なのでは?
2021/09/11(土) 18:39:12.53ID:XHaUvkRC
>>260
えー、マジでこの人、ソースコードに編集者の名前と編集日書いてんの?

https://github.com/ShellShoccar-jpn/kotoriotoko/blob/master/BIN/bretwer.sh

他の人が修正したりプルリク受け取ったりしたらどうするんだよ
前時代的なバージョン管理してんなぁ

あとソースコード読みづらすぎ
いくつか見てみたけど、コピペばっかりしてんじゃん
2021/09/11(土) 19:03:46.87ID:KOXto9cY
POSIX原理主義者って自分で作ることが偉いと勘違いしてそう
俺はPOSIXコマンドだけで実現したすげーだろって言ってるようだけど
gitの劣化版を車輪の再発明してるだけに過ぎないのに
277デフォルトの名無しさん
垢版 |
2021/09/11(土) 19:12:45.10ID:ME1s0Iiz
ギフハフとかいう悪の組織で配布してるけど、バージョン管理はUNIX標準コマンドだけでやってるってことか。
カッコええな。
2021/09/11(土) 19:14:39.88ID:/fYkkEDe
ID:+fBDwmx3 サンがどのUNIXをどの程度触ってたのか気になるw
2021/09/11(土) 19:18:44.68ID:KOXto9cY
そんなにPOSIXコマンドとシェルスクリプトだけで作るっていうのなら
配布もPOSIXコマンドとシェルスクリプトだけでやればいいんだよ
配布するだけなら、GitHub使う必要もなかろう?

自分でPOSIXコマンドとシェルスクリプトだけで
ウェブサーバーを作ってさ。ネットワークどうするのか知らんけどw
2021/09/11(土) 19:20:40.96ID:KOXto9cY
ああ言いたいことが抜けていた。
つまりねPOSIX原理主義者ってPOSIXのことわかってないでしょ?ってこと
ネットワークはPOSIXの機能だけど、シェルスクリプトからは使えないんだよ
POSIX原理主義が何に対しての原理主義なのか全くわからんよね
281デフォルトの名無しさん
垢版 |
2021/09/11(土) 19:28:15.98ID:ME1s0Iiz
昔使ってた三次元測定機がHP-UXだった。
UNIXなんてその程度しか見たことない。
2021/09/11(土) 19:32:56.71ID:/fYkkEDe
シェルスクリプトってそんな喜んで書きたいものじゃないよね?プログラマ的には
cshもbashもイライラさせられたわ
283デフォルトの名無しさん
垢版 |
2021/09/11(土) 19:36:39.72ID:ME1s0Iiz
まあ書きやすくはないよね。
そこでシェルスクリプトの代わりにRubyを使おうという寸法です。
2021/09/11(土) 19:41:05.96ID:KOXto9cY
ユニケージとかPOSIX原理主義者がなんでわざわざ
シェルスクリプト縛りを始めたのか理解できんわ
両方使えばいいんだから縛る必要ないじゃん
シェルスクリプトしか使えませんっていうのならわかるけど
2021/09/11(土) 19:42:32.28ID:/fYkkEDe
俺もrubyで書いてたわ
Dir.globとかあるし色々ラクだったわ
286デフォルトの名無しさん
垢版 |
2021/09/11(土) 19:44:54.59ID:ME1s0Iiz
>>284
そこはロマンじゃないか?
2021/09/11(土) 19:49:38.97ID:KOXto9cY
>>283
POSIX原理主義者いわく、Rubyは熟練してないとインストールが難しい

https://docs.google.com/presentation/d/1AlkDbpFVZvQI5sAuTJjItN8BLMlxM2YuImhysBrJPCs/edit#slide=id.g129cff22fc_1_14
> 有名なUNIX用Twitterクライアントの多くは、Ruby 1.9以上+gem を要求する。
> (やればわかるが)熟練していないとインストールが大変


POSIX原理主義者いわく、Perl、Ruby、Python は標準語(?)ではない
https://docs.google.com/presentation/d/1ZSt0gLQfAQBRobw_L6e_zzlqhu4BXKcDTkKts90bqIk/edit#slide=id.g14222e8143_0_39

POSIX原理主義者いわく、Perl、Ruby、Python を作ってるのが一団体しかない
(あれ?Rubyって複数の実装があったはずだけど?)

POSIX原理主義者いわく、一製品に依存し、替えられない状態を「ロックイン」と呼ぶ。
(その理屈だとユニケージやPOSIX原理主義者が作ってるツールはロックインだね)


なんつーか、矛盾しまくりの理論でこんなんに騙されるやつって
よっぽどの馬鹿しかいないと思うんだけど
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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