git_commands 3.3.7 → 3.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +15 -1
- data/lib/git_commands/cli.rb +9 -1
- data/lib/git_commands/computer.rb +9 -7
- data/lib/git_commands/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c4e5ee0c7fb792943323a8df9f026e46ed043c2e
|
4
|
+
data.tar.gz: a1d6e9c1709de3a742c9c20aa22cfbd6bdc86290
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 725df66a77dd900e4f2c2aa5543c1e25ffc24d62cc332bc9e8fb7d7d29123f0eac821a57b8912d56c039eebcc1135f3ae1187531cddcfeb10c8f204e87854d53
|
7
|
+
data.tar.gz: 2b3162474ae63758828d6c1e9dc071c813a92565200e7a69d91c4808507718f11b62a05ab6598da26035e7c4fc95c3c6db38e6724f2d2c5ffda8b9a899836042
|
data/README.md
CHANGED
@@ -51,6 +51,7 @@ rebase --help
|
|
51
51
|
Usage: rebase --repo=/Users/Elvis/greatest_hits --branches=feature/love_me_tender,fetaure/teddybear
|
52
52
|
-r, --repo=REPO The path to the existing GIT repository
|
53
53
|
-b, --branches=BRANCHES Specify branches as: 1. a comma-separated list of names 2. the path to a file containing names on each line 3. via pattern matching
|
54
|
+
-t, --target=TARGET Specify the target branch, default to master
|
54
55
|
-h, --help Prints this help
|
55
56
|
```
|
56
57
|
|
@@ -147,7 +148,7 @@ Successfully loaded 1 branch:
|
|
147
148
|
Here are the available GIT commands:
|
148
149
|
|
149
150
|
#### Rebase
|
150
|
-
This command is useful in case you have several branches to rebase with _origin/master_ frequently.
|
151
|
+
This command is useful in case you have several branches to rebase with _origin/master_ (or another specified target) frequently.
|
151
152
|
A confirmation is asked to before rebasing.
|
152
153
|
|
153
154
|
```
|
@@ -155,6 +156,19 @@ rebase --repo=/Users/Elvis/greatest_hits --branches=feature/love_me_tender,featu
|
|
155
156
|
...
|
156
157
|
```
|
157
158
|
|
159
|
+
##### Target branch
|
160
|
+
The rebasing runs considering master branch as the target one.
|
161
|
+
In case you need to rebase against a different target branch you can specify it:
|
162
|
+
```
|
163
|
+
rebase --repo=/Users/Elvis/greatest_hits --target=rc/release_to_graceland --branches=feature/love_me_tender
|
164
|
+
|
165
|
+
Loading branches file...
|
166
|
+
Successfully loaded 1 branch:
|
167
|
+
01. feature/love_me_tender
|
168
|
+
|
169
|
+
Proceed rebasing these branches with rc/release_to_graceland (Y/N)?
|
170
|
+
```
|
171
|
+
|
158
172
|
#### Remove
|
159
173
|
This command remove the specified branches locally and remotely.
|
160
174
|
A confirmation is asked before removal.
|
data/lib/git_commands/cli.rb
CHANGED
@@ -20,13 +20,17 @@ module GitCommands
|
|
20
20
|
|
21
21
|
def call
|
22
22
|
parser.parse!(@args)
|
23
|
-
computer = @computer_klass.new(repo: @repo, branches: @branches)
|
23
|
+
computer = @computer_klass.new(repo: @repo, branches: @branches, target: target)
|
24
24
|
computer.send(@command_name)
|
25
25
|
rescue Repository::PathError, Computer::GitError, AbortError, Repository::InvalidError => e
|
26
26
|
error(e.message)
|
27
27
|
exit
|
28
28
|
end
|
29
29
|
|
30
|
+
private def target
|
31
|
+
@target || Branch::MASTER
|
32
|
+
end
|
33
|
+
|
30
34
|
private def check_command_name(name)
|
31
35
|
return name if VALID_COMMANDS.include?(name)
|
32
36
|
fail UnknownCommandError, "#{name} is not a supported command"
|
@@ -44,6 +48,10 @@ module GitCommands
|
|
44
48
|
@branches = branches
|
45
49
|
end
|
46
50
|
|
51
|
+
opts.on("-tTARGET", "--target=TARGET", "Specify the target branch, default to master") do |target|
|
52
|
+
@target = target
|
53
|
+
end
|
54
|
+
|
47
55
|
opts.on("-h", "--help", "Prints this help") do
|
48
56
|
@out.puts opts
|
49
57
|
exit
|
@@ -9,10 +9,12 @@ module GitCommands
|
|
9
9
|
class GitError < StandardError; end
|
10
10
|
|
11
11
|
attr_reader :out
|
12
|
+
attr_accessor :target
|
12
13
|
|
13
|
-
def initialize(repo:, branches:, repo_klass: Repository, branch_klass: Branch, out: STDOUT)
|
14
|
+
def initialize(repo:, branches:, target: Branch::MASTER, repo_klass: Repository, branch_klass: Branch, out: STDOUT)
|
14
15
|
@out = out
|
15
16
|
@repo = repo_klass.new(repo)
|
17
|
+
@target = target
|
16
18
|
Dir.chdir(@repo) do
|
17
19
|
@branches = branch_klass.factory(branches)
|
18
20
|
@timestamp = Time.new.strftime("%Y-%m-%d")
|
@@ -33,7 +35,7 @@ module GitCommands
|
|
33
35
|
end
|
34
36
|
|
35
37
|
def rebase
|
36
|
-
confirm("Proceed rebasing these branches with
|
38
|
+
confirm("Proceed rebasing these branches with #{@target}") do
|
37
39
|
enter_repo do
|
38
40
|
@branches.each do |branch|
|
39
41
|
warning("Rebasing branch: #{branch}")
|
@@ -76,12 +78,12 @@ module GitCommands
|
|
76
78
|
@out.puts @branches.each_with_index.map { |branch, i| "#{(i+1).to_s.rjust(2, "0")}. #{branch}" } + [""]
|
77
79
|
end
|
78
80
|
|
79
|
-
private def
|
80
|
-
`git checkout #{
|
81
|
+
private def align
|
82
|
+
`git checkout #{@target}`
|
81
83
|
`git pull`
|
82
84
|
end
|
83
85
|
|
84
|
-
private def rebase_with(branch = "#{Branch::ORIGIN}#{
|
86
|
+
private def rebase_with(branch = "#{Branch::ORIGIN}#{@target}")
|
85
87
|
`git rebase #{branch}`
|
86
88
|
return true unless @repo.locked?
|
87
89
|
@repo.unlock
|
@@ -90,13 +92,13 @@ module GitCommands
|
|
90
92
|
|
91
93
|
private def enter_repo
|
92
94
|
Dir.chdir(@repo) do
|
93
|
-
|
95
|
+
align
|
94
96
|
yield
|
95
97
|
end
|
96
98
|
end
|
97
99
|
|
98
100
|
private def remove_locals(branches = @branches)
|
99
|
-
`git checkout #{
|
101
|
+
`git checkout #{@target}`
|
100
102
|
branches.each do |branch|
|
101
103
|
`git branch -D #{branch}`
|
102
104
|
end
|
data/lib/git_commands/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git_commands
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- costajob
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -102,7 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
102
102
|
version: '0'
|
103
103
|
requirements: []
|
104
104
|
rubyforge_project:
|
105
|
-
rubygems_version: 2.
|
105
|
+
rubygems_version: 2.6.8
|
106
106
|
signing_key:
|
107
107
|
specification_version: 4
|
108
108
|
summary: Utility library to rebase and aggregate your project branches
|