2010-08-05 2 views
0

PHP 스크립트에서 svn 리비전 번호가 필요합니다. exec()에 다음 명령을 사용했습니다. 하지만 아무 것도 돌려주지 않습니다.PHP에서 exec() 및 command를 사용하여 svn 개정 번호를 얻는 방법은 무엇입니까?

$value = exec("usr/bin/svn --username myusername--password mypassword info /home/mysite/mysite_www/mysite |grep Revision: |cut -c11-", $output, $status); 

또는 나는 또한 주 스크립트하지만 결과를 사용하여 시도했다

$value = exec("svn info |grep Revision: |cut -c11-", $output, $status); 

. PHP와 명령을 사용하여 SVN 개정 번호를 얻는 방법을 안내해주십시오.

+1

이 정말 자바 스크립트와 함께 할 수있는 하나의 일이없는의 내용을 분석하여 날짜를 얻을 수 있을까? – Pointy

+0

두 번째 예제는 여기서 잘 작동합니다 ('| awk '/ Revision :/{print $ 2}' '를 선호합니다. 그러나 이것은 개인적인 선택입니다), 작동하지 않으면 파일 사용 권한 문제 일 가능성이 큽니다. – Wrikken

+0

솔루션을 자바 스크립트에서 사용할 수 있도록 JavaScript를 추가 했으므로 사용할 수 있습니다. 그리고 자바 스크립트 캐시 문제로 인해 전체 시나리오가 나타났습니다. 두 번째 예는 제 경우와 같이 결과가 없습니다. 어쨌든 주셔서 감사합니다 – Dora

답변

0

다음 코드 조각을 사용하여 SVN 리비전 번호를 .svn/entries 파일에서 가져 오는 것이 좋습니다.

// open .svn/entries file 
$content = file_get_contents("/path/to/your/site/.svn/entries"); 

// get revision number 
$lines = explode("\n", $content, 12); 
$revision = intval($lines[10]); 

// print out the revision number 
echo "Revision: " . $revision; 

이를 사용하여, 당신은 또한 그것을 않습니다, $lines[11]

+0

Thanxs 많은이 솔루션을 해결했습니다 – Dora

+0

.svn 내부에 의존 : (항목 파일에서와 같이) 위험한 것으로 간주되어야합니다 : svn은 형식을 업데이트 할 수 있으며 그 순간 svn은 여전히 ​​매력처럼 작동하지만 코드 휴식. 예를 들어 svn 1.1에서는 거기에 XML이 사용되었습니다 ... – Wrikken

+1

또한 현재 4 행 (색인 3)은 _current_ 개정을 보유합니다. 11 행 (idx 10)은 '마지막으로 변경된 개정판'입니다 .... – Wrikken

관련 문제