diff options
Diffstat (limited to 'bitbake/lib/bb/fetch/git.py')
-rw-r--r-- | bitbake/lib/bb/fetch/git.py | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/bitbake/lib/bb/fetch/git.py b/bitbake/lib/bb/fetch/git.py index 10b396bb00..f983ccf277 100644 --- a/bitbake/lib/bb/fetch/git.py +++ b/bitbake/lib/bb/fetch/git.py | |||
@@ -77,6 +77,8 @@ class Git(Fetch): | |||
77 | else: | 77 | else: |
78 | ud.localfile = data.expand('git_%s%s_%s.tar.gz' % (ud.host, subdirpath.replace('/', '.'), ud.tag), d) | 78 | ud.localfile = data.expand('git_%s%s_%s.tar.gz' % (ud.host, subdirpath.replace('/', '.'), ud.tag), d) |
79 | 79 | ||
80 | ud.basecmd = data.getVar("FETCHCMD_git", d, True) or "git" | ||
81 | |||
80 | return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile) | 82 | return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile) |
81 | 83 | ||
82 | def go(self, loc, ud, d): | 84 | def go(self, loc, ud, d): |
@@ -99,16 +101,16 @@ class Git(Fetch): | |||
99 | os.chdir(ud.clonedir) | 101 | os.chdir(ud.clonedir) |
100 | runfetchcmd("tar -xzf %s" % (repofile), d) | 102 | runfetchcmd("tar -xzf %s" % (repofile), d) |
101 | except: | 103 | except: |
102 | runfetchcmd("git clone -n %s://%s%s%s %s" % (ud.proto, username, ud.host, ud.path, ud.clonedir), d) | 104 | runfetchcmd("%s clone -n %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.clonedir), d) |
103 | 105 | ||
104 | os.chdir(ud.clonedir) | 106 | os.chdir(ud.clonedir) |
105 | # Remove all but the .git directory | 107 | # Remove all but the .git directory |
106 | if not self._contains_ref(ud.tag, d): | 108 | if not self._contains_ref(ud.tag, d): |
107 | runfetchcmd("rm * -Rf", d) | 109 | runfetchcmd("rm * -Rf", d) |
108 | runfetchcmd("git fetch %s://%s%s%s %s" % (ud.proto, username, ud.host, ud.path, ud.branch), d) | 110 | runfetchcmd("%s fetch %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.branch), d) |
109 | runfetchcmd("git fetch --tags %s://%s%s%s" % (ud.proto, username, ud.host, ud.path), d) | 111 | runfetchcmd("%s fetch --tags %s://%s%s%s" % (ud.basecmd, ud.proto, username, ud.host, ud.path), d) |
110 | runfetchcmd("git prune-packed", d) | 112 | runfetchcmd("%s prune-packed" % ud.basecmd, d) |
111 | runfetchcmd("git pack-redundant --all | xargs -r rm", d) | 113 | runfetchcmd("%s pack-redundant --all | xargs -r rm" % ud.basecmd, d) |
112 | 114 | ||
113 | os.chdir(ud.clonedir) | 115 | os.chdir(ud.clonedir) |
114 | mirror_tarballs = data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True) | 116 | mirror_tarballs = data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True) |
@@ -141,8 +143,8 @@ class Git(Fetch): | |||
141 | 143 | ||
142 | bb.mkdirhier(codir) | 144 | bb.mkdirhier(codir) |
143 | os.chdir(ud.clonedir) | 145 | os.chdir(ud.clonedir) |
144 | runfetchcmd("git read-tree %s%s" % (ud.tag, readpathspec), d) | 146 | runfetchcmd("%s read-tree %s%s" % (ud.basecmd, ud.tag, readpathspec), d) |
145 | runfetchcmd("git checkout-index -q -f --prefix=%s -a" % (coprefix), d) | 147 | runfetchcmd("%s checkout-index -q -f --prefix=%s -a" % (ud.basecmd, coprefix), d) |
146 | 148 | ||
147 | os.chdir(codir) | 149 | os.chdir(codir) |
148 | bb.msg.note(1, bb.msg.domain.Fetcher, "Creating tarball of git checkout") | 150 | bb.msg.note(1, bb.msg.domain.Fetcher, "Creating tarball of git checkout") |
@@ -155,7 +157,8 @@ class Git(Fetch): | |||
155 | return True | 157 | return True |
156 | 158 | ||
157 | def _contains_ref(self, tag, d): | 159 | def _contains_ref(self, tag, d): |
158 | output = runfetchcmd("git log --pretty=oneline -n 1 %s -- 2> /dev/null | wc -l" % tag, d, quiet=True) | 160 | basecmd = data.getVar("FETCHCMD_git", d, True) or "git" |
161 | output = runfetchcmd("%s log --pretty=oneline -n 1 %s -- 2> /dev/null | wc -l" % (basecmd, tag), d, quiet=True) | ||
159 | return output.split()[0] != "0" | 162 | return output.split()[0] != "0" |
160 | 163 | ||
161 | def _revision_key(self, url, ud, d): | 164 | def _revision_key(self, url, ud, d): |
@@ -173,7 +176,7 @@ class Git(Fetch): | |||
173 | else: | 176 | else: |
174 | username = "" | 177 | username = "" |
175 | 178 | ||
176 | cmd = "git ls-remote %s://%s%s%s %s" % (ud.proto, username, ud.host, ud.path, ud.branch) | 179 | cmd = "%s ls-remote %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.branch) |
177 | output = runfetchcmd(cmd, d, True) | 180 | output = runfetchcmd(cmd, d, True) |
178 | if not output: | 181 | if not output: |
179 | raise bb.fetch.FetchError("Fetch command %s gave empty output\n" % (cmd)) | 182 | raise bb.fetch.FetchError("Fetch command %s gave empty output\n" % (cmd)) |
@@ -204,7 +207,7 @@ class Git(Fetch): | |||
204 | if not self._contains_ref(rev, d): | 207 | if not self._contains_ref(rev, d): |
205 | self.go(None, ud, d) | 208 | self.go(None, ud, d) |
206 | 209 | ||
207 | output = runfetchcmd("git rev-list %s -- 2> /dev/null | wc -l" % rev, d, quiet=True) | 210 | output = runfetchcmd("%s rev-list %s -- 2> /dev/null | wc -l" % (ud.basecmd, rev), d, quiet=True) |
208 | os.chdir(cwd) | 211 | os.chdir(cwd) |
209 | 212 | ||
210 | buildindex = "%s" % output.split()[0] | 213 | buildindex = "%s" % output.split()[0] |