GitPython: удалить несколько тегов локально и удаленно - PullRequest
1 голос
/ 22 октября 2019

Я использую GitPython для удаления нескольких тегов. Я делаю это с помощью этого кода:

def delete_tags(self, tags):
    remote = self.__repo.remote(name='origin')

     for tag in tags:
        self.__repo.git.tag('-d', tag)  # remove locally
        remote.push(refspec=(':%s' % (tag)))  # remove from remote

У меня проблема с производительностью этого кода. Команда

remote.push(refspec=(':%s' % (tag)))

работает очень медленно. Удаление каждого тега на пульте занимает несколько секунд. У меня есть более 200 тегов, которые отнимают у меня много времени.

Можно ли удалить все выбранные теги (tags) одним нажатием?

1 Ответ

2 голосов
/ 22 октября 2019

Как прокомментировал Торек, сам git позволяет использовать несколько refspecs в команде push.

Тогда в ссылке на API GitPython 3.0 явно упоминается возможность множественных refspecs ( здесь )

(из секции «Fetch», на которую ссылается сама секция «Push» для этого параметра)

Fetch поддерживает несколько refspecs (как это делает базовый git-fetch) - поставкасписок, а не строка для 'refspec' будет использовать эту возможность.

...