git-review 0.6.7 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/git-review.rb +25 -2
- metadata +3 -3
data/lib/git-review.rb
CHANGED
@@ -92,7 +92,7 @@ class GitReview
|
|
92
92
|
puts 'Merge command:'
|
93
93
|
puts " git #{exec_cmd}"
|
94
94
|
puts
|
95
|
-
git
|
95
|
+
git exec_cmd
|
96
96
|
end
|
97
97
|
|
98
98
|
# Close a specified request.
|
@@ -105,7 +105,7 @@ class GitReview
|
|
105
105
|
# Create a new request.
|
106
106
|
# TODO: Support creating requests to other repositories and branches (like the original repo, this has been forked from).
|
107
107
|
def create
|
108
|
-
|
108
|
+
prepare
|
109
109
|
# Gather information.
|
110
110
|
last_request_id = @pending_requests.collect{|req| req['number'] }.sort.last.to_i
|
111
111
|
title = "[Review] Request from '#{github_login}' @ '#{source}'"
|
@@ -196,6 +196,29 @@ class GitReview
|
|
196
196
|
end
|
197
197
|
end
|
198
198
|
|
199
|
+
# Get local and remote branches ready to create a new request.
|
200
|
+
def prepare
|
201
|
+
# People should work on local branches, but especially for single commit changes,
|
202
|
+
# more often than not, they don't. Therefore we create a branch for them,
|
203
|
+
# to be able to use code review the way it is intended.
|
204
|
+
if source_branch == target_branch
|
205
|
+
# Unless a branch name is already provided, ask for one.
|
206
|
+
if (branch_name = @args.shift).nil?
|
207
|
+
puts 'Please provide a name for the branch:'
|
208
|
+
branch_name = gets.chomp.gsub(/\W+/, '_').downcase
|
209
|
+
end
|
210
|
+
# Create the new branch (as a copy of the current one).
|
211
|
+
git "checkout -b --track review_#{Time.now.strftime("%y%m%d")}_#{branch_name}"
|
212
|
+
# Go back to master and get rid of pending commits (as these are now on the new branch).
|
213
|
+
local_branch = source_branch
|
214
|
+
git "checkout #{target_branch}"
|
215
|
+
git "reset --hard origin/#{target_branch}"
|
216
|
+
git "checkout #{local_branch}"
|
217
|
+
end
|
218
|
+
# Push latest commits to the remote branch (and by that, create it if necessary).
|
219
|
+
git "push origin"
|
220
|
+
end
|
221
|
+
|
199
222
|
# System call to 'git'.
|
200
223
|
def git(command, chomp = true)
|
201
224
|
s = `git #{command}`
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git-review
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
- 6
|
9
8
|
- 7
|
10
|
-
|
9
|
+
- 0
|
10
|
+
version: 0.7.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Dominik Bamberger, Cristian Messel
|