Assume the manifest branch matches the branch name in Git
Whatever branch name we checked the manifest out from is the name
we want to reflect throughout the rest of the projects, e.g. within
the special "m/" remote space.
This reduces the difference between different branches within the
manifest file.
Signed-off-by: Shawn O. Pearce <sop@google.com>
diff --git a/manifest.py b/manifest.py
index 3d5e092..b928cdf 100644
--- a/manifest.py
+++ b/manifest.py
@@ -18,7 +18,7 @@
import xml.dom.minidom
from git_config import GitConfig, IsId
-from project import Project, MetaProject, R_TAGS
+from project import Project, MetaProject, R_HEADS
from remote import Remote
from error import ManifestParseError
@@ -97,6 +97,12 @@
def _Load(self):
if not self._loaded:
+ m = self.manifestProject
+ b = m.GetBranch(m.CurrentBranch).merge
+ if b.startswith(R_HEADS):
+ b = b[len(R_HEADS):]
+ self.branch = b
+
self._ParseManifest(True)
local = os.path.join(self.repodir, LOCAL_MANIFEST_NAME)
@@ -123,11 +129,6 @@
"no <manifest> in %s" % \
self.manifestFile
- if is_root_file:
- self.branch = config.getAttribute('branch')
- if not self.branch:
- self.branch = 'default'
-
for node in config.childNodes:
if node.nodeName == 'remote':
remote = self._ParseRemote(node)