summaryrefslogtreecommitdiff
path: root/util/tagbranch.sh
diff options
context:
space:
mode:
Diffstat (limited to 'util/tagbranch.sh')
-rwxr-xr-xutil/tagbranch.sh84
1 files changed, 0 insertions, 84 deletions
diff --git a/util/tagbranch.sh b/util/tagbranch.sh
deleted file mode 100755
index 3e196b6f25..0000000000
--- a/util/tagbranch.sh
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2017 The Chromium OS Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-#
-# Generate git strings for tagging EC branches.
-#
-# This script builds up on ideas put by vpalatin@ into util/getversion.sh
-#
-# Git allows to count number of patches between the current state of the tree
-# and any directly preceding tag in the tree. That is if we tag the first
-# patch in the current branch, we can tell how many patches are in the branch
-# above that tag. And if we tag the branch such that the tag string includes
-# the branch name, we can also say what branch we are in looking at the
-# closest tag in the tree.
-#
-# This admittedly brittle script automates the process of tagging for the EC
-# git tree in Chrome OS repo, but it could be used for any other Chrome OS
-# repo git tree just as well.
-#
-# The script is brittle because it relies on the following assumptions which
-# are true for Chrome OS repo at the time of writing:
-#
-# - the upstream branch alias name shows up in the 'git branch -a' output
-# separated by ->
-# - the upstream branch alias name has the format of
-# cros/<branch name>
-# - the remote git server name shows up in 'git config -l' output in the
-# line starting with "remote.cros.url="
-# - firmware branch names have format of firmware-<board>-XXXXXX
-# - the current branch was cut off of <remote name>/master
-#
-# The tag name generated by this script would be the XXXXX string with dots,
-# if any, replaced by underscores.
-
-# Retrieve the upstream branch alias name
-UPSTREAM="$(git branch -a | awk '/->/ {print $3}')"
-if [[ -z "${UPSTREAM}" ]]; then
- echo "Failed to determine upstream branch alias" >&2
- exit 1
-fi
-
-export ORIGIN_NAME="cros"
-ORIGIN="$(git config "remote.${ORIGIN_NAME}.url")"
-
-# The last common patch between this branch and the master.
-BRANCH_POINT="$(git merge-base "${UPSTREAM}" "${ORIGIN_NAME}/master")"
-if [[ -z "${BRANCH_POINT}" ]]; then
- echo "Failed to determine cros/master branch point" >&2
- exit 1
-fi
-
-# Derive tag base string from the upstream branch name as described above.
-TAG_BASE="$(sed 's/.*-// # drop everything up to including the last -
- s/\./_/g # replace dots and dashes with underscores
- ' <<< "${UPSTREAM}" )"
-
-if [[ "${TAG_BASE}" == "master" ]]; then
- echo "Nothing to tag in master branch" >&2
- exit 1
-fi
-
-TAG="v1.${TAG_BASE}.0"
-
-#SHA1 of the first patch of this branch
-BASE_SHA="$(git rev-list --ancestry-path "${BRANCH_POINT}".."${UPSTREAM}" |
- tail -1)"
-
-echo "Will run git tag -a -m \"firmware branch ${TAG}\" ${TAG} ${BASE_SHA}"
-if git tag -a -m "firmware branch ${TAG}" "${TAG}" "${BASE_SHA}"; then
- cat <<EOF
-
-A new tag '$TAG' has been set. Use the following command
-to push it to the server
-
-git push --tags ${ORIGIN} ${TAG}
-
-Or if you want to delete it:
-
-git tag -d $TAG
-
-EOF
-fi