Change version labels to work better with GIT
authordbrownell <dbrownell@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Wed, 7 Oct 2009 05:43:05 +0000 (05:43 +0000)
committerdbrownell <dbrownell@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Wed, 7 Oct 2009 05:43:05 +0000 (05:43 +0000)
 - The guess-rev.sh script is now a tweaked version of "setlocalversion" as
   seen in Linux, U-Boot, and various other projects.  When it finds source
   control support (git, hg, svn) it uses IDs from there.  Else (specific
   to this project) it reports itself as "-snapshot", e.g. from gitweb.

   I verified this new "guess-rev.sh" script runs under Cygwin.

 - Also update the generic version strings to be like "0.3.0-dev" (during
   development) instead of the very long "0.3.0-in-development".  These also
   show up in the PDF docs.  For better tracking, we might eventually change
   these strings to include the version IDs too.

 - Change the startup banner version strings so they include the guess-rev
   output.  Development and release versions with GIT will be like

    Open On-Chip Debugger 0.3.0-dev-00282-g7191a4f-dirty (2009-10-05-20:57)
    Open On-Chip Debugger 0.3.0 (2009-10-05-20:57)

   instead of the previous SVN-specific (even when using git-svn!)

    Open On-Chip Debugger 0.3.0-in-development (2009-10-05-01:39) svn:exported
    Open On-Chip Debugger 0.3.0 (2009-10-05-01:39) Release

git-svn-id: svn://svn.berlios.de/openocd/trunk@2809 b42882b7-edfa-0310-969c-e2dbd0fdcd60

configure.in
doc/manual/release.txt
guess-rev.sh
src/Makefile.am
src/openocd.c
tools/release.sh

index 6febcb237d714bb42c5a327ad9422f6c619bf945..8e2881cf43beb049931f3f71c82084095c4d2457 100644 (file)
@@ -1,5 +1,5 @@
 AC_PREREQ(2.60)
-AC_INIT([openocd], [0.3.0-in-development],
+AC_INIT([openocd], [0.3.0-dev],
   [OpenOCD Mailing List <openocd-development@lists.berlios.de>])
 AC_CONFIG_SRCDIR([src/openocd.c])
 
index c47796607f51df32c830f00a8f705aa537b35e42..2ba652de21ec06f3c4674104bdc95f16fb350375 100644 (file)
@@ -62,9 +62,9 @@ the minor version will @a also be zero (<code>y = 0, z = 0</code>).
 @subsection releaseversiontags Version Tags
 
 After these required numeric components, the version string may contain
-one or more <i>version tags</i>, such as '-rc1' or '-in-development'.
+one or more <i>version tags</i>, such as '-rc1' or '-dev'.
 
-The trunk and all branches should have the tag '-in-development' in
+The trunk and all branches should have the tag '-dev' in
 their version number.  This tag helps developers identify reports
 created from the Subversion repository, and it can be detected and
 manipulated by the release script.  Specifically, this tag will be
@@ -218,7 +218,7 @@ The following steps should be followed to produce each release:
     - This material should be produced during the development cycle.
     - Add a new item for each @c NEWS-worthy contribution, when committed.
   -# bump library version if our API changed (not yet required)
-  -# Remove -in-development tag from package version:
+  -# Remove -dev tag from package version in configure.in:
     - For major/minor releases, remove version tag from trunk, @a or
     - For bug-fix releases, remove version tag from release branch.
 -# Branch or tag the required tree in the Subversion repository:
index aee6770df4ef97fb1b28e901f9c20101bf5496e6..7adbe2817a43f1bac90da1cb716f605fb9d7fe80 100755 (executable)
@@ -1,8 +1,83 @@
-#!/bin/bash
+#!/bin/sh
 #
+# This scripts adds local version information from the version
+# control systems git, mercurial (hg) and subversion (svn).
+#
+# Copied from Linux 2.6.32 scripts/setlocalversion and modified
+# slightly to work better for OpenOCD.
+#
+
+usage() {
+       echo "Usage: $0 [srctree]" >&2
+       exit 1
+}
+
+cd "${1:-.}" || usage
+
+# Check for git and a git repo.
+if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then
+
+       # If we are at a tagged commit (like "v2.6.30-rc6"), we ignore it,
+       # because this version is defined in the top level Makefile.
+       if [ -z "`git describe --exact-match 2>/dev/null`" ]; then
+
+               # If we are past a tagged commit (like "v2.6.30-rc5-302-g72357d5"),
+               # we pretty print it.
+               if atag="`git describe 2>/dev/null`"; then
+                       echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}'
+
+               # If we don't have a tag at all we print -g{commitish}.
+               else
+                       printf '%s%s' -g $head
+               fi
+       fi
+
+       # Is this git on svn?
+       if git config --get svn-remote.svn.url >/dev/null; then
+               printf -- '-svn%s' "`git svn find-rev $head`"
+       fi
+
+       # Update index only on r/w media
+       [ -w . ] && git update-index --refresh --unmerged > /dev/null
+
+       # Check for uncommitted changes
+       if git diff-index --name-only HEAD | grep -v "^scripts/package" \
+           | read dummy; then
+               printf '%s' -dirty
+       fi
+
+       # All done with git
+       exit
+fi
+
+# Check for mercurial and a mercurial repo.
+if hgid=`hg id 2>/dev/null`; then
+       tag=`printf '%s' "$hgid" | cut -d' ' -f2`
+
+       # Do we have an untagged version?
+       if [ -z "$tag" -o "$tag" = tip ]; then
+               id=`printf '%s' "$hgid" | sed 's/[+ ].*//'`
+               printf '%s%s' -hg "$id"
+       fi
+
+       # Are there uncommitted changes?
+       # These are represented by + after the changeset id.
+       case "$hgid" in
+               *+|*+\ *) printf '%s' -dirty ;;
+       esac
+
+       # All done with mercurial
+       exit
+fi
 
