OS X Mavericks上のCVS


17

どうやら、AppleはOS X 10.9 Mavericks devtoolsの下でCVS削除したようです(はい、本当にありません)。初心者にとって、CVSはConcurrent Version Systemであり、異なるマシンとユーザー(開発者)の間でファイルを最新の状態に保つためのツールです。

まだそれを必要とするいくつかのレガシープロジェクトがあります(いいえ、SVNを使用するように変更することはできませんが、Gitははるかに少ないです)。

OS X Mavericksで動作するバージョンを入手するのに最適な場所はどこですか?


まだ入っている/usr/bin/cvsか確認しましたか?
nohillside

うん、本当になくなった。
アンドリュージャッフ

回答:


16

ほとんどのプログラムで最も簡単な方法は、Macports、Homebrew、Finkなどのパッケージマネージャーを使用してインストールすることです。ポーターは、コードをOSXに移植することに関する問題を解決したので、次のように簡単になります(Macportsの場合

  1. macportsをインストールし、.pkgファイルをダウンロードして実行します
  2. Xcodeとそのコマンドラインツールをインストールする
  3. /opt/local/binパスに追加-インストーラーがこれを実行しようとするので、おそらくチェックするだけです
  4. ポートをインストールする sudo port install cvs
  5. 絶対パスでcvsを実行するか/opt/local/bin/cvs、PATHを使用します

16

UNIX風のパッケージマネージャが明らかに道です。finkMacportsからhomebrewに移行しました。cvsのレシピがあります:

brew install cvs

歴史的完全性のために、あなたは、以前は(見つけるために少し難しい)を使用しなければならなかったCVSのレシピをbrew install homebrew/dupes/cvs

非常に最小限のテストだけで、うまくいくようです。


3
少し短いコマンドbrew install cvs(OS 10.9、Homebrew 0.9.5)を試しました。CVS 1.12.13がインストールされ、動作しているようです。
nknight

3
はい、nknightのコマンドは正しいコマンドです。2013
herzbube

2

編集:コメントで述べたように、gitは動作するcvsクライアントを必要とするため、このアプローチは単なる相互運用層になりますが、csvクライアントが見つからないという問題の解決策にはなりません。

別のオプションは、gitをcvsクライアントとして使用し、CVSサーバーに直接プッシュすることです。

ニーズに応じて、これは十分なcvs interop + gitをローカルで使用する利点になります。


それができるとは思いもしませんでした。とてもかっこいい!
アンドリュージャッフ

2
私はこれを試しgit-cvsimportましたが、CVSクライアントが必要なようですので、鶏と卵の問題です。
デビッドモールズ

1
@DavidMolesに感謝します。回答を変更して、すべての人がこの制限を認識できるようにしました。私は前に自分でそれを試しませんでした。
オリバーズ

0

CVSNTはMac OS X 10.9で実行され、リソースなどのHQXエンコーディングをサポートします。10.9のベータ版はここで入手できます:http : //march-hare.com/cvspro/#downcvsnt

以前にMac CVS Xを使用していた場合、これ(CVSNT)は以前に含まれていた「コマンドライン」です。


1
サイトへようこそ。apple.stackexchange.com/help/behavior、特に自己宣伝に関する部分をご覧ください。
nohillside

私のコメントは質問に関連しており、製品との関係はよく知られており、明確に特定されています(例:アバターは会社のロゴです)。私はConcurrent Versions Systemプロジェクトのメンバーです。
アーサーバレット

0

私はこの同じ問題を抱えていましたが、Macports、Finkなどの大きな問題は、cvsのような単一のツールだけが必要な場合、混乱し不要な他の多くの依存関係を引き込むことです。私の場合、macportsを使用してインストールしようとすると、javaコンパイラ(?!)のインストールを要求するポップアップが表示され、他の多数のパケットをビルドする必要があったため、すぐに取り出しました:)

必要なのがcvsだけである場合は、自分でビルドするだけで簡単でクリーンになり、結果のバイナリはコンピューター上のすべての既存のライブラリなどと統合されます。Xcodeとそのコマンドラインツールをインストールする必要がありますが、cvsが必要な場合は、すでにインストールされているはずです。

以下からcvsソースコードを取得します。

http://download.savannah.gnu.org/releases/cvs/source/stable/1.11.23/

解凍してフォルダに入れ、フォルダに入り、。/ configureを実行します

getlineはlibc関数と衝突するため、(残念ながら)src /とlib /のファイルを編集してgetline関数の名前をgetlineXに変更する必要があります。このパッチを適用して、私が推測した場所に置くことができます。

この後、「make」を実行すると、src / cvsのバイナリが取得され、〜/ binフォルダーまたはどこにでも配置でき、PATHがそこを指していることを確認します。


>私はこれのパッチを作り、私が推測するどこかに置くことができました。それは素晴らしく、提出する価値があります。(私にとって緊急ではありませんが、私は一般にHomebrewで幸運を持っています。)
フラッシュシェリダン

0

BjornWの回答をパッチでフォローアップします。

http://download.savannah.gnu.org/releases/cvs/source/stable/1.11.23/からソースをダウンロードしてアーカイブ解除した後

以下のパッチをファイルにコピーします(例:)cvs-1.11.23.patch、次にパッチを適用します:

patch -d cvs-1.11.23 -p1 < cvs-1.11.23.patch

次に、cvs-1.11.23 READMEファイルの指示に従ってビルドします。

cd cvs-1.11.23
./configure
make
make install

パッチは次のとおりです。

diff -r -u cvs-1.11.23/lib/getline.c cvs-1.11.23-osx/lib/getline.c
--- cvs-1.11.23/lib/getline.c   2005-04-05 06:46:05.000000000 +1000
+++ cvs-1.11.23-osx/lib/getline.c       2017-01-31 12:04:19.000000000 +1100
@@ -154,13 +154,10 @@
   return ret;
 }

-int
-getline (lineptr, n, stream)
-     char **lineptr;
-     size_t *n;
-     FILE *stream;
+ssize_t
+     getline(char ** restrict lineptr, size_t * restrict linecapp, FILE *     restrict stream)
 {
-  return getstr (lineptr, n, stream, '\n', 0, GETLINE_NO_LIMIT);
+  return (ssize_t)getstr (lineptr, linecapp, stream, '\n', 0, GETLINE_NO_LIMIT);
 }

 int
diff -r -u cvs-1.11.23/lib/getline.h cvs-1.11.23-osx/lib/getline.h
--- cvs-1.11.23/lib/getline.h   2005-04-05 06:46:05.000000000 +1000
+++ cvs-1.11.23-osx/lib/getline.h       2017-01-31 12:03:21.000000000 +1100
@@ -11,8 +11,8 @@    

 #define GETLINE_NO_LIMIT -1

-int
-  getline __PROTO ((char **_lineptr, size_t *_n, FILE *_stream));
+ssize_t
+  getline(char ** restrict linep, size_t * restrict linecapp, FILE * restrict stream);
 int
   getline_safe __PROTO ((char **_lineptr, size_t *_n, FILE *_stream,
                      int limit));
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.