[oe-commits] Daniel Markus : socorro-syms: Add support for local repositories

git at git.openembedded.org git at git.openembedded.org
Sun Mar 29 22:40:23 UTC 2015


Module: meta-openembedded.git
Branch: master-next
Commit: 55937d49c47803a9ee008e10b646f0967ba8e605
URL:    http://git.openembedded.org/?p=meta-openembedded.git&a=commit;h=55937d49c47803a9ee008e10b646f0967ba8e605

Author: Daniel Markus <daniel.markus at leica-geosystems.com>
Date:   Thu Mar 26 09:20:06 2015 +0100

socorro-syms: Add support for local repositories

This socorro-syms functionality tries to extract the host name out of the source
code repository origin. This causes problems when the origin is a local
repository.

The solution is to look for the origin in two steps. If the origin in the first
step is a local directory we assume it is a temporary download repository. In
the second step we look for the origin to that download repository and if that
also redirects to a local repository, we provide the absolute path instead of a
Socorro repository link.

Signed-off-by: Daniel Markus <daniel.markus at leica-geosystems.com>
Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>

---

 meta-oe/classes/socorro-syms.bbclass | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/meta-oe/classes/socorro-syms.bbclass b/meta-oe/classes/socorro-syms.bbclass
index c272952..0312031 100644
--- a/meta-oe/classes/socorro-syms.bbclass
+++ b/meta-oe/classes/socorro-syms.bbclass
@@ -108,6 +108,12 @@ def run_command(command, directory):
     return output.rstrip()
 
 
+def is_local_url(url):
+
+    return \
+        url.startswith("file:") or url.startswith("/") or url.startswith("./")
+
+
 def git_repository_path(source_file_path):
 
     import re
@@ -125,12 +131,18 @@ def git_repository_path(source_file_path):
 
     # The URL could be a local download directory. If so, get the URL again
     # using the local directory's config file.
-    if os.path.isdir(source_long_url):
+    if is_local_url(source_long_url):
         git_config_file = os.path.join(source_long_url, "config")
         source_long_url = run_command(
             "git config --file %s --get remote.origin.url" % git_config_file,
             source_file_dir)
 
+        # If also the download directory redirects to a local git directory,
+        # then we're probably using source code from a local debug branch which
+        # won't be accessible by Socorro.
+        if is_local_url(source_long_url):
+            return None
+
     # The URL can have several formats. A full list can be found using
     # git help clone. Extract the server part with a regex.
     url_match = re.search(".*(://|@)([^:/]*).*", source_long_url)



More information about the Openembedded-commits mailing list