Я пытаюсь удалить массив каталогов в репозитории git и сделать 1 коммит для каждого удаленного каталога. Я использую Rugged и Gitlab_git (который является более или менее просто оболочкой Rugged), и до сих пор мне удавалось делать все, что мне нужно, кроме фактического удаления и фиксации.
Я не вижу ничего в Rugged Readme, объясняющего, как удалить все дерево/каталог. Я попытался использовать их пример фиксации для большого двоичного объекта и заменить один файл каталогом, но это не сработало.
Я также попытался отредактировать код, который у них был для построителя дерева, но он добавил коммит в мою историю, который показывал, что каждый файл, когда-либо добавленный в репо, был добавлен, а затем оставил промежуточный этап, показывающий то же самое. Ничего не было удалено.
oid = repo.write("Removing folder", :blob)
builder = Rugged::Tree::Builder.new(repo)
builder << { :type => :blob, :name => "_delete", :oid => oid, :filemode => 0100644 }
options = {}
options[:tree] = builder.write
options[:author] = { :email => "[email protected]", :name => 'Test Author', :time => Time.now }
options[:committer] = { :email => "[email protected]", :name => 'Test Author', :time => Time.now }
options[:message] ||= "Making a commit via Rugged!"
options[:parents] = repo.empty? ? [] : [ repo.head.target ].compact
options[:update_ref] = 'HEAD'
Rugged::Commit.create(repo, options)
Какие-либо предложения? Я все еще немного не понимаю внутренностей git, так что, возможно, это моя проблема.