2010-06-04 6 views
0

Cvs 모듈을 사용하지 않고 Perl을 사용하여 CVS co를 수행하는 방법은 무엇입니까?Cvs 모듈을 사용하지 않고 어떻게 CVS 체크 아웃을 할 수 있습니까?

+1

왜 CVS 모듈을 사용하지 않으시겠습니까? – Ether

+0

내 서버 시스템을 설치하지 못하게하십시오! – Tree

+2

local :: lib는 시스템 관리자의 허가없이 홈 디렉토리에 모듈을 설치하는 데 유용 할 수 있습니다. http://search.cpan.org/perldoc?local::lib – Schwern

답변

6
+0

그것을하는 가장 좋은 방법은 무엇입니까? – Tree

+4

아니, CPAN에서 제공하는 모듈을 사용하는 것이 더 좋지만 사용하지 말라고 요청했습니다. –

+0

@ SCNCN2010 - 보통 CPAN 검색을 먼저 시도한 다음 시스템 명령의 일부 형식을 사용하는 것에 대해 생각합니다. – justkt

1

당신이 모듈을 사용하지 말라고하는 동안, 나는 항상하는 것이 좋습니다. CPAN이 Cvs::Simple으로 실행됩니다. 모듈을 사용하지 않은 비즈니스 사례가있는 경우이를 참조로 사용하는 것이 좋습니다.

+0

"나는 당신의 현실을 거부하고 내 자신을 대신합니다." – jrockway

+1

@jrockway - 모듈을 사용하지 않는 것이 좋은 이유가있을 수 있지만 OP가 제공하지 않았습니다. – justkt

0

나는 이것을 my blog에 썼다. 그러나 여기서는 일반 텍스트로되어있다.

expectperl과 IO :: Tty perl 모듈을 다운로드하고 설치해야했습니다. 이 작은 perl 스크립트는 ssh 암호를 묻는 메시지와 함께 cvs 업데이트를 성공적으로 수행합니다.


#!/usr/bin/perl 

use Expect; 

chdir("/files/hudson_local/jobs/MOJARRA_1_2X_ROLLING_GLASSFISH_2_1_1/workspace"); 
$ENV{"CVSROOT"} = ":ext:[email protected]/cvs/javaserverfaces-sources~cvs-repository"; 

($cvs = Expect->spawn("cvs update -d -P")) || die "Couldn't spawn cvs, $!"; 

unless ($cvs->expect(30, "Enter passphrase for key '/files/hudson_local/.ssh/id_rsa':")) { 
    die "Never got the passphrase prompt"; 
} 

print $cvs "not the real password\r"; 

unless ($cvs->expect(300, "cvs update: Updating www/legal/jsf-cddl")) { 
    die "Never saw update starting"; 
} 
관련 문제