2010-05-30 9 views
2

나는 git-install.sh 스크립트 쓰고 있어요 : http://gist.github.com/419201Git의 최신 안정 버전 번호를 얻으려면 어떻게해야합니까?

망할 놈의 최신 안정 버전의 버전 번호를 얻으려면, 내가 할 :

LSR_NUM=$(curl -silent http://git-scm.com/ | sed -n '/id="ver"/ s/.*v\([0-9].*\)<.*/\1/p') 

2 질문 :

  1. 팩터를 내 코드 : 프로그래밍 방식으로 더 나은 방법이 있나요?

  2. 이 지금은 작동하지만, 취성의 : http://git-scm.com/ 변경에서 웹 페이지 경우, 선이 위 작업을 중지 할 수 있습니다. 망할 놈의이 같은 것을 Is there a site which simply outputs the latest stable version numbers of php and mysql?

    있습니까 :

    PHP는 최신 릴리스 버전을 취득하기위한 신뢰할 수있는 URL이있다? 이 가까이 온다 : 나는 일반적으로 단지 maint 분기를 사용 http://www.kernel.org/pub/software/scm/git/

+1

"http : // www.kernel.org/pub/software/scm/git /"및/또는 "http : // git"구문 분석을 통해 현재 전략을 계속 수행 할 수 있습니다. kernel.org/? p = git/git.git; a = summary' 그리고 거기서 가장 높은 숫자를 찾아서 일치하는지 확인하십시오. –

답변

4

난 그냥이 작업을 수행 할 것 :

git ls-remote --tags git://git.kernel.org/pub/scm/git/git.git | ... 

공공 저장소의 위치는 거의 고정 된 상태를 유지 보장, 그래서 정말 취성을 고려하지 않을 것입니다. git-ls-remote의 출력은 확실히 변하지 않을 것입니다.

버전 번호는 마지막 태그 여야합니다. 이 같은 뭔가를 잡아 수 :

git ls-remote ... | tail -n 1 | sed '[email protected]*refs/tags/\(.*\)\^{}@\[email protected]' 
+0

쿨하지만이 스크립트를 실행하는 사람은 아직 Git이 설치되어 있지 않을 가능성이 높습니다. :) 아마도이 URL을 긁을 수도 있습니다. http://www.kernel.org/pub/scm/git/git.git/refs/tags/ 그리고 데니스 윌리엄슨 (Dennis Williamson)과 같은 가장 높은 번호를 찾으십시오. 아니면 더 나은,이 URL을 먼저 최신 릴리스 번호를 나열합니다 : http://www.kernel.org/pub/software/scm/git/docs/ 나는 지금 어떻게하고 있는지 잘 생각합니다. 그것은 작동하고, 그것은 빠르고 쉽습니다, 그리고 나는 그것이 꽤 신뢰할 수 있다고 생각합니다. – ma11hew28

+0

@MattDiPasquale : 오, 이런. 음 ... 네, 데니스 (Dennis)가 제안한 웹 페이지처럼 정보를 표시하는 많은 장소를 선택하는 것 같습니다. 그것들은 저장소의 위치에 꽤 단단히 묶여 있으며 gitweb이 태그 표시를 중단하는 것은 의심 스럽습니다. – Cascabel

+0

현재이 명령은 worng 버전을 표시합니다. –

0

. pu 또는 next과 같이 다른 분기에서 엄격하게 테스트 된 커밋 만 가져옵니다. 일반적으로 매우 안정적이며 특정 시점에 최신 공식 릴리스보다 적은 개의 버그가 실제로 포함될 가능성이 큽니다.

3

나는 이것에 대한 git-scm.com를 사용합니다.

latest_git_version=$(curl -s http://git-scm.com/ | grep "class='version'" | perl -pe 's/.*?([0-9\.]+)<.*/$1/') 
echo $latest_git_version 

새 상자에있는 등 같은 최신 안정 자식을 설치하고자 할 때 매우 유용합니다 :

cd /tmp 
wget http://git-core.googlecode.com/files/git-${latest_git_version}.tar.gz 
tar xzf git-${latest_git_version}.tar.gz 
cd git-${latest_git_version} 
./configure && make && sudo make install 

어쩌면이 또한 kernel.org 또는 그 반대에 대한 좋은 대체 될 것이다.

+0

... 이제 깨졌습니다. : –

+0

또한 최신 버전을 https://github.com/felixhummel/x/blob/master/git_from_source.sh에 보관합니다. – felixhummel

0

나는 FreeBSD의/bash는에이 사용하고 있습니다 :

git ls-remote --tags https://github.com/user/testpro.git | tail -n 1 | sed 's/.*refs\/tags\///g'

0

나는 github.com를 사용으로 인해 불안정 kernel.org reponses에 "-rc"버전을 제거합니다.

curl -s https://github.com/git/git/tags | grep -P "/git/git/releases/tag/v\d" | grep -v rc | awk -F'[v\"]' '{print $3}' | head -1

당신이 떠들썩한 파티에서 결과를 확인하려는 경우

;

GIT_INSTALL=$(curl -s https://github.com/git/git/tags | grep -P "/git/git/releases/tag/v\d" | grep -v rc | awk -F'[v\"]' '{print $3}' | head -1) 

if [[ "$GIT_INSTALL" =~ ^[0-9]*?\.[0-9]*?\.[0-9] ]] 
then 
    echo GIT_INSTALL=$GIT_INSTALL 
else 
    echo "Failed to get the latest stable git version. Quit." 
    exit 
fi 
+0

kernel.org가 안정적이지 않기 때문에 github.com으로 변경되었습니다. – kujiy

관련 문제