Использование repo.Network.ListReferences предоставляет мне TargetIdentifier ссылки, но в случае аннотированного тега указывает на ObjectId тега. Как узнать CommitId?Как узнать идентификатор фиксации аннотированного тега на удаленном компьютере с помощью LibGit2Sharp?
ответ
Невозможно получить цель аннотированного тега, используя только repo.Network.ListReferences
.
Вы сначала должны получать те локально, либо:
- Извлечение всех тегов (только новые/обновленные из них будут восстановлены). См. Это test для некоторых рекомендаций.
- Выбор тех, которые вас интересуют, и использование перегрузки нижнего уровня
Fetch()
, которая принимает коллекцию refspecs и передаетnew[]{ "refs/tags/v0.1:refs/tags/v0.1", "refs/tags/v1.32:refs/tags/v1.32" }
, например. См. Это test для получения некоторых советов о получении пользовательских refspecs.
Как узнать CommitId?
После ссылки выбираются локально решить тег (например.
Tag myTag = repo.Tags["v1.32"];
).Когда тег аннотированный (то есть. Не легкий тег), то
myTag.IsAnnotated
свойство будет установлено наtrue
иmyTag.Annotation.Target
будет указывать наGitObject
указал на тэгом.
Если полученное GitObject является Commit
, доступ к его свойству Id
должен ответить на ваш вопрос.
Остерегайтесь того, что хотя это не часто встречающийся случай, тег может указывать на что-то еще, кроме Commit
. Например, Blob
или Tree
. Можно даже найти в дикой природе, прикованный аннотированные метки (в этом случае, вы должны будете рекурсивно разрешить Target
каждого , пока это не больше не .
FWIW, есть open up-for-grabs issue о обнажая дружественный способ, чтобы получить окончательные очищенные цели.
См TagFixture.cs тесты для более полного представления о манипуляции тегов с LibGit2Sharp.
- 1. Редактировать старые сообщения фиксации с помощью LibGit2Sharp
- 2. Как узнать описание службы, запущенной на удаленном компьютере в C#?
- 3. Как получить идентификатор сеанса сеанса на удаленном компьютере?
- 4. C# Как читать время фиксации с помощью libgit2Sharp
- 5. Libgit2Sharp: Как обновить символическую ссылку «HEAD» на удаленном репо?
- 6. OpenTextFile на удаленном компьютере
- 7. Retrive firstparentonly на хозяин с помощью libgit2sharp
- 8. Процесс удаления на удаленном компьютере
- 9. Git список фиксации текущей ветви с libgit2sharp
- 10. Запуск процесса на удаленном компьютере
- 11. git show-branch с помощью LibGit2Sharp
- 12. Выполнять макросценарий на удаленном компьютере
- 13. Восстановление дампа на удаленном компьютере
- 14. Как выполнить пакетный файл на удаленном компьютере с помощью psexec?
- 15. Как запустить командную строку на удаленном компьютере с помощью C#
- 16. Как установить сертификат на удаленном компьютере с помощью PowerShell?
- 17. Как убить процесс на удаленном компьютере с помощью wmi
- 18. Как контролировать kafka 0.10.0 на удаленном компьютере с помощью jmx?
- 19. Как выполнять команды на удаленном компьютере Windows с помощью Java
- 20. Как выполнить Powerpoint на удаленном компьютере с помощью psexec
- 21. Как удалить службу на удаленном компьютере с помощью powershell?
- 22. Как изменить файл на удаленном компьютере с помощью perl
- 23. Как выполнить скрипт python на удаленном компьютере с помощью psexec?
- 24. Как запустить эмулятор на удаленном компьютере с помощью командной строки
- 25. Команда запуска на удаленном компьютере
- 26. LibGit2Sharp получает все фиксации, начиная с {Hash}
- 27. Дубликат тега на удаленном
- 28. Код запуска на удаленном компьютере
- 29. Как выполнить скрипты RFT на удаленном компьютере
- 30. найти файлы на удаленном компьютере
Спасибо большого @nulltoken :) – SJM