PyGit2 - TreeBuilder.insert('имя',blobid,GIT_FILEMODE_BLOB) против index.add( 'путь / к / файлу')?
Я немного озадачен тем, как начать работу с PyGit2.
Когда я добавляю файлы (множественное число) во вновь созданный репозиторий, я должен добавить их в index.add('path/to/file')
или мне лучше создать TreeBuilder и использовать tb.insert( 'name',oid, GIT_FILEMODE_BLOB )
добавить новый контент?
Если во втором случае я поставлен в тупик относительно того, как мне создать объект дерева, необходимый для фиксации во вновь созданном репо?
Кто-нибудь?
2 ответа
Предполагая ваш pygit2.Repository
называется repo
, пытаться:
t_builder = repo.TreeBuilder()
Более удобная информация с help(pygit2.TreeBuilder)
из консоли Python.
Вы можете сделать оба пути.
Я нахожу index.add()
метод простой.
Вы можете получить все файлы, которые будут добавлены или удалены в индекс, используя Repository.status()
как словарь. Словарь содержит имя файла в качестве ключа и статус файла в качестве значения. В зависимости от значений состояния удаленные файлы необходимо будет удалить из индекса с помощью index.remove(filename)
,
Запишите этот индекс в дерево в памяти, используя index.write_tree()
который вернет идентификатор дерева для использования в Repository.commit()
, Однако для сохранения изменений на диске index.write()
тоже.