アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー
ロックは要らんかねー? (スコア:1)
ロック・修正・ロック解除の解法 [bluegate.org]
を見るたびに思うんだけど、ロック方式ってそんなに全否定されるべきものなんでしょうか?
まず、適切な「マージ」が定義できないファイル形式(すなわちdiffがあまり意味をなさない形式)については、
この「更新が衝突したら、あとでマージすればいいでしょ」という戦略は
戦略自体が適用不可能なのでは?という疑問が拭えません。
よく知らないんですが、もしかしてSubversionの「マージ」は
オブジェクト指向のように「多態」することが出来るんでしょうか?
つまりファイル形式ごとにマージ
業務での開発においてはロックは不要だと思います (スコア:0)
必要かもしれない、と思った瞬間はありますが、それは、「ルールを守らないメンバーに対するフェールセーフ」でした。しかし、そもそも、プロジェクトにそんなメンバーがいること自体が問題であり、それは、技術的に解決するものではないと思います。メンバを「ルールを守らせる」という方向で教育したり、よくコミュニケーションをとることで、解決することが多かったです。
また、おなじソースを同時に複数のメンバーがつつくような状況というのは、ひとつ
ソフトのソースに限った事情なのかも>非ロック (スコア:1)
確かにソースについては、俺もロック要らねーなと思うんですが、
それはソースというものの(特殊)事情に拠るんじゃないか?と。
事情とは、例えば、
○テキストである。行指向であるか、そうでないにしても人間の目を併用すれば行指向もどきと見なせる。→diffに意味が有る
○各ファイルが、機械は勿論、人間にとっても、ほどほどの大きさである。規模という意味で可読性が有る。→マージ作業が可能
○その内容(意味)において、ファイル間の依存関係が、結構強いし複雑だ。→ファイル単位のロックは非常に頻繁に無意味
といった所でしょうか。
これら(とか)を満たすデータならば、非ロック型管理が向いているんだと思います。
#ちなみに「業務」かどうかは無関係だと思います。OpenSourceみたいにしばしば業務じゃないものでも非ロックは有効です。
でも、そうでないデータなんてものも、世の中には一杯あると思います。
○テキストでない。→Wordファイル(^^;やCADファイル
○あるいはテキストでも(物理)行指向っぽさが乏しい。→XMLの行指向diffって意味有るの?
○大きすぎる→巨大なファイルなんて幾らでもあるでしょう。
○ファイル間の依存が無いか少ない。→それこそワープロとかだと、わざわざそうしない限り、依存関係なんてあんまり無いですよね?
で、そういう分野であっても、バージョン管理そのものは充分有用なのです(いちいち説明は不要と思いますが)。
だから普及して欲しい。
せっかくだからOpenSourceモノが(^^;。
Officeソフト用にゃ高額な商用のVersion管理ツールしか無い、ってのは寂しいんで。
-----
>また、おなじソースを同時に複数のメンバーがつつくような状況というのは、
>ひとつの機能に対して複数の修正を複数のメンバーがかけていることになります。
ん?それは非ロック(マージ)方式を否定する話になってしまうのでは?
単に「同一ファイルは同時にいじっちゃいけない」という話をするだけでいいならば、
ロック方式のほうがマシです。なにせ同時にいじらないことをシステムが保障してくれるんですから。
マージ方式ってのは、「それでもやっぱり、同時にいじることは避け難い」
という処から話が始まっているんだと思いますが。それこそLinuxのソースとかね。
ソースについては、それこそアスペクト指向でも全盛にならない限り(^^;、
同時にいじるのは避けられない状況が続くと思います。
関数型だろうがオブジェクト指向だろうが、そういう問題は(常にではないけどイツかは)不可避になります。
>無駄に思えるかもしれませんが、小さい修正をひとつひとつ検証していただくほうが、全体の作業量は抑えられるように思います。
あのー?それならばロック方式でもいいじゃないですか?
つまり、どうせ(1ファイルまたは1プロジェクトについて)同時には一人づつしか修正作業をしない、
っていう話なのですよね?
それならロックしても(しなくても)痛くないですよ。それだけのこと。
…ところで余談ですが、開発においては「全体の作業量を抑える」ことが最優先事項だ、というわけではないと思います。
どっちかってーと「結局かかる時間を抑える」のが最優先じゃないかな。
だからこそ(ソースでは)非ロックが役立つんだと思います。マージが。
つまり同時編集を敢えて見逃してあげる(そして後からマージによってフォローする)ほうが「速い」ということなのでは?
マルチスレッドの話と同じで、複数のアクター(開発ではプログラマ)が衝突を「気にせず」作業できる状態が、一番速いっすよね。
>ロックがかかったまま解除できなくなってしまったソースが大量発生し、にっちもさっちも行かなくなりました。
あのー。あなたが忌避なさってるのは、「ロック」じゃなく「同時編集」なような気がするのですが?
つまり、CVSとかを使っても、単に「修正を誰かがコミットし忘れてる」という恐れを「無視」してるだけ、
だったりしませんか?