Как я могу получить номер последней стабильной версии Git? - PullRequest
2 голосов
/ 31 мая 2010

Я пишу скрипт git-install.sh: http://gist.github.com/419201

Чтобы получить номер последней стабильной версии Git, я делаю:

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 / изменения, строка выше может остановиться работа.

    PHP имеет надежный URL для получения последняя версия выпуска: Есть ли сайт, который просто выводит последние стабильные номера версий php и mysql?

    Есть ли что-то подобное для Git? Это близко: http://www.kernel.org/pub/software/scm/git/

Ответы [ 5 ]

4 голосов
/ 31 мая 2010

Я бы просто сделал это:

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

Местоположение публичного репозитория гарантированно останется неизменным, поэтому я не считаю его хрупким. Вывод git-ls-remote также определенно не изменится.

Номер версии должен быть последним тегом; Вы можете взять это примерно так:

git ls-remote ... | tail -n 1 | sed 's@.*refs/tags/\(.*\)\^{}@\1@'
3 голосов
/ 21 марта 2012

Я использую 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 

Очень полезно, когда вы находитесь в новой коробке и хотите установить последнюю стабильную версию Git, например:

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 голосов
/ 15 июня 2016

Я использую github.com и удаляю версии "-rc" из-за неустойчивых ответов kernel.org.

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

Если вы хотите проверить результат в bash;

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 голосов
/ 20 октября 2015

Я использую это на freebsd / bash:

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

0 голосов
/ 31 мая 2010

Я обычно просто использую ветку maint. Он получает только коммиты, которые были тщательно протестированы в других ветках, таких как pu или next. Обычно он очень стабилен и в любой момент времени может содержать меньше ошибок, чем последний официальный релиз.

...