diff options
Diffstat (limited to 'bitbake/lib/bb/fetch2/gitsm.py')
| -rw-r--r-- | bitbake/lib/bb/fetch2/gitsm.py | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/bitbake/lib/bb/fetch2/gitsm.py b/bitbake/lib/bb/fetch2/gitsm.py index 752f1d3c15..6613762048 100644 --- a/bitbake/lib/bb/fetch2/gitsm.py +++ b/bitbake/lib/bb/fetch2/gitsm.py | |||
| @@ -43,10 +43,10 @@ class GitSM(Git): | |||
| 43 | """ | 43 | """ |
| 44 | return ud.type in ['gitsm'] | 44 | return ud.type in ['gitsm'] |
| 45 | 45 | ||
| 46 | def uses_submodules(self, ud, d): | 46 | def uses_submodules(self, ud, d, wd): |
| 47 | for name in ud.names: | 47 | for name in ud.names: |
| 48 | try: | 48 | try: |
| 49 | runfetchcmd("%s show %s:.gitmodules" % (ud.basecmd, ud.revisions[name]), d, quiet=True) | 49 | runfetchcmd("%s show %s:.gitmodules" % (ud.basecmd, ud.revisions[name]), d, quiet=True, workdir=wd) |
| 50 | return True | 50 | return True |
| 51 | except bb.fetch.FetchError: | 51 | except bb.fetch.FetchError: |
| 52 | pass | 52 | pass |
| @@ -107,28 +107,25 @@ class GitSM(Git): | |||
| 107 | os.mkdir(tmpclonedir) | 107 | os.mkdir(tmpclonedir) |
| 108 | os.rename(ud.clonedir, gitdir) | 108 | os.rename(ud.clonedir, gitdir) |
| 109 | runfetchcmd("sed " + gitdir + "/config -i -e 's/bare.*=.*true/bare = false/'", d) | 109 | runfetchcmd("sed " + gitdir + "/config -i -e 's/bare.*=.*true/bare = false/'", d) |
| 110 | os.chdir(tmpclonedir) | 110 | runfetchcmd(ud.basecmd + " reset --hard", d, workdir=tmpclonedir) |
| 111 | runfetchcmd(ud.basecmd + " reset --hard", d) | 111 | runfetchcmd(ud.basecmd + " checkout " + ud.revisions[ud.names[0]], d, workdir=tmpclonedir) |
| 112 | runfetchcmd(ud.basecmd + " checkout " + ud.revisions[ud.names[0]], d) | 112 | runfetchcmd(ud.basecmd + " submodule update --init --recursive", d, workdir=tmpclonedir) |
| 113 | runfetchcmd(ud.basecmd + " submodule update --init --recursive", d) | ||
| 114 | self._set_relative_paths(tmpclonedir) | 113 | self._set_relative_paths(tmpclonedir) |
| 115 | runfetchcmd("sed " + gitdir + "/config -i -e 's/bare.*=.*false/bare = true/'", d) | 114 | runfetchcmd("sed " + gitdir + "/config -i -e 's/bare.*=.*false/bare = true/'", d, workdir=tmpclonedir) |
| 116 | os.rename(gitdir, ud.clonedir,) | 115 | os.rename(gitdir, ud.clonedir,) |
| 117 | bb.utils.remove(tmpclonedir, True) | 116 | bb.utils.remove(tmpclonedir, True) |
| 118 | 117 | ||
| 119 | def download(self, ud, d): | 118 | def download(self, ud, d): |
| 120 | Git.download(self, ud, d) | 119 | Git.download(self, ud, d) |
| 121 | 120 | ||
| 122 | os.chdir(ud.clonedir) | 121 | submodules = self.uses_submodules(ud, d, ud.clonedir) |
| 123 | submodules = self.uses_submodules(ud, d) | ||
| 124 | if submodules: | 122 | if submodules: |
| 125 | self.update_submodules(ud, d) | 123 | self.update_submodules(ud, d) |
| 126 | 124 | ||
| 127 | def unpack(self, ud, destdir, d): | 125 | def unpack(self, ud, destdir, d): |
| 128 | Git.unpack(self, ud, destdir, d) | 126 | Git.unpack(self, ud, destdir, d) |
| 129 | 127 | ||
| 130 | os.chdir(ud.destdir) | 128 | submodules = self.uses_submodules(ud, d, ud.destdir) |
| 131 | submodules = self.uses_submodules(ud, d) | ||
| 132 | if submodules: | 129 | if submodules: |
| 133 | runfetchcmd(ud.basecmd + " checkout " + ud.revisions[ud.names[0]], d) | 130 | runfetchcmd(ud.basecmd + " checkout " + ud.revisions[ud.names[0]], d, workdir=ud.destdir) |
| 134 | runfetchcmd(ud.basecmd + " submodule update --init --recursive", d) | 131 | runfetchcmd(ud.basecmd + " submodule update --init --recursive", d, workdir=ud.destdir) |
