[OE-core] [PATCH v2 2/3] fetch2/git.py: Add gitpkgv_revision alternative version information
Mike Looijmans
mike.looijmans at topic.nl
Fri May 22 06:29:04 UTC 2015
From: Mike Looijmans <milo-software at users.sourceforge.net>
gitpkgv_revision returns a sortable revision number that can be used
in the PKGV variable for example. To mimic meta-openembedded gitpkgv
behaviour to provide a sortable revision numner, one could set the
following:
PKGV = "1.0+${@bb.fetch2.get_srcrev(d, 'gitpkgv_revision')}"
This would yield a package version like "1.0+69+fb5eb80".
Signed-off-by: Mike Looijmans <mike.looijmans at topic.nl>
---
lib/bb/fetch2/git.py | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py
index 45bdec0..2e53882 100644
--- a/lib/bb/fetch2/git.py
+++ b/lib/bb/fetch2/git.py
@@ -398,6 +398,31 @@ class Git(FetchMethod):
def _build_revision(self, ud, d, name):
return ud.revisions[name]
+ def gitpkgv_revision(self, ud, d, name):
+ """
+ Return a sortable revision number by counting commits in the history
+ Based on gitpkgv.bblass in meta-openembedded
+ """
+ rev = self._build_revision(ud, d, name)
+ localpath = ud.localpath
+ rev_file = os.path.join(localpath, "oe-gitpkgv_" + rev)
+ if not os.path.exists(localpath):
+ commits = None
+ else:
+ if not os.path.exists(rev_file) or not os.path.getsize(rev_file):
+ from pipes import quote
+ commits = bb.fetch2.runfetchcmd(
+ "git rev-list %s -- | wc -l" % (quote(rev)),
+ d, quiet=True).strip().lstrip('0')
+ if commits:
+ open(rev_file, "w").write("%d\n" % int(commits))
+ else:
+ commits = open(rev_file, "r").readline(128).strip()
+ if commits:
+ return False, "%s+%s" % (commits, rev[:7])
+ else:
+ return True, str(rev)
+
def checkstatus(self, ud, d):
try:
self._lsremote(ud, d, "")
--
1.9.1
More information about the Openembedded-core
mailing list