Class: R10K::Git::ShellGit::WorkingRepository
- Inherits:
-
BaseRepository
- Object
- BaseRepository
- R10K::Git::ShellGit::WorkingRepository
- Defined in:
- lib/r10k/git/shellgit/working_repository.rb
Overview
Manage a non-bare Git repository
Direct Known Subclasses
Constant Summary
Constants included from Logging
Instance Attribute Summary collapse
-
#path ⇒ Object
readonly
Returns the value of attribute path.
Instance Method Summary collapse
- #alternates ⇒ Object
-
#checkout(ref) ⇒ Object
Check out the given Git ref.
-
#clone(remote, opts = {}) ⇒ void
Clone this git repository.
- #exist? ⇒ Boolean
- #fetch ⇒ Object
-
#git_dir ⇒ Pathname
The path to the Git directory inside of this repository.
-
#head ⇒ String
The currently checked out ref.
-
#initialize(basedir, dirname) ⇒ WorkingRepository
constructor
A new instance of WorkingRepository.
-
#origin ⇒ String
The origin remote URL.
Methods inherited from BaseRepository
#branches, #ref_type, #resolve, #tags
Methods included from Logging
debug_formatter, default_formatter, default_outputter, #logger, #logger_name, parse_level
Constructor Details
#initialize(basedir, dirname) ⇒ WorkingRepository
Returns a new instance of WorkingRepository.
17 18 19 |
# File 'lib/r10k/git/shellgit/working_repository.rb', line 17 def initialize(basedir, dirname) @path = Pathname.new(File.join(basedir, dirname)) end |
Instance Attribute Details
#path ⇒ Object (readonly)
Returns the value of attribute path.
10 11 12 |
# File 'lib/r10k/git/shellgit/working_repository.rb', line 10 def path @path end |
Instance Method Details
#alternates ⇒ Object
62 63 64 |
# File 'lib/r10k/git/shellgit/working_repository.rb', line 62 def alternates R10K::Git::Alternates.new(git_dir) end |
#checkout(ref) ⇒ Object
Check out the given Git ref
45 46 47 |
# File 'lib/r10k/git/shellgit/working_repository.rb', line 45 def checkout(ref) git ['checkout', ref], :path => @path.to_s end |
#clone(remote, opts = {}) ⇒ void
This method returns an undefined value.
Clone this git repository
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/r10k/git/shellgit/working_repository.rb', line 30 def clone(remote, opts = {}) argv = ['clone', remote, @path.to_s] if opts[:reference] argv += ['--reference', opts[:reference]] end git argv if opts[:ref] checkout(opts[:ref]) end end |
#exist? ⇒ Boolean
53 54 55 |
# File 'lib/r10k/git/shellgit/working_repository.rb', line 53 def exist? @path.exist? end |
#fetch ⇒ Object
49 50 51 |
# File 'lib/r10k/git/shellgit/working_repository.rb', line 49 def fetch git ['fetch'], :path => @path.to_s end |
#git_dir ⇒ Pathname
Returns The path to the Git directory inside of this repository.
13 14 15 |
# File 'lib/r10k/git/shellgit/working_repository.rb', line 13 def git_dir @path + '.git' end |
#head ⇒ String
Returns The currently checked out ref.
58 59 60 |
# File 'lib/r10k/git/shellgit/working_repository.rb', line 58 def head resolve('HEAD') end |
#origin ⇒ String
Returns The origin remote URL.
67 68 69 70 71 72 |
# File 'lib/r10k/git/shellgit/working_repository.rb', line 67 def origin result = git(['config', '--get', 'remote.origin.url'], :path => @path.to_s, :raise_on_fail => false) if result.success? result.stdout end end |