]> code.ossystems Code Review - openembedded-core.git/commitdiff
classes/buildhistory: include metadata revisions in commit message
authorPaul Eggleton <paul.eggleton@linux.intel.com>
Wed, 26 Aug 2015 09:54:17 +0000 (10:54 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 30 Aug 2015 11:34:39 +0000 (12:34 +0100)
We do already commit these into the repository itself, but have them in
the commit message as well as a reference. As part of this, refactor out
running "git commit" into a separate function so we don't have to
duplicate the code in the two places we call it.

Implements [YOCTO #7966].

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/classes/buildhistory.bbclass

index 57dc1e9336ae15200890f7aa3b8b3030c81ca45d..135d17a83702f3b10ab0f81da3bb77af1dbb279f 100644 (file)
@@ -585,6 +585,27 @@ def buildhistory_get_cmdline(d):
     return '%s %s' % (bincmd, ' '.join(sys.argv[1:]))
 
 
+buildhistory_single_commit() {
+       if [ "$3" = "" ] ; then
+               commitopts="${BUILDHISTORY_DIR}/ --allow-empty"
+               item="No changes"
+       else
+               commitopts="$3 metadata-revs"
+               item="$3"
+       fi
+       commitmsgfile=`mktemp`
+       cat > $commitmsgfile << END
+$item: Build ${BUILDNAME} of ${DISTRO} ${DISTRO_VERSION} for machine ${MACHINE} on $2
+
+cmd: $1
+
+metadata revisions:
+END
+       cat ${BUILDHISTORY_DIR}/metadata-revs >> $commitmsgfile
+       git commit $commitopts -F $commitmsgfile --author "${BUILDHISTORY_COMMIT_AUTHOR}" > /dev/null
+       rm $commitmsgfile
+}
+
 buildhistory_commit() {
        if [ ! -d ${BUILDHISTORY_DIR} ] ; then
                # Code above that creates this dir never executed, so there can't be anything to commit
@@ -623,11 +644,11 @@ END
                        # porcelain output looks like "?? packages/foo/bar"
                        # Ensure we commit metadata-revs with the first commit
                        for entry in `echo "$repostatus" | awk '{print $2}' | awk -F/ '{print $1}' | sort | uniq` ; do
-                               git commit $entry metadata-revs -m "$entry: Build ${BUILDNAME} of ${DISTRO} ${DISTRO_VERSION} for machine ${MACHINE} on $HOSTNAME" -m "cmd: $CMDLINE" --author "${BUILDHISTORY_COMMIT_AUTHOR}" > /dev/null
+                               buildhistory_single_commit "$CMDLINE" "$HOSTNAME" "$entry"
                        done
                        git gc --auto --quiet
                else
-                       git commit ${BUILDHISTORY_DIR}/ --allow-empty -m "No changes: Build ${BUILDNAME} of ${DISTRO} ${DISTRO_VERSION} for machine ${MACHINE} on $HOSTNAME" -m "cmd: $CMDLINE" --author "${BUILDHISTORY_COMMIT_AUTHOR}" > /dev/null
+                       buildhistory_single_commit "$CMDLINE" "$HOSTNAME"
                fi
                if [ "${BUILDHISTORY_PUSH_REPO}" != "" ] ; then
                        git push -q ${BUILDHISTORY_PUSH_REPO}