mirror of
https://gerrit.googlesource.com/git-repo
synced 2025-07-02 20:17:19 +00:00
Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
329c31da7d | |||
5cc6679fb8 |
22
manifest.py
22
manifest.py
@ -26,6 +26,7 @@ from remote import Remote
|
||||
from error import ManifestParseError
|
||||
|
||||
MANIFEST_FILE_NAME = 'manifest.xml'
|
||||
LOCAL_MANIFEST_NAME = 'local_manifest.xml'
|
||||
|
||||
class _Default(object):
|
||||
"""Project defaults within the manifest."""
|
||||
@ -108,10 +109,20 @@ class Manifest(object):
|
||||
|
||||
def _Load(self):
|
||||
if not self._loaded:
|
||||
self._ParseManifest()
|
||||
self._ParseManifest(True)
|
||||
|
||||
local = os.path.join(self.repodir, LOCAL_MANIFEST_NAME)
|
||||
if os.path.exists(local):
|
||||
try:
|
||||
real = self.manifestFile
|
||||
self.manifestFile = local
|
||||
self._ParseManifest(False)
|
||||
finally:
|
||||
self.manifestFile = real
|
||||
|
||||
self._loaded = True
|
||||
|
||||
def _ParseManifest(self):
|
||||
def _ParseManifest(self, is_root_file):
|
||||
root = xml.dom.minidom.parse(self.manifestFile)
|
||||
if not root or not root.childNodes:
|
||||
raise ManifestParseError, \
|
||||
@ -124,9 +135,10 @@ class Manifest(object):
|
||||
"no <manifest> in %s" % \
|
||||
self.manifestFile
|
||||
|
||||
self.branch = config.getAttribute('branch')
|
||||
if not self.branch:
|
||||
self.branch = 'default'
|
||||
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':
|
||||
|
25
project.py
25
project.py
@ -470,6 +470,7 @@ class Project(object):
|
||||
return False
|
||||
if not self._RemoteFetch():
|
||||
return False
|
||||
self._RepairAndroidImportErrors()
|
||||
self._InitMRef()
|
||||
return True
|
||||
|
||||
@ -477,6 +478,30 @@ class Project(object):
|
||||
for file in self.copyfiles:
|
||||
file._Copy()
|
||||
|
||||
def _RepairAndroidImportErrors(self):
|
||||
if self.name in ['platform/external/iptables',
|
||||
'platform/external/libpcap',
|
||||
'platform/external/tcpdump',
|
||||
'platform/external/webkit',
|
||||
'platform/system/wlan/ti']:
|
||||
# I hate myself for doing this...
|
||||
#
|
||||
# In the initial Android 1.0 release these projects were
|
||||
# shipped, some users got them, and then the history had
|
||||
# to be rewritten to correct problems with their imports.
|
||||
# The 'android-1.0' tag may still be pointing at the old
|
||||
# history, so we need to drop the tag and fetch it again.
|
||||
#
|
||||
try:
|
||||
remote = self.GetRemote(self.remote.name)
|
||||
relname = remote.ToLocal(R_HEADS + 'release-1.0')
|
||||
tagname = R_TAGS + 'android-1.0'
|
||||
if self._revlist(not_rev(relname), tagname):
|
||||
cmd = ['fetch', remote.name, '+%s:%s' % (tagname, tagname)]
|
||||
GitCommand(self, cmd, bare = True).Wait()
|
||||
except GitError:
|
||||
pass
|
||||
|
||||
def Sync_LocalHalf(self):
|
||||
"""Perform only the local IO portion of the sync process.
|
||||
Network access is not required.
|
||||
|
Reference in New Issue
Block a user