123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- #!/bin/sh
- AWK=${AWK:-awk}
- GIT=${GIT:-git}
- GREP=${GREP:-grep}
- 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
- 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 | ${GREP} -F "git-svn-id:" | sed -e "s/.*\@\([^\s]*\)\s.*/\1/g"`
- if [ -z "$SVN_REV" ]; then
- MAINLINE_BRANCH=$(git config -f .gitreview --get gerrit.defaultbranch)
- 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"
- fi
|