Можно ли заменить файл из одного хранилища в другое с помощью инструмента Android Repo? - PullRequest
0 голосов
/ 07 мая 2018

Я использую инструмент репо для создания проекта Yocto, используются репозитории A, B, yocto ... и мне нужно заменить файл с A на B, структура - это нечто как это:

A/MyFile.sh

B/TheFile.sh

yocto/Some_dirs_and_files

Итак, я использую этот файл копирования следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <remote fetch="mygitrepo" name="origin"/>
  <default remote="origin"/>
  <project name="yocto" revision="myrevision"/>
  <project name="meta-openembedded" path="yocto/meta-openembedded" revision="myrevision"/>
  <project name="B" path="yocto/B" revision="myrevision"/>
  <project name="C" path="yocto/meta-swi-extras" revision="myrevision"/>
  <project name="poky" path="yocto/poky" revision="myrevision"/>
  <project name="A" path="yocto/custom-builds" revision="myrevision">
    <copyfile src="MyFile.sh" dest="yocto/B/TheFile.sh"/>
  </project>
</manifest>

Проблема в том, что copyfile не заменяет файл "TheFile.sh" на "MyFile.sh"

Есть ли способ сделать это без дополнительного скрипта?

Примечание: если я изменю имя dest с

dest="yocto/B/TheFile.sh

до

dest="yocto/B/AnotherFile.sh

файл успешно скопирован, но если я задаю имя файла, который я хочу заменить, это не так.

1 Ответ

0 голосов
/ 08 мая 2018

Похоже, что репозиторий теперь разрешает перезаписывать файл на <copyfile src=.. dest ...>

Из репо Исходный код project.py

 class _CopyFile(object):
 def __init__(self, src, dest, abssrc, absdest):
    self.src = src
    self.dest = dest
    self.abs_src = abssrc
    self.abs_dest = absdest
  def _Copy(self):
    src = self.abs_src
    dest = self.abs_dest
    # copy file if it does not exist or is out of date
    if not os.path.exists(dest) or not filecmp.cmp(src, dest): ※

※ строка показывает условие, чтобы сделать копию файла.

...