updates: optimize rebase and merge
This commit is contained in:
@@ -14,18 +14,27 @@ module Feature
|
|||||||
def execute
|
def execute
|
||||||
parts = parse_branch(current_branch)
|
parts = parse_branch(current_branch)
|
||||||
|
|
||||||
|
standard_branch = parts[:standard]
|
||||||
|
feature_branch = current_branch
|
||||||
|
remote_branch = remote_branch(feature_branch)
|
||||||
|
|
||||||
if argv.size == 2
|
if argv.size == 2
|
||||||
merge_to_branch = argv[1]
|
merge_to_branch = argv[1]
|
||||||
elsif argv.size == 1
|
elsif argv.size == 1
|
||||||
merge_to_branch = parts[:standard]
|
merge_to_branch = parts[:standard]
|
||||||
end
|
end
|
||||||
|
|
||||||
feature_branch = current_branch
|
|
||||||
|
|
||||||
error "invalid branch: #{merge_to_branch}" unless standard_branches.include? merge_to_branch or merge_to_branch =~ /\d+\.\d+\.\d+/
|
error "invalid branch: #{merge_to_branch}" unless standard_branches.include? merge_to_branch or merge_to_branch =~ /\d+\.\d+\.\d+/
|
||||||
|
|
||||||
|
# should match rebase
|
||||||
|
git_fetch
|
||||||
|
git_rebase ['origin', standard_branch].join('/')
|
||||||
|
if remote_branch != ""
|
||||||
|
git_remote_branch_delete feature_branch
|
||||||
|
end
|
||||||
|
git_push feature_branch
|
||||||
|
|
||||||
git_checkout merge_to_branch
|
git_checkout merge_to_branch
|
||||||
git_pull merge_to_branch
|
|
||||||
git_merge feature_branch
|
git_merge feature_branch
|
||||||
git_push merge_to_branch
|
git_push merge_to_branch
|
||||||
git_push_tags
|
git_push_tags
|
||||||
|
|||||||
@@ -21,17 +21,13 @@ module Feature
|
|||||||
error "USAGE: feature rebase" unless standard_branch
|
error "USAGE: feature rebase" unless standard_branch
|
||||||
error "invalid feature branch: #{feature_branch}" if standard_branches.include? feature_branch
|
error "invalid feature branch: #{feature_branch}" if standard_branches.include? feature_branch
|
||||||
|
|
||||||
git_checkout standard_branch
|
|
||||||
git_fetch
|
git_fetch
|
||||||
git_pull standard_branch
|
git_rebase ['origin', standard_branch].join('/')
|
||||||
git_checkout feature_branch
|
|
||||||
git_rebase standard_branch
|
|
||||||
|
|
||||||
if remote_branch != ""
|
if remote_branch != ""
|
||||||
git_remote_branch_delete feature_branch
|
git_remote_branch_delete feature_branch
|
||||||
end
|
end
|
||||||
|
|
||||||
git_push feature_branch
|
git_push feature_branch
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user