mirror of
https://git.code.sf.net/p/isync/isync
synced 2025-12-11 20:37:54 +01:00
one case where this could happen is a shallow clone, purely for build purposes. in source based distros, like gentoo, setting depth of the clone to 1, globally, is a common configuration. this patch avoids that those builds fail. Signed-off-by: Paymon MARANDI <darwinskernel@gmail.com>
37 lines
1.0 KiB
Bash
Executable File
37 lines
1.0 KiB
Bash
Executable File
#!/bin/sh
|
|
# SPDX-FileCopyrightText: (C) 2024 Oswald Buddenhagen <ossi@users.sf.net>
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
cd $(dirname $0)
|
|
|
|
test -e .git || exit
|
|
|
|
mb=$(git merge-base HEAD "@{upstream}" 2> /dev/null)
|
|
if test -z "$mb"; then
|
|
# we presume that a failure to find a merge base means no upstream.
|
|
# and no upstream may mean detached head in the middle of a rebase
|
|
br=$(git branch | sed -n -e 's/^\* (no branch, rebasing \([^\)]*\))$/\1/p')
|
|
if test -n "$br"; then
|
|
mb=$(git merge-base HEAD "$br@{upstream}" 2> /dev/null)
|
|
fi
|
|
fi
|
|
if test -z "$mb"; then
|
|
# still no upstream, so just describe HEAD as-is.
|
|
gver=$(git describe --always --tags HEAD)
|
|
else
|
|
# find out whether we have local work, and if so, collapse it into
|
|
# a single suffix. otherwise, we'd cause pointless rebuilds during
|
|
# development.
|
|
gver=$(git describe --always --tags $mb)
|
|
lcl=$(git rev-list -n 1 $mb..HEAD)
|
|
if test -n "$lcl"; then
|
|
gver="$gver-plus"
|
|
fi
|
|
fi
|
|
gver=${gver#v}
|
|
pgver=$(cat VERSION 2> /dev/null)
|
|
if [ "x$gver" != "x$pgver" ]; then
|
|
echo "$gver" > VERSION
|
|
fi
|
|
|