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() тоже.

Другие вопросы по тегам