OS X 매버릭스의 CVS 않은 경우 CVS는 서로 다른

분명히 애플은 OS X 10.9 Mavericks devtools에서 CVS제거 했습니다 (그렇습니다. 실제로 사라졌습니다). 시작되지 않은 경우 CVS는 서로 다른 시스템과 사용자 (개발자)간에 파일을 최신 상태로 유지하는 도구 인 Concurrent Version System 입니다.

여전히 필요로하는 레거시 프로젝트가 있습니다 (아니요, SVN을 사용하도록 변경할 수는 없지만 git은 훨씬 적습니다).

OS X Mavericks에서 작동하는 버전을 얻는 가장 좋은 곳은 어디입니까?



답변

대부분의 프로그램에서 가장 쉬운 방법은 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를 사용하십시오.

답변

유닉스 패키지 관리자는 분명히 갈 길입니다. 나는에서 이동 한 핑크MacPorts를사제 CVS위한 조리법을 가지고 :

brew install cvs

역사적 완성도를 들어, 이전 (약간 하드 찾을 수)를 사용했다 CVS에 대한 조리법을 : brew install homebrew/dupes/cvs.

아주 최소한의 테스트 후에는 작동하는 것 같습니다.


답변

편집 : 주석에서 언급했듯이 git에는 작동하는 cvs 클라이언트가 필요합니다.

또 다른 옵션은 git을 cvs 클라이언트로 사용 하고 CVS 서버로 직접 푸시하는 것입니다.

필요에 따라 이것은 충분한 cvs interop + git을 로컬로 사용하는 이점이 될 수 있습니다.


답변

CVSNT는 Mac OS X 10.9에서 실행되며 리소스 등의 HQX 인코딩을 지원합니다. 10.9 베타 버전은 여기 ( http://march-hare.com/cvspro/#downcvsnt )에서 제공됩니다.

이전에 Mac CVS ​​X를 사용한 경우이 (CVSNT)는 이전에 포함 된 ‘명령 줄’입니다.


답변

방금이 같은 문제가 있었고 Macports, Fink 등의 큰 문제는 cvs와 같은 단일 도구 만 있으면 혼란스럽고 불필요 한 많은 다른 depedencies를 가져 오는 것입니다. 필자의 경우 macports를 사용하여 설치하려고하면 Java 컴파일러 (?!)를 설치하라는 팝업이 표시되고 수십 개의 다른 패킷을 빌드해야하므로 꺼내기 🙂

당신이 필요로하는 모든 것이 이력서라면, 그것을 직접 구축하는 것이 쉽고 깨끗하며 결과적인 바이너리는 컴퓨터의 모든 기존 라이브러리 등과 통합됩니다. Xcode와 명령 줄 도구가 필요하지만 cvs가 필요한 경우 이미 설치되어 있다고 확신합니다.

다음에서 cvs 소스 코드를 가져옵니다.

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

폴더에 압축을 풀고 폴더를 입력 한 후 ./configure를 실행하십시오.

그러면 불행히도 getline이 libc 함수와 충돌하기 때문에 getline 함수의 이름을 getlineX로 바꾸려면 src / 및 lib /의 파일을 편집해야합니다. 나는 이것의 패치를 할 수 있고 내가 추측 어딘가에 넣을 수 있습니다 ..

그런 다음 “make”를 수행하면 src / cvs에 바이너리가 생성되어 ~ / bin 폴더 또는 어디든지 넣을 수 있으며 PATH가 거기에 있는지 확인하십시오.


답변

패치로 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));