[Asterisk-code-review] make_version: Strip svn stuff and suppress ref HEAD errors (asterisk[18])
Joshua Colp
asteriskteam at digium.com
Thu Mar 16 10:40:26 CDT 2023
Joshua Colp has submitted this change. ( https://gerrit.asterisk.org/c/asterisk/+/19970 )
Change subject: make_version: Strip svn stuff and suppress ref HEAD errors
......................................................................
make_version: Strip svn stuff and suppress ref HEAD errors
* All of the code that used subversion has been removed.
* When Asterisk is checked out from a tag or commit instead
of one of the regular branches, git would emit messages like
"fatal: ref HEAD is not a symbolic ref" which weren't fatal
at all. Those are now suppressed.
Change-Id: I2a11bc9ebbaf6dfa50f53516ede50a6bac65ca3c
---
M build_tools/make_version
1 file changed, 74 insertions(+), 212 deletions(-)
Approvals:
Joshua Colp: Looks good to me, but someone else must approve; Approved for Submit
Sean Bright: Looks good to me, but someone else must approve
George Joseph: Looks good to me, approved
diff --git a/build_tools/make_version b/build_tools/make_version
index 58395ca..c2422d8 100755
--- a/build_tools/make_version
+++ b/build_tools/make_version
@@ -1,220 +1,66 @@
#!/bin/sh
-AWK=${AWK:-awk}
GIT=${GIT:-git}
-GREP=${GREP:-grep}
SED=${SED:-sed}
-
if [ -f ${1}/.version ]; then
cat ${1}/.version
-elif [ -d ${1}/.svn ]; then
- PARTS=`LANG=C svn info ${1} | ${GREP} URL | ${AWK} '{print $2;}' | ${SED} -e 's:^.*/svn/asterisk/::' | ${SED} -e 's:/: :g'`
- BRANCH=0
- TEAM=0
- TAG=0
- FEATURE=0
-
- REV=`svnversion -c ${1} | cut -d: -f2`
-
- INTEGRATED=`LANG=C svn pg automerge-propname ${1}`
- if [ -z "${INTEGRATED}" ] ; then
- INTEGRATED=svnmerge-integrated
- fi
-
- BASE=`LANG=C svn pg ${INTEGRATED} ${1} | cut -d: -f1`
-
- if [ "${PARTS}" = "trunk" ] ; then
- echo SVN-trunk-r${REV}
- exit 0
- fi
-
- for PART in $PARTS ; do
- if [ ${TAG} != 0 ] ; then
- if [ "${PART}" = "autotag_for_be" ] ; then
- continue
- fi
- if [ "${PART}" = "autotag_for_sx00i" ] ; then
- continue
- fi
- RESULT="${PART}"
- break
- fi
-
- if [ ${BRANCH} != 0 ] ; then
- RESULT="${RESULT}-${PART}"
- if [ ${FEATURE} != 0 ] ; then
- RESULT="${RESULT}-${FEATURE_NAME}"
- fi
- break
- fi
-
- if [ ${TEAM} != 0 ] ; then
- if [ -z "${RESULT}" ] ; then
- RESULT="${PART}"
- else
- RESULT="${RESULT}-${PART}"
- fi
- continue
- fi
-
- if [ "${PART}" = "certified" ] ; then
- FEATURE=1
- FEATURE_NAME="cert"
- continue
- fi
-
- if [ "${PART}" = "branches" ] ; then
- BRANCH=1
- RESULT="branch"
- continue
- fi
-
- if [ "${PART}" = "tags" ] ; then
- TAG=1
- continue
- fi
-
- if [ "${PART}" = "team" ] ; then
- TEAM=1
- continue
- fi
- done
-
- if [ ${TAG} != 0 ] ; then
- echo ${RESULT}
- else
- echo SVN-${RESULT}-r${REV}${BASE:+-${BASE}}
- fi
-elif [ -d ${1}/.git ]; then
- if [ -z ${GIT} ]; then
- GIT="git"
- fi
-
- if ! command -v ${GIT} >/dev/null 2>&1; then
- echo "UNKNOWN__and_probably_unsupported"
- exit 1
- fi
-
- GITCHECK=$(${GIT} describe --always 2>/dev/null || echo gitfail 2>/dev/null)
- if [ "x${GITCHECK}" = "xgitfail" ]; then
- echo "UNKNOWN__git_check_fail"
- exit 1
- fi
-
- cd ${1}
-
- # If the first log commit messages indicates that this is checked into
- # subversion, we'll just use the SVN- form of the revision.
- MODIFIED=""
- SVN_REV=`${GIT} log --pretty=full -1 | ${SED} -n '/git-svn-id:/ s/.*\@\([^ ]*\) .*/\1/p'`
- if [ -z "$SVN_REV" ]; then
- # If MAINLINE_BRANCH is already set in the environment, use it.
- if [ -z "${MAINLINE_BRANCH}" ] ; then
- # Try to retrieve MAINLINE_BRANCH from a local .develvars file first.
- # .develvars is keyed by the branch name so we need to get that first.
- BRANCH=$(${GIT} symbolic-ref --short HEAD)
- if [ -f .develvars ] ; then
- MAINLINE_BRANCH=$(${GIT} config -f .develvars --get branch.${BRANCH}.mainline-branch)
- fi
-
- # If we didn't find it, see if this is a well-known development branch.
- # development/<mainline_branch>/<branchname> or
- # devel/<mainline_branch>/<branchname>
- if [ "x${MAINLINE_BRANCH}" = "x" ] ; then
- MAINLINE_BRANCH=$(echo "${BRANCH}" | ${SED} -n -r -e "s at devel(opment)?/([0-9]+)/.+@\2 at p")
- fi
-
- # If we didn't find it, get it from .gitreview defaultbranch.
- if [ "x${MAINLINE_BRANCH}" = "x" ] ; then
- MAINLINE_BRANCH=$(${GIT} config -f .gitreview --get gerrit.defaultbranch)
- fi
- fi
-
- VERSION=`${GIT} describe --long --always --tags --dirty=M 2> /dev/null`
- if [ $? -ne 0 ]; then
- if [ "`${GIT} ls-files -m | wc -l`" != "0" ]; then
- MODIFIED="M"
- fi
- # Some older versions of git do not support all the above
- # options.
- VERSION=`${GIT} rev-parse --short --verify HEAD`${MODIFIED}
- fi
- echo GIT-${MAINLINE_BRANCH}-${VERSION}
- else
- PARTS=`LANG=C ${GIT} log --pretty=full | ${GREP} -F "git-svn-id:" | head -1 | ${AWK} '{print $2;}' | ${SED} -e s:^.*/svn/$2/:: | ${SED} -e 's:/: :g' | ${SED} -e 's/@.*$//g'`
- BRANCH=0
- TEAM=0
- TAG=0
- FEATURE=0
-
- if [ "`${GIT} ls-files -m | wc -l`" != "0" ]; then
- MODIFIED="M"
- fi
-
- for PART in $PARTS ; do
- if [ ${TAG} != 0 ] ; then
- if [ "${PART}" = "autotag_for_be" ] ; then
- continue
- fi
- if [ "${PART}" = "autotag_for_sx00i" ] ; then
- continue
- fi
- RESULT="${PART}"
- break
- fi
-
- if [ ${BRANCH} != 0 ] ; then
- RESULT="${RESULT}-${PART}"
- if [ ${FEATURE} != 0 ] ; then
- RESULT="${RESULT}-${FEATURE_NAME}"
- fi
- break
- fi
-
- if [ ${TEAM} != 0 ] ; then
- if [ -z "${RESULT}" ] ; then
- RESULT="${PART}"
- else
- RESULT="${RESULT}-${PART}"
- fi
- continue
- fi
-
- if [ "${PART}" = "certified" ] ; then
- FEATURE=1
- FEATURE_NAME="cert"
- continue
- fi
-
- if [ "${PART}" = "branches" ] ; then
- BRANCH=1
- RESULT="branch"
- continue
- fi
-
- if [ "${PART}" = "tags" ] ; then
- TAG=1
- continue
- fi
-
- if [ "${PART}" = "team" ] ; then
- TEAM=1
- continue
- fi
-
- if [ "${PART}" = "trunk" ]; then
- echo SVN-trunk-r${SVN_REV}${MODIFIED}
- exit 0
- fi
- done
-
- if [ ${TAG} != 0 ] ; then
- echo ${RESULT}
- else
- echo SVN-${RESULT##-}-r${SVN_REV}${MODIFIED}
- fi
- fi
-else
- echo "UNKNOWN__and_probably_unsupported"
+ exit 0
fi
+
+if [ ! -d ${1}/.git ]; then
+ echo "UNKNOWN__and_probably_unsupported"
+ exit 0
+fi
+
+if [ -z ${GIT} ]; then
+ GIT="git"
+fi
+
+if ! command -v ${GIT} >/dev/null 2>&1; then
+ echo "UNKNOWN__and_probably_unsupported"
+ exit 1
+fi
+
+GITCHECK=$(${GIT} describe --always 2>/dev/null || echo gitfail 2>/dev/null)
+if [ "x${GITCHECK}" = "xgitfail" ]; then
+ echo "UNKNOWN__git_check_fail"
+ exit 1
+fi
+
+cd ${1} || exit 1
+
+MODIFIED=""
+
+# If MAINLINE_BRANCH is already set in the environment, use it.
+if [ -z "${MAINLINE_BRANCH}" ] ; then
+ # Try to retrieve MAINLINE_BRANCH from a local .develvars file first.
+ # .develvars is keyed by the branch name so we need to get that first.
+ BRANCH=$(${GIT} symbolic-ref --short HEAD 2>/dev/null)
+ if [ -f .develvars ] ; then
+ MAINLINE_BRANCH=$(${GIT} config -f .develvars --get branch.${BRANCH}.mainline-branch)
+ fi
+
+ # If we didn't find it, see if this is a well-known development branch.
+ # development/<mainline_branch>/<branchname> or
+ # devel/<mainline_branch>/<branchname>
+ if [ "x${MAINLINE_BRANCH}" = "x" ] ; then
+ MAINLINE_BRANCH=$(echo "${BRANCH}" | ${SED} -n -r -e "s at devel(opment)?/([0-9]+)/.+@\2 at p")
+ fi
+
+ # If we didn't find it, get it from .gitreview defaultbranch.
+ if [ "x${MAINLINE_BRANCH}" = "x" ] ; then
+ MAINLINE_BRANCH=$(${GIT} config -f .gitreview --get gerrit.defaultbranch)
+ fi
+fi
+
+VERSION=`${GIT} describe --long --always --tags --dirty=M 2> /dev/null`
+if [ $? -ne 0 ]; then
+ if [ "`${GIT} ls-files -m | wc -l`" != "0" ]; then
+ MODIFIED="M"
+ fi
+ # Some older versions of git do not support all the above
+ # options.
+ VERSION=`${GIT} rev-parse --short --verify HEAD`${MODIFIED}
+fi
+echo GIT-${MAINLINE_BRANCH}-${VERSION}
--
To view, visit https://gerrit.asterisk.org/c/asterisk/+/19970
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings
Gerrit-Project: asterisk
Gerrit-Branch: 18
Gerrit-Change-Id: I2a11bc9ebbaf6dfa50f53516ede50a6bac65ca3c
Gerrit-Change-Number: 19970
Gerrit-PatchSet: 3
Gerrit-Owner: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Friendly Automation
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Joshua Colp <jcolp at sangoma.com>
Gerrit-Reviewer: Sean Bright <sean at seanbright.com>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20230316/67e3d978/attachment-0001.html>
More information about the asterisk-code-review
mailing list