Module: Dply::Git
- Extended by:
- Helper
- Defined in:
- lib/dply/git.rb
Class Method Summary
collapse
Methods included from Helper
cmd, error, git, logger, stringify_values!, symlink
Class Method Details
.checkout(branch) ⇒ Object
17
18
19
20
|
# File 'lib/dply/git.rb', line 17
def self.checkout(branch)
current_branch = `git rev-parse --abbrev-ref HEAD `.chomp.to_sym
cmd "git checkout #{branch}" if branch != current_branch
end
|
.clean ⇒ Object
31
32
33
34
|
# File 'lib/dply/git.rb', line 31
def self.clean
cmd "git reset --hard HEAD"
cmd "git clean -dxf "
end
|
.clone(repo, dir, mirror: nil) ⇒ Object
22
23
24
25
26
27
28
29
|
# File 'lib/dply/git.rb', line 22
def self.clone(repo, dir, mirror: nil)
if mirror
cmd "git clone #{mirror} #{dir}"
Dir.chdir(dir) { cmd "git remote set-url origin #{repo}" }
else
cmd "git clone #{repo} #{dir}"
end
end
|
.commit_id ⇒ Object
52
53
54
55
56
|
# File 'lib/dply/git.rb', line 52
def self.commit_id
commit_id = cmd "git rev-parse HEAD", return_output: true, display: false
logger.debug commit_id.chomp
commit_id.chomp
end
|
.get_remote_url ⇒ Object
46
47
48
49
50
|
# File 'lib/dply/git.rb', line 46
def self.get_remote_url
remote_url = cmd "git config --get remote.origin.url", return_output: true, display: false
logger.debug remote_url.chomp
remote_url.chomp
end
|
.get_tracking_branch(branch) ⇒ Object
36
37
38
39
40
41
42
43
44
|
# File 'lib/dply/git.rb', line 36
def self.get_tracking_branch(branch)
command = "git for-each-ref --format='%(upstream:short)' refs/heads/#{branch} --count=1"
tracking_branch = `#{command}`
if tracking_branch =~ /[a-zA-Z0-9_]/
return tracking_branch.chomp!
else
return nil
end
end
|
.pull(branch) ⇒ Object
7
8
9
10
11
12
13
14
15
|
# File 'lib/dply/git.rb', line 7
def self.pull(branch)
cmd "git fetch"
checkout(branch)
if tracking_branch = get_tracking_branch(branch)
cmd "git merge #{tracking_branch}"
else
cmd "git pull origin #{branch}"
end
end
|