Как написать хук перед фиксацией, который проверяет, был ли изменен текстовый файл с номером версии - PullRequest
0 голосов
/ 04 июля 2019

Каждый проект SVN в тегах папок и транка имеет файл version.txt с текущим номером версии. Мне нужно несколько советов о том, как написать сценарий предварительной фиксации, который бы проверял, был ли version.txt в trunk изменен на более высокую версию, чем в теге.

Ответы [ 2 ]

2 голосов
/ 04 июля 2019

Попробуйте этот has-changed-since-last-tag скрипт:

#!/bin/bash  
file=${1:?Which file?}

# get latest tag
tag=$(git describe --abbrev=0)

# get content of file from the latest tag
fileFromTag=$(git show $tag:$file)

# compare current file with file from latest tag
! diff <(echo "$fileFromTag") $file > /dev/null

Он вернется с кодом выхода 0, если содержимое данного файла изменилось по сравнению с последним тегом.Если он не изменился, он возвращает 1.

0 голосов
/ 05 июля 2019

Вот код, но все еще не работает

#!/bin/bash  

#get latest tag
tag=$(svn ls  /some/path/tags | sort -n |  tail -n 1)

#get content of file from the latest tag
fileFromTag=$(svn cat /some/path/tags/$tag/version.txt)

#get content of file from trunk
file=$(svn cat some/path/trunk/version.txt)

#compare current file with file from latest tag
if [ "$fileFromTag" == "$file" ]
then
    echo "Update version.txt" 
    exit 1
fi
...