-function nextrevision() {
- svn status -u CMakeLists.txt \
- | awk '/^Status against revision:/{print $4+1}'
+function setversion() {
+ local KEY="$1"
+ local VAL="$2"
+ sed -i "s/^ *SET *( *${KEY} .*/SET(${KEY} \"${VAL}\")/" "$VERSIONFILE"
+}
+
+function sameVersion() {
+ test "$LAST_RELEASE" == "$THIS_RELEASE" -a "$LAST_COMPAT" == "$THIS_COMPAT"
+}
+
+function getchanges() {
+ git log --no-merges --pretty=format:'@@%B' "$LAST_RELEASE"..HEAD \
+ | awk '/^@@/{p=1}/^@@Translated using Weblate/{p=0}(p){print}' \
+ | sed '/./{H;$!d};x;/./{s/ *\n */ /g;s/^ *//;s/ *$//;/[^]})!?:.]$/s/$/./;p};d' \
+ | fold -s -w 66 | sed '/^@@/{s/^../- /;p;d};s/^/ /'
+}
+
+function newchangesentry() {
+ echo "-------------------------------------------------------------------"
+ echo "$(date) - $EMAIL"
+ echo ""
+ echo "$(getchanges)"
+ sameVersion || {
+ echo "- version $THIS_RELEASE ($THIS_COMPAT)"
+ }
+ echo ""
+}
+
+function is_fast_forward() {
+ git fetch
+ test "$(git rev-list HEAD..origin/$(git name-rev --name-only HEAD) --count)" == "0"
+}
+
+is_fast_forward || {
+ Recho "!!!"
+ Recho "!!! Branch is not fast-forward. Pull changes first."
+ Recho "!!!"
+ exit 7
+}
+
+git status --porcelain | grep '^[^ ?]' | grep -v "$VERSIONFILE\|$CHANGESFILE" && {
+ Becho "!!! Files other than version and changes are added to the index."
+ Becho "!!! Doing dryrun..."
+ DRYRUN=1