I applied this to master. I would personally question it going into 1.8, unless there's a real bug underlying this. What was the original motivation behind this?
On Fri, Feb 19, 2010 at 7:06 AM, Martyn Welch <[email protected]> wrote: > Hi Richard, > > Is this patch acceptable? > > Martyn > > Martyn Welch wrote: > > The Git fetcher currently hardwires the git command to "git". Allow the > > path and any additional wrappers to the Git command to be provided via > > FETCHCMD functionality, as with some of the other fetchers. > > > > If FETCHCMD_git is not define in bitbake.conf, the fetcher defaults to > "git". > > > > Signed-off-by: Malcolm Crossley <[email protected]> > > Signed-off-by: Martyn Welch <[email protected]> > > --- > > > > v3: > > > > Sorry for the noise - I just noticed a bit of debugging that was > > accidentally left in. > > > > v2: > > > > Following Richards suggestion, default added and ud.basecmd set in > > localpath. > > > > We have been sitting on this patch for a while, I forward ported it, but > > in my haste failed to check if all calls to "git" we changed, the > > fetcher seems to have changed a bit and there are now more calls to the > > git command. This is now done in the patch below. This does mean that > > "FETCHCMD_git" must be read in "_contains_ref" as well (it doesn't seem > > to have "ud" in it it's context) but I feel it pays to be consistent. > > > > v1: > > > > This patch is against the "1.8" branch. > > > > lib/bb/fetch/git.py | 23 +++++++++++++---------- > > 1 files changed, 13 insertions(+), 10 deletions(-) > > > > diff --git a/lib/bb/fetch/git.py b/lib/bb/fetch/git.py > > index 5cdf656..6ea2a30 100644 > > --- a/lib/bb/fetch/git.py > > +++ b/lib/bb/fetch/git.py > > @@ -57,6 +57,8 @@ class Git(Fetch): > > > > ud.localfile = data.expand('git_%s%s_%s.tar.gz' % (ud.host, > ud.path.replace('/', '.'), ud.tag), d) > > > > + ud.basecmd = data.getVar("FETCHCMD_git", d, True) or "git" > > + > > return os.path.join(data.getVar("DL_DIR", d, True), > ud.localfile) > > > > def go(self, loc, ud, d): > > @@ -86,16 +88,16 @@ class Git(Fetch): > > os.chdir(repodir) > > runfetchcmd("tar -xzf %s" % (repofile), d) > > else: > > - runfetchcmd("git clone -n %s://%s%s%s %s" % (ud.proto, > username, ud.host, ud.path, repodir), d) > > + runfetchcmd("%s clone -n %s://%s%s%s %s" % (ud.basecmd, > ud.proto, username, ud.host, ud.path, repodir), d) > > > > os.chdir(repodir) > > # Remove all but the .git directory > > if not self._contains_ref(ud.tag, d): > > runfetchcmd("rm * -Rf", d) > > - runfetchcmd("git fetch %s://%s%s%s %s" % (ud.proto, > username, ud.host, ud.path, ud.branch), d) > > - runfetchcmd("git fetch --tags %s://%s%s%s" % (ud.proto, > username, ud.host, ud.path), d) > > - runfetchcmd("git prune-packed", d) > > - runfetchcmd("git pack-redundant --all | xargs -r rm", d) > > + runfetchcmd("%s fetch %s://%s%s%s %s" % (ud.basecmd, > ud.proto, username, ud.host, ud.path, ud.branch), d) > > + runfetchcmd("%s fetch --tags %s://%s%s%s" % (ud.basecmd, > ud.proto, username, ud.host, ud.path), d) > > + runfetchcmd("%s prune-packed" % (ud.basecmd), d) > > + runfetchcmd("%s pack-redundant --all | xargs -r rm" % > (ud.basecmd), d) > > > > os.chdir(repodir) > > mirror_tarballs = data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, > True) > > @@ -108,8 +110,8 @@ class Git(Fetch): > > > > bb.mkdirhier(codir) > > os.chdir(repodir) > > - runfetchcmd("git read-tree %s" % (ud.tag), d) > > - runfetchcmd("git checkout-index -q -f --prefix=%s -a" % > (os.path.join(codir, "git", "")), d) > > + runfetchcmd("%s read-tree %s" % (ud.basecmd, ud.tag), d) > > + runfetchcmd("%s checkout-index -q -f --prefix=%s -a" % > (ud.basecmd, os.path.join(codir, "git", "")), d) > > > > os.chdir(codir) > > bb.msg.note(1, bb.msg.domain.Fetcher, "Creating tarball of git > checkout") > > @@ -122,7 +124,8 @@ class Git(Fetch): > > return True > > > > def _contains_ref(self, tag, d): > > - output = runfetchcmd("git log --pretty=oneline -n 1 %s -- 2> > /dev/null | wc -l" % tag, d, quiet=True) > > + basecmd = data.getVar("FETCHCMD_git", d, True) or "git" > > + output = runfetchcmd("%s log --pretty=oneline -n 1 %s -- 2> > /dev/null | wc -l" % (basecmd, tag), d, quiet=True) > > return output.split()[0] != "0" > > > > def _revision_key(self, url, ud, d): > > @@ -140,7 +143,7 @@ class Git(Fetch): > > else: > > username = "" > > > > - output = runfetchcmd("git ls-remote %s://%s%s%s %s" % (ud.proto, > username, ud.host, ud.path, ud.branch), d, True) > > + output = runfetchcmd("%s ls-remote %s://%s%s%s %s" % > (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.branch), d, True) > > return output.split()[0] > > > > def _build_revision(self, url, ud, d): > > @@ -179,7 +182,7 @@ class Git(Fetch): > > if not self._contains_ref(ud.tag, d): > > self.go(None, ud, d) > > > > - output = runfetchcmd("git rev-list %s -- 2> /dev/null | wc -l" % > ud.tag, d, quiet=True) > > + output = runfetchcmd("%s rev-list %s -- 2> /dev/null | wc -l" % > ud.basecmd, ud.tag, d, quiet=True) > > os.chdir(cwd) > > > > sortable_revision = "%s+%s" % (output.split()[0], ud.tag) > > > > > > -- > > Martyn Welch MEng MPhil MIET (Principal Software Engineer) > T:+44(0)1327322748 > > GE Fanuc Intelligent Platforms Ltd, |Registered in England and > Wales > > Tove Valley Business Park, Towcester, |(3828642) at 100 Barbirolli > Square, > > Northants, NN12 6PF, UK T:+44(0)1327359444 |Manchester,M2 3AB VAT:GB > 927559189 > > _______________________________________________ > > Bitbake-dev mailing list > > [email protected] > > https://lists.berlios.de/mailman/listinfo/bitbake-dev > > > > > -- > Martyn Welch (Principal Software Engineer) | Registered in England and > GE Intelligent Platforms | Wales (3828642) at 100 > T +44(0)127322748 | Barbirolli Square, > Manchester, > E [email protected] | M2 3AB VAT:GB 927559189 > > _______________________________________________ > Bitbake-dev mailing list > [email protected] > https://lists.berlios.de/mailman/listinfo/bitbake-dev > -- Christopher Larson clarson at kergoth dot com Founder - BitBake, OpenEmbedded, OpenZaurus Maintainer - Tslib Senior Software Engineer, Mentor Graphics
_______________________________________________ Bitbake-dev mailing list [email protected] https://lists.berlios.de/mailman/listinfo/bitbake-dev
