All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] metadata_scm: use rev-parse rather than show-ref
@ 2010-11-04 14:18 Chris Larson
  2010-11-04 17:03 ` Tim Harvey
  2010-11-04 18:17 ` Khem Raj
  0 siblings, 2 replies; 3+ messages in thread
From: Chris Larson @ 2010-11-04 14:18 UTC (permalink / raw)
  To: openembedded-devel; +Cc: Chris Larson

From: Chris Larson <chris_larson@mentor.com>

show-ref will show all matching refs, so a "show-ref HEAD" will show not just
the local HEAD, but the fetched remote ones as well.  This isn't what we want
for this function, so change it to use rev-parse with --verify, and also
change it to use --short, to shorten the hash to a more palatable length.

Signed-off-by: Chris Larson <chris_larson@mentor.com>
---
 classes/metadata_scm.bbclass |   22 +++++++++++++---------
 1 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/classes/metadata_scm.bbclass b/classes/metadata_scm.bbclass
index ffc6a8a..f79ea19 100644
--- a/classes/metadata_scm.bbclass
+++ b/classes/metadata_scm.bbclass
@@ -63,14 +63,18 @@ def base_get_metadata_svn_revision(path, d):
 	return revision
 
 def base_get_metadata_git_branch(path, d):
-	branch = os.popen('cd %s; PATH=%s git symbolic-ref HEAD 2>/dev/null' % (path, d.getVar("PATH", 1))).read().rstrip()
-
-	if len(branch) != 0:
-		return branch.replace("refs/heads/", "")
-	return "<unknown>"
+    try:
+        rev = oe_run(d, ["git", "symbolic-ref", "HEAD"], cwd=path).rstrip()
+    except oe.process.CmdError:
+        rev = "<unknown>"
+    else:
+        rev = rev.replace("refs/heads/", "")
+    return rev
 
 def base_get_metadata_git_revision(path, d):
-	rev = os.popen("cd %s; PATH=%s git show-ref HEAD 2>/dev/null" % (path, d.getVar("PATH", 1))).read().split(" ")[0].rstrip()
-	if len(rev) != 0:
-		return rev
-	return "<unknown>"
+    try:
+        rev = oe_run(d, ["git", "rev-parse", "--verify", "--short", "HEAD"],
+                     cwd=path).rstrip()
+    except oe.process.CmdError:
+        rev = "<unknown>"
+    return rev
-- 
1.7.2.3




^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] metadata_scm: use rev-parse rather than show-ref
  2010-11-04 14:18 [PATCH] metadata_scm: use rev-parse rather than show-ref Chris Larson
@ 2010-11-04 17:03 ` Tim Harvey
  2010-11-04 18:17 ` Khem Raj
  1 sibling, 0 replies; 3+ messages in thread
From: Tim Harvey @ 2010-11-04 17:03 UTC (permalink / raw)
  To: openembedded-devel; +Cc: Chris Larson

On 11/04/2010 07:18 AM, Chris Larson wrote:
> From: Chris Larson<chris_larson@mentor.com>
>
> show-ref will show all matching refs, so a "show-ref HEAD" will show not just
> the local HEAD, but the fetched remote ones as well.  This isn't what we want
> for this function, so change it to use rev-parse with --verify, and also
> change it to use --short, to shorten the hash to a more palatable length.
>
> Signed-off-by: Chris Larson<chris_larson@mentor.com>
> ---
>   classes/metadata_scm.bbclass |   22 +++++++++++++---------
>   1 files changed, 13 insertions(+), 9 deletions(-)
>
> diff --git a/classes/metadata_scm.bbclass b/classes/metadata_scm.bbclass
> index ffc6a8a..f79ea19 100644
> --- a/classes/metadata_scm.bbclass
> +++ b/classes/metadata_scm.bbclass
> @@ -63,14 +63,18 @@ def base_get_metadata_svn_revision(path, d):
>   	return revision
>
>   def base_get_metadata_git_branch(path, d):
> -	branch = os.popen('cd %s; PATH=%s git symbolic-ref HEAD 2>/dev/null' % (path, d.getVar("PATH", 1))).read().rstrip()
> -
> -	if len(branch) != 0:
> -		return branch.replace("refs/heads/", "")
> -	return "<unknown>"
> +    try:
> +        rev = oe_run(d, ["git", "symbolic-ref", "HEAD"], cwd=path).rstrip()
> +    except oe.process.CmdError:
> +        rev = "<unknown>"
> +    else:
> +        rev = rev.replace("refs/heads/", "")
> +    return rev
>
>   def base_get_metadata_git_revision(path, d):
> -	rev = os.popen("cd %s; PATH=%s git show-ref HEAD 2>/dev/null" % (path, d.getVar("PATH", 1))).read().split(" ")[0].rstrip()
> -	if len(rev) != 0:
> -		return rev
> -	return "<unknown>"
> +    try:
> +        rev = oe_run(d, ["git", "rev-parse", "--verify", "--short", "HEAD"],
> +                     cwd=path).rstrip()
> +    except oe.process.CmdError:
> +        rev = "<unknown>"
> +    return rev

