Gentoo Archives: gentoo-dev

From: "Robin H. Johnson" <robbat2@g.o>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] [RFC ECLASS PATCH] Include exact Hg revision data for repeatability from logs.
Date: Mon, 23 Aug 2010 21:23:58
Message-Id: robbat2-20100823T212204-147972867Z@orbis-terrarum.net
The existing EHG_REVISION is the target revision, usually 'tip', so it
doesn't help us reproduce a bug if the upstream tree has moved since log
creation.

Example output:
* Work directory: /var/tmp/portage/.... global id: 44cff02c8042 branch: default

Signed-off-by: Robin H. Johnson <robbat2@g.o>

Index: mercurial.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/mercurial.eclass,v
retrieving revision 1.12
diff -p -w -b -B -u -r1.12 mercurial.eclass
--- mercurial.eclass	2 Apr 2010 18:29:39 -0000	1.12
+++ mercurial.eclass	23 Aug 2010 21:20:41 -0000
@@ -116,12 +116,20 @@ function mercurial_fetch {
 	fi
 
 	# Checkout working copy:
-	einfo "Creating working directory in ${WORKDIR}/${module} (revision: ${EHG_REVISION})"
+	einfo "Creating working directory in ${WORKDIR}/${module} (target revision: ${EHG_REVISION})"
 	hg clone \
 		${EHG_QUIET_CMD_OPT} \
 		--rev="${EHG_REVISION}" \
 		"${EHG_STORE_DIR}/${EHG_PROJECT}/${module}" \
 		"${WORKDIR}/${module}" || die "hg clone failed"
+	# An exact revision helps a lot for testing purposes, so have some output...
+	# id           num  branch
+	# fd6e32d61721 6276 default
+	local HG_REVDATA=($(hg identify -n -b -i "${WORKDIR}/${module}"))
+	local HG_REV_ID=${HG_REVDATA[0]}
+	local HG_REV_NUM=${HG_REVDATA[1]}
+	local HG_REV_BRANCH=${HG_REVDATA[2]}
+	einfo "Work directory: ${WORKDIR}/${module} global id: ${HG_REV_ID} branch: ${HG_REV_BRANCH}"
 }
 
 # @FUNCTION: mercurial_src_unpack

-- 
Robin Hugh Johnson
Gentoo Linux: Developer, Trustee & Infrastructure Lead
E-Mail     : robbat2@g.o
GnuPG FP   : 11AC BA4F 4778 E3F6 E4ED  F38E B27B 944E 3488 4E85

Replies