git-pcheckout 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -13
- data/.rspec +2 -0
- data/README.md +13 -6
- data/Rakefile +3 -0
- data/bin/git-pcheckout +2 -2
- data/git-pcheckout.gemspec.lock +7 -0
- data/lib/{handle-branch.rb → git-pcheckout/handle_branch.rb} +1 -5
- data/lib/git-pcheckout/version.rb +1 -1
- data/{git-pcheckout.rb → lib/git-pcheckout.rb} +48 -20
- data/spec/git-pcheckout_spec.rb +51 -43
- data/spec/lib/handle_branch_spec.rb +25 -0
- data/spec/spec_helper.rb +11 -0
- metadata +19 -15
- data/spec/lib/handle-branch_spec.rb +0 -40
checksums.yaml
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
|
|
5
|
-
data.tar.gz: !binary |-
|
|
6
|
-
OTA2NTE0NmRmMTVmNTU0NGNjNTkyMjIwZWQ4OTEwMTZjMWUwYTI4Yw==
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 19ebb7be03ae20a913488690729afd281e5989a4
|
|
4
|
+
data.tar.gz: 5df1feabe877b12315955ce0b0b8d480ad49cb9c
|
|
7
5
|
SHA512:
|
|
8
|
-
metadata.gz:
|
|
9
|
-
|
|
10
|
-
NzNlZTE0NjZjY2ZiNDJkNjQzY2RkNzA2ZGJhYWUzZmI4NjQ4M2Q5ZmQ5ZDQ5
|
|
11
|
-
YTBkZTE2Njk4Njg2ZmRkNjVhMjgwNjJmNWY1NjYyNGQwODM0ZWM=
|
|
12
|
-
data.tar.gz: !binary |-
|
|
13
|
-
NDE1YTI4ZjQyYjBhYmMxMDkyZjBjM2JkOGZmYTZhNmJhZTQzMjM2N2MyZTJh
|
|
14
|
-
YjkzYThlOGNkNTRkYTE1N2ZmMWViN2Q3ZWYzNjk2NjkwZThjMzllNzllMmVl
|
|
15
|
-
YzBiZTRhM2ZkOTY5ZjRkZTE3MmI3YjhiM2E4YzAzYzVlZDYxOWQ=
|
|
6
|
+
metadata.gz: e3064c7df5e48508363f0105cc20aec8faae792a18df9ebc2b70e7ea6dafe73f271bd67bf3ae98b807a7bc2adcb4f184fa45bcd18e89d3083b803a354025db16
|
|
7
|
+
data.tar.gz: 3f32fbaa2c8a1ac25bff5857a09238acce97de293e008b0e1c712e29e6d7a0a9c138b92278e9f5251d392b05db6b98cee20bbd1451e73919e9b6733c11d4ecec
|
data/.rspec
ADDED
data/README.md
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
# git-pcheckout
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
[][travis]
|
|
4
|
+
[][gem]
|
|
5
|
+
[][codeclimate]
|
|
6
|
+
|
|
7
|
+
Git command to evenly checkout local/remote branches and source/fork
|
|
8
|
+
pull requests by URL (with Hub)
|
|
5
9
|
|
|
6
10
|
## Installation
|
|
7
11
|
|
|
@@ -17,20 +21,20 @@ pull pequests by URL (with Hub)
|
|
|
17
21
|
|
|
18
22
|
## What it does
|
|
19
23
|
|
|
20
|
-
If specified _branch-name_ exists locally:
|
|
24
|
+
1. If specified _branch-name_ exists locally:
|
|
21
25
|
|
|
22
26
|
$ git checkout branch-name
|
|
23
27
|
$ git pull origin branch-name
|
|
24
28
|
|
|
25
|
-
If specified _branch-name_ not exist locally:
|
|
29
|
+
2. If specified _branch-name_ not exist locally:
|
|
26
30
|
|
|
27
31
|
$ git fetch
|
|
28
32
|
$ git checkout --track origin/branch-name
|
|
29
33
|
|
|
30
|
-
If pull request URL specified(from fork):
|
|
34
|
+
3. If pull request URL specified(from fork):
|
|
31
35
|
- pulls fork branch with Hub
|
|
32
36
|
|
|
33
|
-
If pull request URL specified(from source repo):
|
|
37
|
+
4. If pull request URL specified(from source repo):
|
|
34
38
|
- treats it as if just a _branch_name_ was specified (goto 1)
|
|
35
39
|
|
|
36
40
|
## Contributing
|
|
@@ -42,3 +46,6 @@ If pull request URL specified(from source repo):
|
|
|
42
46
|
5. Create new Pull Request
|
|
43
47
|
|
|
44
48
|
[1]: http://hub.github.com/
|
|
49
|
+
[travis]: https://travis-ci.org/vrybas/git-pcheckout
|
|
50
|
+
[gem]: http://rubygems.org/gems/git-pcheckout
|
|
51
|
+
[codeclimate]: https://codeclimate.com/github/vrybas/git-pcheckout
|
data/Rakefile
CHANGED
data/bin/git-pcheckout
CHANGED
|
@@ -16,6 +16,6 @@
|
|
|
16
16
|
# If pull request URL specified(from source repo):
|
|
17
17
|
# - treats it as if just a branch name was specified (goto 1)
|
|
18
18
|
|
|
19
|
-
require_relative '../git-pcheckout.rb'
|
|
19
|
+
require_relative '../lib/git-pcheckout.rb'
|
|
20
20
|
|
|
21
|
-
GitPcheckout.(ARGV[0])
|
|
21
|
+
GitPcheckout::Base.new(ARGV[0]).perform
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
class HandleBranch < Struct.new(:branch)
|
|
2
2
|
|
|
3
|
-
def self.call(*args)
|
|
4
|
-
new(*args).call
|
|
5
|
-
end
|
|
6
|
-
|
|
7
3
|
def initialize(branch)
|
|
8
4
|
self.branch = branch
|
|
9
5
|
end
|
|
10
6
|
|
|
11
|
-
def
|
|
7
|
+
def perform
|
|
12
8
|
if branch_exists_locally?
|
|
13
9
|
checkout_local_branch && pull_from_origin
|
|
14
10
|
else
|
|
@@ -1,32 +1,35 @@
|
|
|
1
|
-
require_relative '
|
|
1
|
+
require_relative 'git-pcheckout/handle_branch'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
module GitPcheckout
|
|
4
|
+
class Base < Struct.new(:arg)
|
|
5
|
+
def initialize(arg)
|
|
6
|
+
self.arg = arg
|
|
7
|
+
end
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
end
|
|
9
|
+
def perform
|
|
10
|
+
validate_current_branch_state
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
if pull_request_url?(arg)
|
|
13
|
+
handle_pull_request_url(arg)
|
|
14
|
+
else
|
|
15
|
+
handle_branch_name(arg)
|
|
16
|
+
end
|
|
18
17
|
end
|
|
19
|
-
end
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
private
|
|
20
|
+
|
|
21
|
+
def validate_current_branch_state
|
|
22
|
+
if dirty_branch?
|
|
23
|
+
puts errors[:dirty_branch]
|
|
24
|
+
exit(1)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
22
27
|
|
|
23
28
|
def pull_request_url?(arg)
|
|
24
29
|
arg.match /https:\/\/github.com\//
|
|
25
30
|
end
|
|
26
31
|
|
|
27
32
|
def handle_pull_request_url(url)
|
|
28
|
-
puts "handling Pull Request URL..."
|
|
29
|
-
|
|
30
33
|
branch_name_with_prefix = checkout_pull_request_branch(url)
|
|
31
34
|
|
|
32
35
|
if source_repository_branch?(branch_name_with_prefix)
|
|
@@ -35,6 +38,7 @@ class GitPcheckout < Struct.new(:arg)
|
|
|
35
38
|
end
|
|
36
39
|
|
|
37
40
|
def checkout_pull_request_branch(url)
|
|
41
|
+
puts "handling Pull Request URL..."
|
|
38
42
|
out = `hub checkout #{url}`
|
|
39
43
|
return false if out == ''
|
|
40
44
|
out.scan(/Branch (.+) set/).flatten.first
|
|
@@ -57,7 +61,8 @@ class GitPcheckout < Struct.new(:arg)
|
|
|
57
61
|
end
|
|
58
62
|
|
|
59
63
|
def handle_source_branch(branch_name_with_prefix)
|
|
60
|
-
|
|
64
|
+
branch_name = substitute_prefix(branch_name_with_prefix)
|
|
65
|
+
handle_branch_name(branch_name)
|
|
61
66
|
delete_branch(branch_name_with_prefix)
|
|
62
67
|
end
|
|
63
68
|
|
|
@@ -66,6 +71,29 @@ class GitPcheckout < Struct.new(:arg)
|
|
|
66
71
|
end
|
|
67
72
|
|
|
68
73
|
def handle_branch_name(branch)
|
|
69
|
-
HandleBranch.(branch)
|
|
74
|
+
HandleBranch.new(branch).perform
|
|
70
75
|
end
|
|
76
|
+
|
|
77
|
+
def dirty_branch?
|
|
78
|
+
status_lines = get_status_lines
|
|
79
|
+
return false if status_lines.empty?
|
|
80
|
+
|
|
81
|
+
if modified_deleted_renamed?(status_lines)
|
|
82
|
+
puts status_lines
|
|
83
|
+
true
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def get_status_lines
|
|
88
|
+
`git status -s`.split("\n").map(&:lstrip)
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def modified_deleted_renamed?(lines)
|
|
92
|
+
lines.any? { |line| line.match(/(^M|^D|^R)\s/) }
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def errors
|
|
96
|
+
{ dirty_branch: "Please, commit your changes or stash them before you can switch branches"}
|
|
97
|
+
end
|
|
98
|
+
end
|
|
71
99
|
end
|
data/spec/git-pcheckout_spec.rb
CHANGED
|
@@ -1,60 +1,68 @@
|
|
|
1
|
-
|
|
1
|
+
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe GitPcheckout do
|
|
3
|
+
describe GitPcheckout::Base do
|
|
4
|
+
before do
|
|
5
|
+
allow_any_instance_of(described_class).to receive(:system).and_return(true)
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
expect_any_instance_of(described_class).to receive("call").and_return(true)
|
|
8
|
-
instance = described_class.("foo")
|
|
9
|
-
expect(instance).to be
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
it "should send #call() to created instance" do
|
|
13
|
-
expect_any_instance_of(described_class).to receive("call")
|
|
14
|
-
described_class.("foo")
|
|
15
|
-
end
|
|
7
|
+
handle_branch = double(:handle_branch, perform: 'handle_branch')
|
|
8
|
+
HandleBranch.stub(:new).and_return(handle_branch)
|
|
16
9
|
end
|
|
17
10
|
|
|
18
|
-
context
|
|
19
|
-
it
|
|
20
|
-
instance = described_class.new(
|
|
21
|
-
|
|
11
|
+
context '#perofrm' do
|
|
12
|
+
it 'doesn\'t run if current branch is dirty' do
|
|
13
|
+
instance = described_class.new('foo')
|
|
14
|
+
instance.stub(:dirty_branch?).and_return(true)
|
|
15
|
+
expect { instance.perform }.to raise_error(SystemExit)
|
|
22
16
|
end
|
|
23
|
-
end
|
|
24
17
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
18
|
+
context 'plain branch name' do
|
|
19
|
+
it 'handles plain branch name' do
|
|
20
|
+
instance = described_class.new('foo')
|
|
21
|
+
instance.stub(:dirty_branch?).and_return(false)
|
|
22
|
+
|
|
23
|
+
expect(instance.perform).to eql('handle_branch')
|
|
31
24
|
end
|
|
32
25
|
end
|
|
33
26
|
|
|
34
|
-
context
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
27
|
+
context 'pull request URL' do
|
|
28
|
+
let(:origin_url) { "git@github.com/#{user_name}/repo-name.git" }
|
|
29
|
+
let(:pull_request_url) { "https://github.com/#{user_name}/repo-name/pull/18" }
|
|
30
|
+
let(:branch_name) { "#{user_name}-branch-name" }
|
|
31
|
+
let(:instance) { described_class.new(pull_request_url) }
|
|
32
|
+
|
|
33
|
+
before do
|
|
34
|
+
instance.stub(:dirty_branch?).and_return(false)
|
|
35
|
+
instance.stub(:origin_url).and_return(origin_url)
|
|
36
|
+
instance.stub(:checkout_pull_request_branch).and_return(branch_name)
|
|
38
37
|
end
|
|
39
38
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
39
|
+
context 'when pull request is from the same repo' do
|
|
40
|
+
let(:user_name) { 'user' }
|
|
41
|
+
|
|
42
|
+
it 'gets plain branch name out of pull request' do
|
|
43
|
+
expect(instance).to receive(:substitute_prefix)
|
|
44
|
+
instance.perform
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it 'handles plain branch name' do
|
|
48
|
+
expect(instance).to receive(:handle_branch_name)
|
|
49
|
+
instance.perform
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it 'deletes temporary branch' do
|
|
53
|
+
expect(instance).to receive(:delete_branch).with(branch_name)
|
|
54
|
+
instance.perform
|
|
55
|
+
end
|
|
46
56
|
end
|
|
47
57
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
described_class.(url)
|
|
58
|
+
context 'when pull request is from the fork' do
|
|
59
|
+
let(:user_name) { 'forked-user' }
|
|
60
|
+
|
|
61
|
+
it 'creates branch locally with fork prefix' do
|
|
62
|
+
expect(instance).to receive(:checkout_pull_request_branch)
|
|
63
|
+
instance.perform
|
|
64
|
+
end
|
|
56
65
|
end
|
|
57
66
|
end
|
|
58
|
-
|
|
59
67
|
end
|
|
60
68
|
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe HandleBranch do
|
|
4
|
+
let(:handle_branch) { described_class.new('foo') }
|
|
5
|
+
|
|
6
|
+
context '#perform' do
|
|
7
|
+
it 'checkouts and pulls if branch exists' do
|
|
8
|
+
handle_branch.stub('branch_exists_locally?').and_return(true)
|
|
9
|
+
|
|
10
|
+
expect(handle_branch).to receive('checkout_local_branch').and_return(true)
|
|
11
|
+
expect(handle_branch).to receive('pull_from_origin').and_return(true)
|
|
12
|
+
|
|
13
|
+
handle_branch.perform
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it 'fetches and checkouts with track if branch not exist' do
|
|
17
|
+
handle_branch.stub('branch_exists_locally?').and_return(false)
|
|
18
|
+
|
|
19
|
+
expect(handle_branch).to receive('fetch_from_origin').and_return(true)
|
|
20
|
+
expect(handle_branch).to receive('checkout_and_track_branch').and_return(true)
|
|
21
|
+
|
|
22
|
+
handle_branch.perform
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
require 'bundler/setup'
|
|
3
|
+
|
|
4
|
+
Bundler.require
|
|
5
|
+
|
|
6
|
+
RSpec.configure do |config|
|
|
7
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
|
8
|
+
config.run_all_when_everything_filtered = true
|
|
9
|
+
config.filter_run :focus
|
|
10
|
+
config.order = 'random'
|
|
11
|
+
end
|
metadata
CHANGED
|
@@ -1,55 +1,55 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: git-pcheckout
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vladimir Rybas
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-
|
|
11
|
+
date: 2014-06-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - ~>
|
|
17
|
+
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
19
|
version: '1.5'
|
|
20
20
|
type: :development
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- - ~>
|
|
24
|
+
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '1.5'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: rake
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
|
-
- -
|
|
31
|
+
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
33
|
version: '0'
|
|
34
34
|
type: :development
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
|
-
- -
|
|
38
|
+
- - ">="
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '0'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: rspec
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
|
-
- -
|
|
45
|
+
- - ">="
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
47
|
version: '0'
|
|
48
48
|
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
|
-
- -
|
|
52
|
+
- - ">="
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '0'
|
|
55
55
|
description: Git command to evenly checkout local/remote branches and source/fork
|
|
@@ -61,7 +61,8 @@ executables:
|
|
|
61
61
|
extensions: []
|
|
62
62
|
extra_rdoc_files: []
|
|
63
63
|
files:
|
|
64
|
-
- .gitignore
|
|
64
|
+
- ".gitignore"
|
|
65
|
+
- ".rspec"
|
|
65
66
|
- Gemfile
|
|
66
67
|
- Guardfile
|
|
67
68
|
- LICENSE.txt
|
|
@@ -69,11 +70,13 @@ files:
|
|
|
69
70
|
- Rakefile
|
|
70
71
|
- bin/git-pcheckout
|
|
71
72
|
- git-pcheckout.gemspec
|
|
72
|
-
- git-pcheckout.
|
|
73
|
+
- git-pcheckout.gemspec.lock
|
|
74
|
+
- lib/git-pcheckout.rb
|
|
75
|
+
- lib/git-pcheckout/handle_branch.rb
|
|
73
76
|
- lib/git-pcheckout/version.rb
|
|
74
|
-
- lib/handle-branch.rb
|
|
75
77
|
- spec/git-pcheckout_spec.rb
|
|
76
|
-
- spec/lib/
|
|
78
|
+
- spec/lib/handle_branch_spec.rb
|
|
79
|
+
- spec/spec_helper.rb
|
|
77
80
|
- tmp/.keep
|
|
78
81
|
homepage: https://github.com/vrybas/git-pcheckout
|
|
79
82
|
licenses:
|
|
@@ -85,12 +88,12 @@ require_paths:
|
|
|
85
88
|
- lib
|
|
86
89
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
87
90
|
requirements:
|
|
88
|
-
- -
|
|
91
|
+
- - ">="
|
|
89
92
|
- !ruby/object:Gem::Version
|
|
90
93
|
version: '0'
|
|
91
94
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
92
95
|
requirements:
|
|
93
|
-
- -
|
|
96
|
+
- - ">="
|
|
94
97
|
- !ruby/object:Gem::Version
|
|
95
98
|
version: '0'
|
|
96
99
|
requirements: []
|
|
@@ -102,4 +105,5 @@ summary: Git command to evenly checkout local/remote branches and source/fork pu
|
|
|
102
105
|
requests by URL (with Hub)
|
|
103
106
|
test_files:
|
|
104
107
|
- spec/git-pcheckout_spec.rb
|
|
105
|
-
- spec/lib/
|
|
108
|
+
- spec/lib/handle_branch_spec.rb
|
|
109
|
+
- spec/spec_helper.rb
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
require_relative '../../lib/handle-branch.rb'
|
|
2
|
-
|
|
3
|
-
describe HandleBranch do
|
|
4
|
-
|
|
5
|
-
context ".call" do
|
|
6
|
-
it "should delegate to #new() with all params" do
|
|
7
|
-
expect_any_instance_of(HandleBranch).to receive("call").and_return(true)
|
|
8
|
-
instance = HandleBranch.("foo")
|
|
9
|
-
expect(instance).to be
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
it "should send #call() to created instance" do
|
|
13
|
-
expect_any_instance_of(HandleBranch).to receive("call")
|
|
14
|
-
HandleBranch.("foo")
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
context "#initialize" do
|
|
19
|
-
it "should set @branch" do
|
|
20
|
-
instance = HandleBranch.new("foo")
|
|
21
|
-
expect(instance.branch).to eql("foo")
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
context "#call" do
|
|
26
|
-
it "should checkout and pull if branch exists" do
|
|
27
|
-
expect_any_instance_of(HandleBranch).to receive("branch_exists_locally?").and_return(true)
|
|
28
|
-
expect_any_instance_of(HandleBranch).to receive("checkout_local_branch").and_return(true)
|
|
29
|
-
expect_any_instance_of(HandleBranch).to receive("pull_from_origin").and_return(true)
|
|
30
|
-
HandleBranch.("foo")
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
it "should fetch and checkout with track if branch not exist" do
|
|
34
|
-
expect_any_instance_of(HandleBranch).to receive("branch_exists_locally?").and_return(false)
|
|
35
|
-
expect_any_instance_of(HandleBranch).to receive("fetch_from_origin").and_return(true)
|
|
36
|
-
expect_any_instance_of(HandleBranch).to receive("checkout_and_track_branch").and_return(true)
|
|
37
|
-
HandleBranch.("foo")
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|