MacのSVN

画像

Macを購入した後、以前PCにあったソフトウェアをインストールすることに戸惑いました。 ほとんどすべてが転送されました。 何らかの理由でMakovskyのバージョンが見つかりましたが、一部のバージョンでは代わりのバージョンを見つけることができました。 Subversion(SVN)で問題が発生しました。 PCでは、Visual SVN Serverを使用しました。これは実質的に設定を必要とせず、インストール後すぐに動作します。 Macにはそのような喜びはなかったので、少しいじらなければなりませんでした。



だからここに私がやったことがあります:

  1. Mac OS X用のSVNビルドがいくつかあります。MacPortsから自分でバージョンを選択しました。 いくつかの理由がありました。 最新バージョンが提供されています。 SVNに加えて、MacPortsを通じて他の多くの便利なオープンソースプロジェクトを利用できます。 たとえば、MySQLを含めますが、これも必要です。 MacPorts はここからダウンロードできます。



    dmgファイルをロードした後、イメージが自動的にマウントされていない場合はマウントします。 次に、中にあるpkgファイルを実行します。 MacPortsがコンピューターにインストールされます。



  2. インストール後、アップデートを確認することをお勧めします。 これを行うには、ターミナルに入力します:



    sudo port -v selfupdate







    新しいバージョンが利用可能な場合、更新が行われます。 最新バージョンをダウンロードした場合は、この手順をスキップできます。



  3. SVNをダウンロードします。 これを行うには、ターミナルに入力します:



    sudo port install subversion







    少し時間がかかります。 最後に、SVNがインストールされます。 必要な変数はすべてPATHに追加されます。 次のように入力して、インストールをテストできます。



    svn --version







    次のようなものが表示されます。



      svn、バージョン1.5.6(r36142)
        2009年3月14日20:50:37に編集
    
    著作権(C)2000-2008 CollabNet。
     Subversionはオープンソースソフトウェアです。http://subversion.tigris.org/を参照してください
    この製品には、CollabNet(http://www.Collab.Net/)によって開発されたソフトウェアが含まれています。
    
    次のリポジトリアクセス(RA)モジュールを使用できます。
    
     * ra_neon:Neonを使用してWebDAVプロトコル経由でリポジトリにアクセスするためのモジュール。
       -「http」スキームを処理します
       -「https」スキームを処理します
     * ra_svn:svnネットワークプロトコルを使用してリポジトリにアクセスするためのモジュール。
       -Cyrus SASL認証を使用
       -「svn」スキームを処理します
     * ra_local:ローカルディスク上のリポジトリにアクセスするためのモジュール。
       -「ファイル」スキームを処理します
     * ra_serf:serfを使用してWebDAVプロトコル経由でリポジトリにアクセスするためのモジュール。
       -「http」スキームを処理します
       -「https」スキームを処理します 




  4. ここで、PCからリポジトリを転送する必要があります。 これを行うには、システムドライブのルートにRepositoriesフォルダーを作成し、そこにあるPCからすべてのリポジトリーをコピーしました。 以前にリポジトリがなかった場合は、svnadmin createコマンドでリポジトリを作成できます。 たとえば、 svnadmin create /Repositories/MyRepo



    。 リポジトリの作成プロセスについては詳しく説明しません。 こちらで見れます



  5. SVNサーバーの起動は簡単です。このためには、ターミナルに入力する必要があります



    svnserve -d -r < >







    私たちの場合:



    svnserve -d -r /Repositories







    このコマンドはSVNデーモンを起動します。 その後、ネットワーク経由でリポジトリにアクセスできます。 たとえば、次のように:



    svn://svnserver/MyRepo







  6. 次に、最も興味深いものに移ります。 私はこれを一番長く探しました。 問題は、コンピューターの起動時にSVNサーバーが自動的に起動しないことです。 これは、標準のMac起動方法であるlaunchdで修正できます。 これを行うには、ファイルを作成します



    /Library/LaunchAgents/org.tigris.subversion.svnserve.plist(好きな名前を選択できます):



     <?xml version = "1.0" encoding = "UTF-8"?>
     <!DOCTYPE plist PUBLIC "-// Apple Computer // DTD PLIST 1.0 // EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
     <plist version = "1.0">
     <dict>
       <key>無効</ key>
       <false />
       <key>ラベル</ key>
       <string> org.tigris.subversion.svnserve </ string>
       <key>プログラム引数</ key>
       <配列>
           <string> / opt / local / bin / svnserve </ string>
           <string> --inetd </ string>
           <string> --root = /リポジトリ</ string>
       </ array>
       <key> ServiceDescription </ key>
       <string> Subversionスタンドアロンサーバー</ string>
       <key>ソケット</ key>
       <dict>
         <key>リスナー</ key>
         <配列>
           <dict>
             <key> SockFamily </ key>
             <string> IPv4 </ string>
             <key> SockServiceName </ key>
             <string> svn </ string>
             <key> SockType </ key>
             <string>ストリーム</ string>
           </ dict>
           <dict>
             <key> SockFamily </ key>
             <string> IPv6 </ string>
             <key> SockServiceName </ key>
             <string> svn </ string>
             <key> SockType </ key>
             <string>ストリーム</ string>
           </ dict>
         </ array>
       </ dict>
       <key> inetdCompatibility </ key>
       <dict>
         <key>待機</ key>
         <false />
       </ dict>
     </ dict>
     </ plist> 


    svnserveへのフルパスを指定することが重要です。 私の場合、/ opt / local / bin / svnserveです。 これがなければ、すべてが曲がって動作します。 IPv6構成が不要な場合は、対応するdictブロックを削除できます。



    次に、端末に次のコマンドを入力して、構成をアクティブにします。



      launchctl
     org.tigris.subversion.svnserve.plistをロードします(別の名前を選択した場合は、独自の名前を入力します)
     org.tigris.subversion.svnserveを開始します
     <ctrl-D>ターミナルへの出口 


まあ、それだけです。 その後、すべてがうまくいきました。 この自動起動メソッドはデーモンを起動しませんが、inetdを使用します。 この方法の利点は、対応するポートにアクセスしたときにのみプロセスが開始されることです。 システムは、適切と判断した場合、メモリからプロセスを削除します。 何がいいですか。



この短い説明が多くの問題を解決することを願っています。 :)



All Articles