2

我想从 CM 中早午餐生成的 roomservice.xml 中删除一个与设备相关的项目,并自己添加一个不同的 repo。理论上(在我的本地清单中,称为 mint.xml),我应该只需要 <remove-project name="Cyanogenmod/.... 但是 repo sync 告诉我

remove-project 元素指定不存在的项目

那是因为我的本地清单是在roomservice.xml之前获取的吗?

这个问题与这个有点相关: Trouble-with-cyanogenmod-local-manifest

其他来源: 关于删除项目的 CM Wiki

您知道如何在 roomservice.xml之后获取自己的清单或以某种方式实现相同吗?

感谢您的任何回答。

4

1 回答 1

3

如 Repo 的 manifest_xml.py 所示,

LOCAL_MANIFESTS_DIR_NAME = 'local_manifests'
...
class XmlManifest(object):
  ...
  def _Load(self):
      ...
      local_dir = os.path.abspath(os.path.join(self.repodir, LOCAL_MANIFESTS_DIR_NAME))
      try:
        for local_file in sorted(os.listdir(local_dir)):
          if local_file.endswith('.xml'):
            local = os.path.join(local_dir, local_file)
            nodes.append(self._ParseManifestXml(local, self.repodir))
      except OSError:
        pass

本地清单文件按字母顺序读取。因此,您的 mint.xml 文件在 roomservice.xml 之前加载,因此当您尝试删除在 roomservice.xml 中定义的项目时,它实际上并不存在。将您的文件重命名为按照 roomservice.xml 排序的名称。

于 2015-02-08T13:10:03.403 回答