-REV=unknown
+# Check for svn and a svn repo.
+if rev=`svn info 2>/dev/null | grep '^Last Changed Rev'`; then
+       rev=`echo $rev | awk '{print $NF}'`
+       printf -- '-svn%s' "$rev"
 
-which svnversion > /dev/null 2>&1 && REV=`svnversion -n "$1"`
+       # All done with svn
+       exit
+fi
 
-echo -n $REV
+# There's no reecognized repository; we must be a snapshot.
+printf -- '-snapshot'
index 9198d0cafd7e1fdc6649eb22cff35ff57fc8cbb1..a223f9512fcef2a694d4c66790bf413bec62c41e 100644 (file)
@@ -28,10 +28,12 @@ AM_CPPFLAGS = \
 
 libopenocd_la_CPPFLAGS = -DPKGBLDDATE=\"`date +%F-%R`\"
 
+# banner output includes RELSTR appended to $VERSION from the configure script
+# guess-rev.sh returns either a repository version ID or "-snapshot"
 if RELEASE
-libopenocd_la_CPPFLAGS += -DRELSTR=\"Release\" -DPKGBLDREV=\"\"
+libopenocd_la_CPPFLAGS += -DRELSTR=\"\"
 else
-libopenocd_la_CPPFLAGS += -DRELSTR=\"svn:\" -DPKGBLDREV=\"`$(top_srcdir)/guess-rev.sh $(top_srcdir)`\"
+libopenocd_la_CPPFLAGS += -DRELSTR=\"`$(top_srcdir)/guess-rev.sh $(top_srcdir)`\"
 endif
 
 # add default CPPFLAGS
index 95c2f237db33bc4a05d43200f00d9badb67096a1..86b8aaf27ff384e6dd57b0ea9756e3e677490907 100644 (file)
@@ -49,7 +49,7 @@
 
 
 #define OPENOCD_VERSION \
-               "Open On-Chip Debugger " VERSION " (" PKGBLDDATE ") " RELSTR PKGBLDREV
+               "Open On-Chip Debugger " VERSION RELSTR " (" PKGBLDDATE ")"
 
 static void print_version(void)
 {
index 106799ceb2a833b54b71bef0da712425e0694951..f1ed4a73ada15cfeccfb53e518faf66b273f5d50 100755 (executable)
@@ -97,7 +97,7 @@ package_info_load() {
 
        PACKAGE_VERSION="$(package_info_load_version)"
        [ "${RELEASE_VERSION}" ] || \
-               RELEASE_VERSION=${PACKAGE_VERSION/-in-development/}
+               RELEASE_VERSION=${PACKAGE_VERSION/-dev/}
 
        [ "${PACKAGE_NAME}" -a "${PACKAGE_VERSION}" ] || \
                die "package information is missing from configure script"
@@ -427,7 +427,7 @@ do_commit() {
        package_info_load
        svn_setup_load
 
-       [ "${PACKAGE_VERSION/in-development/}" = "${PACKAGE_VERSION}" ] || \
+       [ "${PACKAGE_VERSION/dev/}" = "${PACKAGE_VERSION}" ] || \
                die "'${PACKAGE_NAME}-${PACKAGE_VERSION}' cannot be released"
 
        [ "${PACKAGE_VERSION%.0}" = "${PACKAGE_VERSION}" ] || \
@@ -437,7 +437,7 @@ do_commit() {
 
 
 do_release_step_prep() {
-       do_version tag remove in-development
+       do_version tag remove dev
        # reset RELEASE_VERSION now to allow release version to be detected
        export RELEASE_VERSION=
 }
@@ -447,7 +447,7 @@ do_release_step_branch_bump() {
        local TYPE="$1"
        echo "Bump ${TYPE} version and add tag:"
        do_version_bump ${TYPE}
-       do_version_tag_add in-development
+       do_version_tag_add dev
 }
 do_release_step_branch() {
        do_svn_switch "${PACKAGE_BRANCH}"

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)