diff options
Diffstat (limited to 'bitbake/lib/bb/fetch2/gitannex.py')
-rw-r--r-- | bitbake/lib/bb/fetch2/gitannex.py | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/bitbake/lib/bb/fetch2/gitannex.py b/bitbake/lib/bb/fetch2/gitannex.py index c66c211428..a9b69caab4 100644 --- a/bitbake/lib/bb/fetch2/gitannex.py +++ b/bitbake/lib/bb/fetch2/gitannex.py | |||
@@ -33,6 +33,11 @@ class GitANNEX(Git): | |||
33 | """ | 33 | """ |
34 | return ud.type in ['gitannex'] | 34 | return ud.type in ['gitannex'] |
35 | 35 | ||
36 | def urldata_init(self, ud, d): | ||
37 | super(GitANNEX, self).urldata_init(ud, d) | ||
38 | if ud.shallow: | ||
39 | ud.shallow_extra_refs += ['refs/heads/git-annex', 'refs/heads/synced/*'] | ||
40 | |||
36 | def uses_annex(self, ud, d, wd): | 41 | def uses_annex(self, ud, d, wd): |
37 | for name in ud.names: | 42 | for name in ud.names: |
38 | try: | 43 | try: |
@@ -55,9 +60,21 @@ class GitANNEX(Git): | |||
55 | def download(self, ud, d): | 60 | def download(self, ud, d): |
56 | Git.download(self, ud, d) | 61 | Git.download(self, ud, d) |
57 | 62 | ||
58 | annex = self.uses_annex(ud, d, ud.clonedir) | 63 | if not ud.shallow or ud.localpath != ud.fullshallow: |
59 | if annex: | 64 | if self.uses_annex(ud, d, ud.clonedir): |
60 | self.update_annex(ud, d, ud.clonedir) | 65 | self.update_annex(ud, d, ud.clonedir) |
66 | |||
67 | def clone_shallow_local(self, ud, dest, d): | ||
68 | super(GitANNEX, self).clone_shallow_local(ud, dest, d) | ||
69 | |||
70 | try: | ||
71 | runfetchcmd("%s annex init" % ud.basecmd, d, workdir=dest) | ||
72 | except bb.fetch.FetchError: | ||
73 | pass | ||
74 | |||
75 | if self.uses_annex(ud, d, dest): | ||
76 | runfetchcmd("%s annex get" % ud.basecmd, d, workdir=dest) | ||
77 | runfetchcmd("chmod u+w -R %s/.git/annex" % (dest), d, quiet=True, workdir=dest) | ||
61 | 78 | ||
62 | def unpack(self, ud, destdir, d): | 79 | def unpack(self, ud, destdir, d): |
63 | Git.unpack(self, ud, destdir, d) | 80 | Git.unpack(self, ud, destdir, d) |