Class: SubversionDownloadStrategy
- Inherits:
-
VCSDownloadStrategy
- Object
- AbstractDownloadStrategy
- VCSDownloadStrategy
- SubversionDownloadStrategy
- Defined in:
- download_strategy.rb
Overview
Strategy for downloading a Subversion repository.
Constant Summary
Constants inherited from VCSDownloadStrategy
VCSDownloadStrategy::REF_TYPES
Instance Attribute Summary
Attributes inherited from AbstractDownloadStrategy
#cache, #cached_location, #url
Instance Method Summary collapse
-
#fetch(timeout: nil) ⇒ Object
Download and cache the repository at AbstractDownloadStrategy#cached_location.
-
#initialize(url, name, version, **meta) ⇒ SubversionDownloadStrategy
constructor
A new instance of SubversionDownloadStrategy.
-
#last_commit ⇒ String
Return last commit's unique identifier for the repository.
-
#source_modified_time ⇒ Time
Returns the most recent modified time for all files in the current working directory after stage.
Methods inherited from VCSDownloadStrategy
#commit_outdated?, #fetch_last_commit, #head?
Methods inherited from AbstractDownloadStrategy
#basename, #clear_cache, #quiet!, #quiet?, #stage
Methods included from SystemCommand::Mixin
#system_command, #system_command!
Methods included from Context
current, current=, #debug?, #quiet?, #verbose?, #with_context
Constructor Details
#initialize(url, name, version, **meta) ⇒ SubversionDownloadStrategy
Returns a new instance of SubversionDownloadStrategy.
725 726 727 728 |
# File 'download_strategy.rb', line 725 def initialize(url, name, version, **) super @url = @url.sub("svn+http://", "") end |
Instance Method Details
#fetch(timeout: nil) ⇒ Object
Download and cache the repository at AbstractDownloadStrategy#cached_location.
733 734 735 736 737 738 |
# File 'download_strategy.rb', line 733 def fetch(timeout: nil) if @url.chomp("/") != repo_url || !silent_command("svn", args: ["switch", @url, cached_location]).success? clear_cache end super end |
#last_commit ⇒ String
Return last commit's unique identifier for the repository.
761 762 763 764 |
# File 'download_strategy.rb', line 761 def last_commit out, = silent_command("svn", args: ["info", "--show-item", "revision"], chdir: cached_location) out.strip end |
#source_modified_time ⇒ Time
Returns the most recent modified time for all files in the current working directory after stage.
744 745 746 747 748 749 750 751 752 753 754 755 |
# File 'download_strategy.rb', line 744 def source_modified_time require "utils/svn" time = if Version.new(T.must(Utils::Svn.version)) >= Version.new("1.9") out, = silent_command("svn", args: ["info", "--show-item", "last-changed-date"], chdir: cached_location) out else out, = silent_command("svn", args: ["info"], chdir: cached_location) out[/^Last Changed Date: (.+)$/, 1] end Time.parse time end |