This resolves prior issues I had with revision mismatch

Acked-by: Tim Harvey <harvey.tim@gmail.com>



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] metadata_scm: use rev-parse rather than show-ref
  2010-11-04 14:18 [PATCH] metadata_scm: use rev-parse rather than show-ref Chris Larson
  2010-11-04 17:03 ` Tim Harvey
@ 2010-11-04 18:17 ` Khem Raj
  1 sibling, 0 replies; 3+ messages in thread
From: Khem Raj @ 2010-11-04 18:17 UTC (permalink / raw)
  To: openembedded-devel; +Cc: Chris Larson

On (04/11/10 07:18), Chris Larson wrote:
> From: Chris Larson <chris_larson@mentor.com>
> 
> show-ref will show all matching refs, so a "show-ref HEAD" will show not just
> the local HEAD, but the fetched remote ones as well.  This isn't what we want
> for this function, so change it to use rev-parse with --verify, and also
> change it to use --short, to shorten the hash to a more palatable length.
> 
> Signed-off-by: Chris Larson <chris_larson@mentor.com>

seems to hold on my limited testing

Acked-by: Khem Raj <raj.khem@gmail.com>

> ---
>  classes/metadata_scm.bbclass |   22 +++++++++++++---------
>  1 files changed, 13 insertions(+), 9 deletions(-)
> 
> diff --git a/classes/metadata_scm.bbclass b/classes/metadata_scm.bbclass
> index ffc6a8a..f79ea19 100644
> --- a/classes/metadata_scm.bbclass
> +++ b/classes/metadata_scm.bbclass
> @@ -63,14 +63,18 @@ def base_get_metadata_svn_revision(path, d):
>  	return revision
>  
>  def base_get_metadata_git_branch(path, d):
> -	branch = os.popen('cd %s; PATH=%s git symbolic-ref HEAD 2>/dev/null' % (path, d.getVar("PATH", 1))).read().rstrip()
> -
> -	if len(branch) != 0:
> -		return branch.replace("refs/heads/", "")
> -	return "<unknown>"
> +    try:
> +        rev = oe_run(d, ["git", "symbolic-ref", "HEAD"], cwd=path).rstrip()
> +    except oe.process.CmdError:
> +        rev = "<unknown>"
> +    else:
> +        rev = rev.replace("refs/heads/", "")
> +    return rev
>  
>  def base_get_metadata_git_revision(path, d):
> -	rev = os.popen("cd %s; PATH=%s git show-ref HEAD 2>/dev/null" % (path, d.getVar("PATH", 1))).read().split(" ")[0].rstrip()
> -	if len(rev) != 0:
> -		return rev
> -	return "<unknown>"
> +    try:
> +        rev = oe_run(d, ["git", "rev-parse", "--verify", "--short", "HEAD"],
> +                     cwd=path).rstrip()
> +    except oe.process.CmdError:
> +        rev = "<unknown>"
> +    return rev
> -- 
> 1.7.2.3
> 
> 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-11-04 18:18 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-04 14:18 [PATCH] metadata_scm: use rev-parse rather than show-ref Chris Larson
2010-11-04 17:03 ` Tim Harvey
2010-11-04 18:17 ` Khem Raj

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.