Класс: GitDownloadStrategy
- Наследует:
- VCSDownloadStrategy
- Object
- AbstractDownloadStrategy
- VCSDownloadStrategy
- GitDownloadStrategy
- Определён в:
- download_strategy/git_download_strategy.rb
Обзор
Стратегия загрузки репозитория Git.
Прямые известные подклассы
Краткое описание констант свернуть
- MINIMUM_COMMIT_HASH_LENGTH =
7
Константы, унаследованные от VCSDownloadStrategy
VCSDownloadStrategy::REF_TYPES
Краткое описание атрибутов экземпляра
Атрибуты, унаследованные от VCSDownloadStrategy
Атрибуты, унаследованные от AbstractDownloadStrategy
Краткое описание методов экземпляра свернуть
- #initialize(url, name, version, **meta) ⇒ void конструктор закрытый
- #last_commit ⇒ String
Возвращает уникальный идентификатор последнего коммита репозитория, если он получен локально.
- #source_modified_time ⇒ Time
Возвращает время последнего изменения всех файлов в текущем рабочем каталоге после этапа подготовки.
- #source_revision ⇒ String? закрытый
Методы, унаследованные от VCSDownloadStrategy
#commit_outdated?, #fetch, #fetch_last_commit, #head?
Методы, унаследованные от AbstractDownloadStrategy
#basename, #cached_location, #clear_cache, #fetch, #fetched_size, #ohai, #quiet!, #quiet?, #stage, #total_size
Методы, включённые из Utils::Output::Mixin
#issue_reporting_message, #odebug, #odeprecated, #odie, #odisabled, #ofail, #oh1, #oh1_title, #ohai, #ohai_title, #onoe, #opoo, #opoo_outside_github_actions, #opoo_without_github_actions_annotation, #pretty_deprecated, #pretty_disabled, #pretty_duration, #pretty_install_status, #pretty_installed, #pretty_uninstalled, #pretty_upgradable, #pretty_warning
Методы, включённые из SystemCommand::Mixin
#system_command, #system_command!
Методы, включённые из Context
current, current=, #debug?, #quiet?, #verbose?, #with_context
Подробное описание конструкторов
#initialize(url, name, version, **meta) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # File 'download_strategy/git_download_strategy.rb', line 11 def initialize(url, name, version, **) # Needs to be before the call to `super`, as the VCSDownloadStrategy's # constructor calls `cache_tag` and sets the cache path. @only_path = [:only_path] if @only_path.present? # "Cone" mode of sparse checkout requires patterns to be directories @only_path = T.let("/#{@only_path}", String) unless @only_path.start_with?("/") @only_path = T.let("#{@only_path}/", String) unless @only_path.end_with?("/") end super @ref_type ||= T.let(:branch, T.nilable(Symbol)) @ref ||= T.let("master", T.untyped) end |
Подробное описание методов экземпляра
#last_commit ⇒ String
Возвращает уникальный идентификатор последнего коммита репозитория, если он получен локально.
46 47 48 49 50 | # File 'download_strategy/git_download_strategy.rb', line 46 def last_commit args = ["--git-dir", git_dir, "rev-parse", "--short=#{MINIMUM_COMMIT_HASH_LENGTH}", "HEAD"] @last_commit ||= system_command("git", args:, env: local_git_env, print_stderr: false).stdout.chomp.presence @last_commit || "" end |
#source_modified_time ⇒ Time
Возвращает самое позднее время изменения всех файлов в текущем рабочем каталоге после добавления в индекс.
31 32 33 34 35 36 37 | # File 'download_strategy/git_download_strategy.rb', line 31 def source_modified_time result = system_command("git", args: ["--git-dir", git_dir, "show", "-s", "--format=%cD"], env: local_git_env, print_stderr: false) raise "Failed to read the Git commit time:\n#{result.stderr}" unless result.success? Time.parse(result.stdout) end |
#source_revision ⇒ String?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
40 | # File 'download_strategy/git_download_strategy.rb', line 40 def source_revision = current_revision.presence |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/GitDownloadStrategy.html