diff options
| -rw-r--r-- | project.py | 16 | ||||
| -rw-r--r-- | subcmds/init.py | 3 |
2 files changed, 19 insertions, 0 deletions
| @@ -2167,6 +2167,22 @@ class MetaProject(Project): | |||
| 2167 | self.revisionExpr = base | 2167 | self.revisionExpr = base |
| 2168 | self.revisionId = None | 2168 | self.revisionId = None |
| 2169 | 2169 | ||
| 2170 | def MetaBranchSwitch(self, target): | ||
| 2171 | """ Prepare MetaProject for manifest branch switch | ||
| 2172 | """ | ||
| 2173 | |||
| 2174 | # detach and delete manifest branch, allowing a new | ||
| 2175 | # branch to take over | ||
| 2176 | syncbuf = SyncBuffer(self.config, detach_head = True) | ||
| 2177 | self.Sync_LocalHalf(syncbuf) | ||
| 2178 | syncbuf.Finish() | ||
| 2179 | |||
| 2180 | return GitCommand(self, | ||
| 2181 | ['branch', '-D', 'default'], | ||
| 2182 | capture_stdout = True, | ||
| 2183 | capture_stderr = True).Wait() == 0 | ||
| 2184 | |||
| 2185 | |||
| 2170 | @property | 2186 | @property |
| 2171 | def LastFetch(self): | 2187 | def LastFetch(self): |
| 2172 | try: | 2188 | try: |
diff --git a/subcmds/init.py b/subcmds/init.py index b359024d..a758fbb1 100644 --- a/subcmds/init.py +++ b/subcmds/init.py | |||
| @@ -187,6 +187,9 @@ to update the working directory files. | |||
| 187 | shutil.rmtree(m.gitdir) | 187 | shutil.rmtree(m.gitdir) |
| 188 | sys.exit(1) | 188 | sys.exit(1) |
| 189 | 189 | ||
| 190 | if opt.manifest_branch: | ||
| 191 | m.MetaBranchSwitch(opt.manifest_branch) | ||
| 192 | |||
| 190 | syncbuf = SyncBuffer(m.config) | 193 | syncbuf = SyncBuffer(m.config) |
| 191 | m.Sync_LocalHalf(syncbuf) | 194 | m.Sync_LocalHalf(syncbuf) |
| 192 | syncbuf.Finish() | 195 | syncbuf.Finish() |
