パスワードを忘れた? アカウント作成
7591 story

Subversion 1.0.0 released! 46

ストーリー by wakatono
構成管理は完璧だ 部門より

tamo 曰く、 "subversion 1.0.0 がリリースされた。CVS の欠点 (mv できないなど) をすべて解決していると豪語するもので、 かなり予定に忠実にリリースされたことからも、 このバージョン管理システムの力が実感できるかもしれない。 なお、トップには 本家からの slashdotting の激しさをほのめかす内容がある。"

あらかじめ出ていたリリーススケジュールどおりに、無事1.0.0がリリースされた。
リリース前に、開発者の一人であるSussmanによって書かれた文書日本語版)があるが、この文書を読む限りはCVSの実装をより理想に近づけたのがSubversionといえる。また、Subversionを詳細に理解するのであれば、Subversionによるバージョン管理(日本語訳)が役に立つだろう。ちなみにSubversionは、Apache2と組み合わせることで、WebDAVのバージョン管理拡張の実装としても機能する。WebDAVマニアにもお勧めだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • SF.jpに (スコア:2, 興味深い)

    by .mjt (13150) <reversethis-{gro.ntlc} {ta} {tjm}> on 2004年02月24日 0時46分 (#501489) 日記
    導入されないかなぁ

    # 一応、dev-jのSubversionのページ [osdev.info]。
  • IDEとの連携は? (スコア:2, 参考になる)

    by Anonymous Coward on 2004年02月24日 0時50分 (#501491)
    私は CVS を使っています。漢字コードや mv の問題は確かに不便で、subversion が実用に耐えうるようなら(ファイルが壊れないことと複雑でない基本的操作が完璧に動くことが満たされれば開発中の点には目をつぶるつもり)移行してみようかと思いますが、IDEとの連携はどうなんでしょうか。
    例えば Visual Studio や Eclipse からは、 CVS を使うプラグイン/アドインがいろいろと存在して一通りの操作が IDE に統合された形で使えます。
    ぐぐったら、subclipse [tigris.org]なる Eclipse 用のプラグインとankhsvn [tigris.org]なる Visual Studio 用プラグインを発見しましたが、実際の使用感などはどうでしょうか?実際に使っている人が居たらコメントしてほしいなぁ。
    • by tmtk (15231) on 2004年02月24日 1時06分 (#501496)
      個人的にsubclipseを使用しています。実感としては使えないことはないが、もう少し、といったところです。

      Subversionは修正が入っているファイルは名前の変更や移動をすることができません。いったんコミットしないといけないんです。ですからこれが実にリファクタリングと相性が悪い。クラス名を変更しようして、そのファイルに修正が入っていると失敗します。しかも失敗時に出るダイアログの選択を間違える(やり直し、ではなく中止を選ぶ)と、中途半端に名前が変更された状態になってしまう。もとに戻すのに一苦労です(しかもよくやる)。

      これはEclipseがダメ、Subversionがダメということではないのですけどね。実際私はどちらもとても便利で大好きです。ただ、組み合わせると現状ではお互いのいいところを相殺してしまってる気がします。

      Eclipseを使うなら、特に複数人で開発するなら、SubversionよりはCVSのほうがトラブルが少ないように思えます。
      親コメント
  • by frea (6286) on 2004年02月24日 11時02分 (#501612)
    会社で使ってる CVS を subversion に以降したくて検討しているのですが、
    リポジトリ全体が1個のBerkeleyDBファイルに入ってしまうので、
    飛んだときが怖くてなかなか踏み切れません。

    #ちなみに、ディレクトリの整理がしたいってのが動機です。

    以前、(私の部署ではないのですが) MySQL で disk full がおきたとき
    レコードがいくつか飛んでアクセス不能になったことがあったり、
    disk error が起こるようになってしまったマシンで動いていた pgsql が突然落ち、
    その後、データが化けているのにも関わらず警告が無かったりしたので、
    BerkeleyDB ではどうなのか、と不安になっています。

    #RAID5のディスクが2台同時に逝ったトラブルもありましたが、
    #これは DB 側でどーこーできる問題ではないですよね。
    #そう考えると私の部署、トラブル続きだなぁ…

    正しいソリューションとしては、ディスクを買え、定期的に取り替えろ、なのでしょうが、
    予算が必要なものに関してはなかなか厳しいご時世でして…(泣

    下回りに使っているBerkeleyDBの安定性って、どの程度なのでしょうか?

    #この前 cvs2svn やってみたら、4ギガオーバーの .db が生成されてびびったのでID
    • あ~なるほど。32bit Filesystemのばあい、履歴が4G越えると
      それ以上どうにもならなくなるって事か。。。

      リポジトリを細かく切り分けてればいいのだろうけど、1つのリポジトリ
      を使いまわす運用な所だと結構早くパンクしそうですね。
      # 会社なんかだと、あまり細分化しない方針もあるだろうし。

      CVSと違って認証情報を複数のリポジトリで共有できるみたいなので、
      なんでも一ヶ所に押し込みたがるような人達さえいなければなんとか
      なるなるのでしょうけど。
      --
      wild wild computing
      親コメント
      • by frea (6286) on 2004年02月24日 13時50分 (#501677)
        1個1個のファイルは小さいのですが、合計が4G超えです。
        こんな感じです。

        # cd $(SVN)/db
        # ls -lh
        total 4.6G
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 1.7k Jan 19 14:53 DB_CONFIG
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 8.0k Jan 19 14:53 __db.001
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 264k Jan 19 14:53 __db.002
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 320k Jan 19 14:53 __db.003
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 696k Jan 19 14:53 __db.004
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 16k Jan 19 14:53 __db.005
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 37M Feb 12 10:20 changes
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 56k Feb 12 09:42 copies
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 1.0M Jan 19 20:40 log.0000000001
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 1023k Jan 19 20:40 log.0000000002
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 1020k Jan 19 20:40 log.0000000003
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 1023k Jan 19 20:40 log.0000000004
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 1020k Jan 19 20:40 log.0000000005
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 1.0M Jan 19 20:40 log.0000000006
        (中略)
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 1.0M Jan 19 21:41 log.0000003290
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 1.0M Jan 19 21:41 log.0000003291
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 798k Feb 12 10:20 log.0000003292
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 19M Feb 12 10:20 nodes
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 20M Feb 12 10:20 representations
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 144k Feb 12 09:42 revisions
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 1.3G Feb 12 10:20 strings
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 1.9M Feb 12 10:20 transactions
        -rw-r--r-- 1 xxxxxxxx xxxxxxxx 8.0k Feb 12 09:42 uuids
        親コメント
    • by G7 (3009) on 2004年02月25日 10時45分 (#502332)
      subversionって、その論理(?)的構造の改善(CVSと比べての)っぷりはすごく明らかなわけですが、
      背後の物理的な格納方式とかについては、また別問題なような気がしています。

      背後の永続データをCVS(RCS)に近い素ファイル形式で持つ
      っていう実装も、((よく存じませんが)もし無いなら)欲しい気がします。
      最悪の状況のときに1ファイル単位で復活作業をやるとかいう時に
      伝統的なテキストとパイプの世界(笑)だけで作業が済むと、便利でしょうから。

      ところでSubversionって「更新のAtomic性」を謳ってなかったっけ?
      どのレベルでの話かはよく理解してませんが。
      親コメント
    • さすがにディスクエラーじゃ、どんな DB だってまともに動かないでしょう。冗長性を上げていいんなら別ですが、FSにファイルを展開するより遅くなったんじゃ意味がないですから。
      • by frea (6286) on 2004年02月24日 14時02分 (#501678)
        さすがに、bad sector とかの場合とかは、データが失われるのは
        仕方ないと思います。そこまでの冗長性は期待してません。

        落ちないでほしいとか、disk full とかの (検知可能な) エラーの
        場合はINSERT 文をエラーで返すとかして欲しいな、と思うのですが、
        過大な要求ですかね?

        disk full のとき、そのレコードに対して SELECT すると落ちるとか
        いう状態になりましたので…。
        親コメント
  • by N'gatt (9815) on 2004年02月24日 0時20分 (#501475) 日記
    ここ半年ほど使っていますが、なかなか簡単でよろしげです。
    適当に作ったディレクトリ構成をあとで適切に変えられるのが素晴らしい。いつも最初は適当にディレクトリ切る人なので。

    ここでビルドが難しい [bluegate.org]と書かれていますが、普段からconfigure && makeしている人なら迷うことはほとんどなかろうと思います。まあapacheを併用しようとすると、バージョンによってはビルド失敗したりしますが、そこは最新版を拾ってくれば問題ないわけで。

    #私はCVSはどーにかこーにか使える程度しか知らないので、
    #比較してどーのとか書けないんですが…すみません。
    • by Anonymous Coward
      >まあapacheを併用しようとすると、バージョンによってはビルド失敗したりしますが、そこは最新版を拾ってくれば問題ないわけで。

      あれ?apacheなしでも動くんですか?>subversion
      apache必須みたいなんで敬遠していたんですが。

      #そんな私はRCSどまり(違
      ##なのでAC.
      • Re:祝。 (スコア:4, 参考になる)

        by tmtk (15231) on 2004年02月24日 0時41分 (#501485)
        svnserveというサービスが標準であります。
        ホームディレクトリにでも次のようにリポジトリを作ってサービスを起動してやります。
            $ svnadmin create myrepo
            $ svnserve -d
        あとはどこぞのクライアントから次のようにチェックアウトできます
            $ svn co svn://myhost/home/yourname/myrepo

        でもやっぱりApacheに組み込んだほうがブラウザでリポジトリを見れたり、
        アクセス制限できたりして便利です。
        親コメント
        • Re:祝。 (スコア:2, 興味深い)

          by Anonymous Coward on 2004年02月24日 1時14分 (#501501)
          > ホームディレクトリにでも次のようにリポジトリを作ってサービスを起動してやります。
          > $ svnadmin create myrepo
          > $ svnserve -d
          > あとはどこぞのクライアントから次のようにチェックアウトできます
          > $ svn co svn://myhost/home/yourname/myrepo

          そうそう、最初はやっぱりこういうのにターゲットを絞って説明して欲しいんですよ。
          「ぱぱっと簡単に管理できますよ」ってのがあると食いつきも違うってもんだ。
          それなのに、巷の subversion 紹介記事ときたら、確実に apache + mod_subversion 一色。
          最初に見て「えっ? なんで apache?」と当然考えると思う。

          でも本当はもっと後になってから Apache が見える方が絶対良いと思う。
          簡単に使ってて、他のインタフェースが欲しくなった時に、
          じゃ apache でやってみよう、ってなふうに。
          そんな風に紹介された方がすんなり使えると思うんだがどうだろう?
          親コメント
          • Re:祝。 (スコア:3, すばらしい洞察)

            by Anonymous Coward on 2004年02月24日 1時42分 (#501512)
            元AC [srad.jp]です。
            #いまさらIDにもどってもしょうがないので。

            subversionの利点というのは理解しているつもりです。
            #RCSにくらべたら、利点はおおいと理解しているつもりです。

            ただ、それを広範囲に(おおくのユーザに)展開する(理解させる)前に
            「それが使い物になるのか」
            という評価がいると思います(というか、私のところではいります)。

            そのとき、apacheが動いているマシンが必要だ、とかいうのはある意味で障壁になっています。

            「あれ?apacheなしでも動くんですか?>subversion
            apache必須みたいなんで敬遠していたんですが。」

            というのは、評価するのに、評価用マシンにapacheを導入しなければならない、という先入観を持っていたためです。
            (目にした「subversion」解説の記事がすべて「apache」前提だったためです)
            apacheなしで(localeで)subversionを評価できる(subversionの機能を制限する可能性はありますが)方法を記事にしてくだされば、検討しやすいと思います。

            #勝手な言い草に聞こえるかもしれませんが、ひとつの意見として。
            ##「記事を書け」といっているつもりではないです。ポインタを示してもらえれば……
            親コメント
            • by Anonymous Coward
              > (目にした「subversion」解説の記事がすべて「apache」前提だったためです)

              subversionの記事というよりはWebDAVの記事だったのでは。
              # それにしてもApache前提って...。典型的なFUD [bluegate.org]すぎてなんとも(^^;

              あとブラウザでリポ
              • by s-tomo (2841) on 2004年02月24日 9時22分 (#501577) ホームページ 日記
                > ViewCVSのCVS版でも可能ですよ。
                CVS版ってのはSubversion版じゃない方かと思ってしまった。
                親コメント
              • by Anonymous Coward
                FUDは言い過ぎでは? Subversionを悪く見せようという意図ではないのだから。

                # それともFUDの意味を分かってない?

                ちょっと試してみようと考えている人が公式ドキュメントのインストール説明 [bluegate.org]を読めば、apache必須と勘違いするのは無理からぬ所。
            • by Anonymous Coward
              本筋とぜんぜん関係ない揚げ足取りですが、

              >#RCSにくらべたら、利点はおおいと理解しているつもりです。
              CVSではなくて?

              >(localeで)subversionを評価できる
              ???? locale でも local でも意味がわかりません

              まぁ、細かいところだし、本筋の部分はそのとおりだと思います。
              • by steve (8972) on 2004年02月24日 11時02分 (#501613)
                # 単語反応。

                >>(localeで)subversionを評価できる
                >???? locale でも local でも意味がわかりません

                stand aloneでって意味じゃないかな?
                親コメント
            • by Anonymous Coward
              CVSから始めてみては。
              お望みのレベルの解説は山ほどあると思います。
        • Re:祝。 (スコア:2, 参考になる)

          by WATT (7709) on 2004年02月24日 1時41分 (#501511) 日記
          > でもやっぱりApacheに組み込んだほうがブラウザでリポジトリを見れたり、
          > アクセス制限できたりして便利です。

          しばらく前のアップデートで、svnserveでも認証とアクセス制限が出来るようになりました。日本語訳 [bluegate.org]にも入ったようなのでお試しください。
          とかいいつつ、自分の周りではリポジトリにg+wしてSSHばっかりですが…。

          # 訳者さんには感謝です。
          親コメント
        • Re:祝。 (スコア:2, 参考になる)

          それどころかクライアントから

          $ svn co svn+ssh://myhost/home/yourname/myrepo

          としたらSSHログインしてsvnserveをテンポラリに立ち上げてSSH経由でチェックアウトして
          くれますね.
          下手にデーモン立ち上げるのは面倒だしセキュリティ的にも不安なのですごく重宝しています.

          MacOS X同士でファイルの同期をとる場合,AppleTalkもFTPもサーバー側でGUI操作しないと
          サービスが立ち上がらないので,私はもっぱらsubversionを使っています.

          それからバイナリファイルもちゃんと管理できるところがいいです.
          ウェブサイトの管理にも安心して使えますし.

          ただ,以前バージョンアップの際にレポジトリの互換性がなくなって(apt-getしたら気がつかない
          うちに・・・しかもLinuxではビルドできてもMacOS Xだとこけて・・)とても難儀したことが
          あったのですが,レポジトリのバージョンアップはダンプを吐き出さなくてもよくなったのでしょう
          かね?(<自分で調べろ)
          --
          kaho
          親コメント
      • Re:祝。 (スコア:2, 参考になる)

        by Anonymous Coward on 2004年02月24日 0時35分 (#501483)
        Apache は必須ではないですよ。
        ネットワーク越しに http でリポジトリにアクセスするときに、
        Apache を使います。

        Does this mean I have to set up Apache to use Subversion? [tigris.org]
        親コメント
      • Re:祝。 (スコア:2, 参考になる)

        by WATT (7709) on 2004年02月24日 1時24分 (#501505) 日記
        他の方も言っているようにsvnserveでCVSのpserverのような事も出来ますし、telnetやSSH経由でも出来ます。

        APR(Apache Portable Runtime)を使うので、apacheが必要だと思っていた知り合いもいました。このあたりはSussmanさんが書いたアンチFUDの冒頭にも書かれていますね。
        親コメント
      • Re:祝。 (スコア:1, 参考になる)

        by Anonymous Coward on 2004年02月24日 1時40分 (#501510)
        他の方のコメントもあるので蛇足になるかもしれませんが,
        Vine Linux に subversion (version 0.36) を入れて apache2 なしで
        使ってます.RPM で管理してると依存パッケージの多くを
        最新のものにする必要があって面倒なのですが,とりあえず
        configure に --enable-all-static をつけて build すれば,パッケージの
        依存関係を壊さずにインストールできた気がします.
        親コメント
      • by Anonymous Coward
        svnserve [bluegate.org] を使えばApacheは要りませんよ。 Apacheを使うのは、WebDAVで、Web経由でファイルを共有したいときですね。
      • by Anonymous Coward
        > あれ?apacheなしでも動くんですか?>subversion

        リンク先によれば、そのようです。
        私も、
        「え? apache + mod_subversion? なんで apache? 俺は CVS の代わりを探してるだけなのに...」
        と、思ってました。で、そのうち試そうと思ってはいたが、結局ずっと CVS。

        どれ、今度こそ試してみよう、かな。
  • by morohe (18573) on 2004年02月24日 21時48分 (#501994)
    TortoiseSVN [tigris.org] も
    23 February 2004 Version 1.0 of TortoiseSVN released! Built against Subversion 1.0
    だそうです。
  • by G7 (3009) on 2004年02月25日 11時11分 (#502344)
    Subversionの話が出たんで、ついで的に。

    ロック・修正・ロック解除の解法 [bluegate.org]
    を見るたびに思うんだけど、ロック方式ってそんなに全否定されるべきものなんでしょうか?

    まず、適切な「マージ」が定義できないファイル形式(すなわちdiffがあまり意味をなさない形式)については、
    この「更新が衝突したら、あとでマージすればいいでしょ」という戦略は
    戦略自体が適用不可能なのでは?という疑問が拭えません。

    よく知らないんですが、もしかしてSubversionの「マージ」は
    オブジェクト指向のように「多態」することが出来るんでしょうか?
    つまりファイル形式ごとにマージアルゴリズムを変えたりできるんでしょうか?
    #例えばXMLで言えば、Tree構造のマージをするのかとか、スキーマが同一じゃないXMLファイルはマージを拒絶すべきかとか、色々課題はありますよねー。
    #また例えばBMPなら、絵を混ぜるってのはどっちを上にすることを意味するのか?とか(^^;
    …というか、最悪、マージが「事実上定義不可能」なファイル形式なんて、幾らでもありえるわけで…

    まあ、マージ作業をソフトが一切支援しないという「アルゴリズム」もありえますが、
    そんなことされるくらいなら、ロック方式のほうがマシなわけでして。

    あと、それよりやや弱い主張として、
    「バージョン管理ツールに、ロック管理を兼ねさせたいことも、有っていいのでは?」
    というのもあります。
    細かくいえば確かに、バージョン管理にロック管理をさせるのはオフトピ(^^;だ、という解釈も
    ありえそうですが、そこまで細かくツールを分けるのは簡便性を損ねるだけじゃないかと。
    そして勿論、「ユーザ間のコミュニケーション」という人的作業は、間違えたり忘れたりしたらアウト、
    という性質を持っているのはご存知の通り。

    つまり、

    >衝突を解消するのにかかる時間は、ロックするシステムで失われる時間よりもずっと短いのです。

    という主張は、状況によって成り立たないことも結構有るのでは?という話です。
    古臭いCVSみたいに(^^;古典的なテキストファイルのみをお客さんとするならば、それでも構わないのかも知れませんが、
    Subversionは任意のファイル形式をお客さんにしようとしてるのです(よね?)から、
    この辺をなんとかして欲しいなあと。

    CVSでも採用されてる非ロック(マージしろよ)戦略って、
    それを選択するかどうかは、ツールにおいて切り替え可能になっていて欲しいなあ、と
    思ってる昨今です。状況や用途によってロックか非ロックかを(できればファイル単位で)設定できたらいいな。

    ちなみにどうでもいいですが、仕事で扱ってる某OODBでは、
    オブジェクトのバージョン管理の概念が有るんですが、これもロック方式です。
    まあ(任意の)オブジェクトに対してマージが定義できるはずもないですし、
    構造も量も膨大な情報量をもつデータ(CADとか)に対して
    「(しばしば人力で)マージしろ」なんて無茶な要求なわけです。
    なお当然ですが(VSSやRCSと同じように)、編集権限(ロック)を得ずにReadOnly取得するという機能も有ります。

    職場でMSWordファイルの共有をどうしたものかと悩んでいるのでG7
    …っていうか、Winでドキュメントな世界の連中(^^;に、「バージョン管理ツール」を普及させたいんですが、
    上記の問題が解決してくれないと、使えないんですよね。

    #ここでいう「世界」とは、出来れば本当の意味での世界全体であって欲しいです。
    #バージョン管理もなしに複数人がファイルを更新する状況は有ってはいけない、ってのは
    #OpenSourceな我々(^^;は文化として充分に知っていることなわけですが、
    #その文化を世間に「輸出」してもいい頃合なんじゃないか?と俺は思うんです。
    #幸いDiskは安くなりましたから、パソコンを使う「全ての」人がバージョン管理の恩恵を充分に受ける時代が来ても、いいはず。
    •  開発プロジェクトで履歴管理を行っていて、これまでロックが必要になった経験はありません。

       必要かもしれない、と思った瞬間はありますが、それは、「ルールを守らないメンバーに対するフェールセーフ」でした。しかし、そもそも、プロジェクトにそんなメンバーがいること自体が問題であり、それは、技術的に解決するものではないと思います。メンバを「ルールを守らせる」という方向で教育したり、よくコミュニケーションをとることで、解決することが多かったです。

       また、おなじソースを同時に複数のメンバーがつつくような状況というのは、ひとつ
      • ええと。要約すればタイトル参照です。
        確かにソースについては、俺もロック要らねーなと思うんですが、
        それはソースというものの(特殊)事情に拠るんじゃないか?と。

        事情とは、例えば、
        ○テキストである。行指向であるか、そうでないにしても人間の目を併用すれば行指向もどきと見なせる。→diffに意味が有る
        ○各ファイルが、機械は勿論、人間にとっても、ほどほどの大きさである。規模という意味で可読性が有る。→マージ作業が可能
        ○その内容(意味)において、ファイル間の依存関係が、結構強いし複雑だ。→ファイル単位のロックは非常に頻繁に無意味

        といった所でしょうか。
        これら(とか)を満たすデータならば、非ロック型管理が向いているんだと思います。
        #ちなみに「業務」かどうかは無関係だと思います。OpenSourceみたいにしばしば業務じゃないものでも非ロックは有効です。

        でも、そうでないデータなんてものも、世の中には一杯あると思います。

        ○テキストでない。→Wordファイル(^^;やCADファイル
        ○あるいはテキストでも(物理)行指向っぽさが乏しい。→XMLの行指向diffって意味有るの?
        ○大きすぎる→巨大なファイルなんて幾らでもあるでしょう。
        ○ファイル間の依存が無いか少ない。→それこそワープロとかだと、わざわざそうしない限り、依存関係なんてあんまり無いですよね?

        で、そういう分野であっても、バージョン管理そのものは充分有用なのです(いちいち説明は不要と思いますが)。
        だから普及して欲しい。
        せっかくだからOpenSourceモノが(^^;。
        Officeソフト用にゃ高額な商用のVersion管理ツールしか無い、ってのは寂しいんで。

        -----

        >また、おなじソースを同時に複数のメンバーがつつくような状況というのは、
        >ひとつの機能に対して複数の修正を複数のメンバーがかけていることになります。

        ん?それは非ロック(マージ)方式を否定する話になってしまうのでは?
        単に「同一ファイルは同時にいじっちゃいけない」という話をするだけでいいならば、
        ロック方式のほうがマシです。なにせ同時にいじらないことをシステムが保障してくれるんですから。

        マージ方式ってのは、「それでもやっぱり、同時にいじることは避け難い
        という処から話が始まっているんだと思いますが。それこそLinuxのソースとかね。

        ソースについては、それこそアスペクト指向でも全盛にならない限り(^^;、
        同時にいじるのは避けられない状況が続くと思います。
        関数型だろうがオブジェクト指向だろうが、そういう問題は(常にではないけどイツかは)不可避になります。

        >無駄に思えるかもしれませんが、小さい修正をひとつひとつ検証していただくほうが、全体の作業量は抑えられるように思います。

        あのー?それならばロック方式でもいいじゃないですか?
        つまり、どうせ(1ファイルまたは1プロジェクトについて)同時には一人づつしか修正作業をしない、
        っていう話なのですよね?
        それならロックしても(しなくても)痛くないですよ。それだけのこと。

        …ところで余談ですが、開発においては「全体の作業量を抑える」ことが最優先事項だ、というわけではないと思います。
        どっちかってーと「結局かかる時間を抑える」のが最優先じゃないかな。
        だからこそ(ソースでは)非ロックが役立つんだと思います。マージが。
        つまり同時編集を敢えて見逃してあげる(そして後からマージによってフォローする)ほうが「速い」ということなのでは?
        マルチスレッドの話と同じで、複数のアクター(開発ではプログラマ)が衝突を「気にせず」作業できる状態が、一番速いっすよね。

        >ロックがかかったまま解除できなくなってしまったソースが大量発生し、にっちもさっちも行かなくなりました。

        あのー。あなたが忌避なさってるのは、「ロック」じゃなく「同時編集」なような気がするのですが?

        つまり、CVSとかを使っても、単に「修正を誰かがコミットし忘れてる」という恐れを「無視」してるだけ、
        だったりしませんか?
        親コメント
      • ちょっとパラっちゃいますが、もういっちょう。

        (リレーショナル)データベースで、
        行をロックするっていう概念はしばしば聞きますが、
        行をマージするなんて話はついぞ聞いたことが無いです。

        既に書きましたが、やっぱりテキストで行指向で…という限られた状況を満たすフォーマットだけが
        非ロック(マージ)方式を採れるんだと思います。

        で、任意のフォーマットが、バージョン管理の恩恵に与れるといいなぁと思うわけです。

        #いずれはMicrosoft Versionとかいうソフトが出るんだろうなと思うのでG7
        #あるいはOSに抱き合わせかな。そういや将来のWinはFilesystem自体をDBにするという案も有ったんでしたっけ。

        > その経験が、反ロック、の考え方の源流になっていることは否定しません。

        任意のファイルを扱う場面で、バージョン管理ツールを使うという状況を
        ちょいと(経験していないならば)想像してみてください。

        まさかソースみたいなもの以外はバージョン管理は使わないほうがいい、なんてことは
        思われませんよね?
        親コメント
  • by Anonymous Coward on 2004年02月24日 0時53分 (#501492)

    Subversion, Aegis, Arch等を使って比較した人いませんか?

    いまいち両手放しにSubversionを褒めちぎっていいのかどうか分かりません。WebDAV使ってる分プロトコルスタックが深くて非効率なのは否めませんし。

  • by Anonymous Coward on 2004年02月24日 1時25分 (#501506)
    FreeBSDのportsをcvsupしたら
    cvsdが1.0.1に上がってましたが
    対抗上でしょうか?

    なわけないか
  • by Anonymous Coward on 2004年02月24日 3時46分 (#501537)
    CVSのコマンドとして動くラッパーがほしいれつ。(ってもうあるのかな?)
    どーせ多くのしたっぱーはcvsのci,up,diff以外つかわないのですし。
    ブランチとかの概念は違うらしいけど・・・したっぱはオカミに言われたブランチをupしてciするだけなので(;;)

    まっ,自分がsubversion使いこなすころにはcvs互換なんていらねーと一蹴しそうだけど
    #つーか make ciか・・
    • CVSとの互換性もSubversionは目標にしているので、特定のブランチをco,up,diff,ciするくらいだったらsvnは互換コマンドとしてcvsとほぼ同じように使える可能性は高いです。
      # でも、最新状況の確認は、cvs -n up の代わりに svn status を使うように習慣を変えたほうがいいでしょう。
      --
      -- コンテンツをご利用になったお客様が被った損失について、一切責任を負わないものとします。
      親コメント
      • by SHNSK (10099) on 2004年02月24日 13時11分 (#501659)
        なんとなく,元の AC さんの要求は
          /bin/cvs
          #!/bin/sh
          /usr/local/bin/svn $*

        というスクリプトが欲しい,っということのような気がします.

        ちなみに,(日常で使っている範囲で)svn と cvs で一番違うのは,conflict を解消するための手順ではないでしょうか?

        cvs では conflict を起こしたファイルを修正して,そのまま commit すれば良かったですが,svn では修正してから,「resolve したよ」と一回宣言してあげないといけなかったはずです.
        親コメント
typodupeerror

犯人はmoriwaka -- Anonymous Coward

読み込み中...