Compare commits
18 Commits
rkiel-mast
...
release
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a934046340 | ||
|
|
29bc32edd9 | ||
|
|
35b68dadf2 | ||
|
|
0e31424185 | ||
|
|
8a4129a507 | ||
|
|
d94948aae1 | ||
|
|
8e0354be69 | ||
|
|
246142d6fd | ||
|
|
82973c3498 | ||
|
|
af91a01f8f | ||
|
|
8ab709a43e | ||
|
|
6c83679f45 | ||
|
|
5fa3c5f719 | ||
|
|
96739bdc76 | ||
|
|
b09accebd0 | ||
|
|
f753b647d3 | ||
|
|
877f06944d | ||
|
|
941aed3389 |
35
README.md
35
README.md
@@ -26,42 +26,13 @@ cd ~/GitHub/rkiel
|
|||||||
git clone https://github.com/rkiel/git-utilities.git
|
git clone https://github.com/rkiel/git-utilities.git
|
||||||
```
|
```
|
||||||
|
|
||||||
To add the scripts to your path, add the following to `.bash_profile`
|
To update your `.bash_profile` and `.bashrc`.
|
||||||
|
|
||||||
```
|
```
|
||||||
export GIT_UTILITIES_BIN="~/GitHub/rkiel/git-utilities/bin"
|
cd ~/GitHub/rkiel/git-utilities
|
||||||
|
./install/bin/setup --user rkiel
|
||||||
export PATH=${GIT_UTILITIES_BIN}:$PATH
|
|
||||||
```
|
```
|
||||||
|
|
||||||
To enable `bash` tab completion for `git` commands, add the following to `.bash_profile` (OS X) or `.bashrc` (Linux)
|
|
||||||
|
|
||||||
```
|
|
||||||
source ~/GitHub/rkiel/git-utilities/dotfiles/git-completion.bash
|
|
||||||
```
|
|
||||||
|
|
||||||
To enable your `bash` prompt to display repository status, add the following to `.bash_profile` (OS X) or `.bashrc` (Linux).
|
|
||||||
```
|
|
||||||
source ~/GitHub/rkiel/git-utilities/dotfiles/git-prompt.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
Here's a sample prompt that includes the current branch (i.e. `$(__git_ps1 " %s")`)
|
|
||||||
|
|
||||||
```
|
|
||||||
export PS1='[\[\e[0;35m\]\u@\h\[\e[0m\] \[\e[1;34m\]\W\[\e[0;32m\]$(__git_ps1 " %s")\[\e[0m\]]\$ '
|
|
||||||
```
|
|
||||||
|
|
||||||
To include the `bash` aliases and enable tab completion for the `feature` script, add the following to `.bashrc`.
|
|
||||||
|
|
||||||
```
|
|
||||||
source ~/GitHub/rkiel/git-utilities/dotfiles/bashrc
|
|
||||||
```
|
|
||||||
|
|
||||||
If your user id (i.e. `env|grep USER`) is generic, such as `ec2-user` or `centos` or `ubuntu`, set a `FEATURE_USER` environment variable in your `.bash_profile`. Either your `USER` or `FEATURE_USER` should be unique relative to all the users who will be creating feature branches in your git repository.
|
|
||||||
|
|
||||||
```
|
|
||||||
export FEATURE_USER=rkiel
|
|
||||||
```
|
|
||||||
## Documention
|
## Documention
|
||||||
|
|
||||||
* [See feature](FEATURE.md)
|
* [See feature](FEATURE.md)
|
||||||
|
|||||||
12
RELEASE.md
12
RELEASE.md
@@ -17,7 +17,7 @@ release help
|
|||||||
release join version
|
release join version
|
||||||
release leave
|
release leave
|
||||||
release list
|
release list
|
||||||
release start (major|minor|patch) [from] version
|
release start (major|minor|patch) from version [using master]
|
||||||
release tab [pattern]
|
release tab [pattern]
|
||||||
release trash local-branch-confirmation
|
release trash local-branch-confirmation
|
||||||
```
|
```
|
||||||
@@ -42,15 +42,21 @@ release create 1.0.0
|
|||||||
Create a shared, release candidate branch.
|
Create a shared, release candidate branch.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
release start (major|minor|patch) [from] version
|
release start (major|minor|patch) from version [using master]
|
||||||
```
|
```
|
||||||
|
|
||||||
The `version` specified must be an existing official release version. The `major`, `minor`, and `patch` options will increment the new version number accordingly. For example, to create a patch update, the following command will create a `rc1.0.1` release candidate branch.
|
The `version` specified must be an existing official release version. The `major`, `minor`, and `patch` options will increment the new version number accordingly. For example, to create a patch update, the following command will create a `rc1.0.1` release candidate branch. If the optional `using master` is not specified, the release candiate branch will be created from the version tag (e.g. `v1.0.0`). Otherwise, the release candiate branch will be created from `master`. Also, if the repository contains a `package.json` file, the `version` property will automatically be set and committed.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git checkout master
|
git checkout master
|
||||||
release start patch from 1.0.0
|
release start patch from 1.0.0
|
||||||
```
|
```
|
||||||
|
or
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git checkout master
|
||||||
|
release start patch from 1.0.0 from master
|
||||||
|
```
|
||||||
|
|
||||||
Once the shared release candidate branch has been created, use `feature` to create and manage personal feature branches.
|
Once the shared release candidate branch has been created, use `feature` to create and manage personal feature branches.
|
||||||
|
|
||||||
|
|||||||
10
install/bin/setup
Executable file
10
install/bin/setup
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
require_relative '../lib/setup/commander'
|
||||||
|
|
||||||
|
commander = Setup::Commander.new(ARGV)
|
||||||
|
if commander.valid?
|
||||||
|
commander.execute
|
||||||
|
else
|
||||||
|
commander.help
|
||||||
|
end
|
||||||
95
install/lib/setup/commander.rb
Normal file
95
install/lib/setup/commander.rb
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
require 'ostruct'
|
||||||
|
require 'optparse'
|
||||||
|
require 'json'
|
||||||
|
|
||||||
|
require_relative './prompt'
|
||||||
|
|
||||||
|
module Setup
|
||||||
|
|
||||||
|
class Commander
|
||||||
|
|
||||||
|
attr_accessor :options
|
||||||
|
|
||||||
|
def initialize (argv)
|
||||||
|
@options = OpenStruct.new
|
||||||
|
|
||||||
|
@option_parser = OptionParser.new do |op|
|
||||||
|
op.banner = "Usage: setup options"
|
||||||
|
|
||||||
|
op.on('-u','--user USER') do |argument|
|
||||||
|
options.user = argument
|
||||||
|
end
|
||||||
|
|
||||||
|
op.on_tail('-h','--help') do |argument|
|
||||||
|
puts op
|
||||||
|
exit
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
@option_parser.parse!(argv)
|
||||||
|
options.terms = argv # must be after parse!
|
||||||
|
end
|
||||||
|
|
||||||
|
def valid?
|
||||||
|
options.user
|
||||||
|
end
|
||||||
|
|
||||||
|
def help
|
||||||
|
puts @option_parser
|
||||||
|
exit
|
||||||
|
end
|
||||||
|
|
||||||
|
def execute
|
||||||
|
action = options.action
|
||||||
|
|
||||||
|
|
||||||
|
File.open("#{ENV['HOME']}/.bash_profile", "a") do |f|
|
||||||
|
f.puts
|
||||||
|
f.puts '#############################################################'
|
||||||
|
f.puts "# added by ~/GitHub/rkiel/git-utilities/install/bin/setup"
|
||||||
|
f.puts '#############################################################'
|
||||||
|
f.puts 'export GIT_UTILITIES_BIN="~/GitHub/rkiel/git-utilities/bin"'
|
||||||
|
f.puts 'export PATH=${GIT_UTILITIES_BIN}:$PATH'
|
||||||
|
f.puts 'source ~/GitHub/rkiel/git-utilities/dotfiles/git-completion.bash'
|
||||||
|
f.puts 'source ~/GitHub/rkiel/git-utilities/dotfiles/git-prompt.sh'
|
||||||
|
f.puts "export FEATURE_USER=#{options.user}" if options.user
|
||||||
|
f.puts "export PS1='#{Setup::Prompt.new.generate(options)}'"
|
||||||
|
f.puts '#############################################################'
|
||||||
|
f.puts
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
File.open("#{ENV['HOME']}/.bashrc", "a") do |f|
|
||||||
|
f.puts
|
||||||
|
f.puts '#############################################################'
|
||||||
|
f.puts "# added by ~/GitHub/rkiel/git-utilities/install/bin/setup"
|
||||||
|
f.puts '#############################################################'
|
||||||
|
f.puts 'source ~/GitHub/rkiel/git-utilities/dotfiles/bashrc'
|
||||||
|
f.puts '#############################################################'
|
||||||
|
f.puts
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def run_cmd ( cmd )
|
||||||
|
puts
|
||||||
|
puts cmd
|
||||||
|
success = system cmd
|
||||||
|
unless success
|
||||||
|
error "(see above)"
|
||||||
|
end
|
||||||
|
puts
|
||||||
|
end
|
||||||
|
|
||||||
|
def error ( msg )
|
||||||
|
puts
|
||||||
|
puts "ERROR: #{msg}"
|
||||||
|
puts
|
||||||
|
exit
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
114
install/lib/setup/prompt.rb
Normal file
114
install/lib/setup/prompt.rb
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
module Setup
|
||||||
|
|
||||||
|
class Prompt
|
||||||
|
USERNAME = '\u'
|
||||||
|
ABSOLUTE = '\w'
|
||||||
|
RELATIVE = '\W'
|
||||||
|
PROMPT = '\$'
|
||||||
|
HOSTNAME = '\h'
|
||||||
|
GIT = '$(__git_ps1 " %s")'
|
||||||
|
|
||||||
|
# Reset
|
||||||
|
Color_Off='\e[0m' # Text Reset
|
||||||
|
|
||||||
|
# Regular Colors
|
||||||
|
Black='\e[0;30m' # Black
|
||||||
|
Red='\e[0;31m' # Red
|
||||||
|
Green='\e[0;32m' # Green
|
||||||
|
Yellow='\e[0;33m' # Yellow
|
||||||
|
Blue='\e[0;34m' # Blue
|
||||||
|
Purple='\e[0;35m' # Purple
|
||||||
|
Cyan='\e[0;36m' # Cyan
|
||||||
|
White='\e[0;37m' # White
|
||||||
|
|
||||||
|
# Bold
|
||||||
|
BBlack='\e[1;30m' # Black
|
||||||
|
BRed='\e[1;31m' # Red
|
||||||
|
BGreen='\e[1;32m' # Green
|
||||||
|
BYellow='\e[1;33m' # Yellow
|
||||||
|
BBlue='\e[1;34m' # Blue
|
||||||
|
BPurple='\e[1;35m' # Purple
|
||||||
|
BCyan='\e[1;36m' # Cyan
|
||||||
|
BWhite='\e[1;37m' # White
|
||||||
|
|
||||||
|
# Underline
|
||||||
|
UBlack='\e[4;30m' # Black
|
||||||
|
URed='\e[4;31m' # Red
|
||||||
|
UGreen='\e[4;32m' # Green
|
||||||
|
UYellow='\e[4;33m' # Yellow
|
||||||
|
UBlue='\e[4;34m' # Blue
|
||||||
|
UPurple='\e[4;35m' # Purple
|
||||||
|
UCyan='\e[4;36m' # Cyan
|
||||||
|
UWhite='\e[4;37m' # White
|
||||||
|
|
||||||
|
# Background
|
||||||
|
On_Black='\e[40m' # Black
|
||||||
|
On_Red='\e[41m' # Red
|
||||||
|
On_Green='\e[42m' # Green
|
||||||
|
On_Yellow='\e[43m' # Yellow
|
||||||
|
On_Blue='\e[44m' # Blue
|
||||||
|
On_Purple='\e[45m' # Purple
|
||||||
|
On_Cyan='\e[46m' # Cyan
|
||||||
|
On_White='\e[47m' # White
|
||||||
|
|
||||||
|
# High Intensity
|
||||||
|
IBlack='\e[0;90m' # Black
|
||||||
|
IRed='\e[0;91m' # Red
|
||||||
|
IGreen='\e[0;92m' # Green
|
||||||
|
IYellow='\e[0;93m' # Yellow
|
||||||
|
IBlue='\e[0;94m' # Blue
|
||||||
|
IPurple='\e[0;95m' # Purple
|
||||||
|
ICyan='\e[0;96m' # Cyan
|
||||||
|
IWhite='\e[0;97m' # White
|
||||||
|
|
||||||
|
# Bold High Intensity
|
||||||
|
BIBlack='\e[1;90m' # Black
|
||||||
|
BIRed='\e[1;91m' # Red
|
||||||
|
BIGreen='\e[1;92m' # Green
|
||||||
|
BIYellow='\e[1;93m' # Yellow
|
||||||
|
BIBlue='\e[1;94m' # Blue
|
||||||
|
BIPurple='\e[1;95m' # Purple
|
||||||
|
BICyan='\e[1;96m' # Cyan
|
||||||
|
BIWhite='\e[1;97m' # White
|
||||||
|
|
||||||
|
# High Intensity backgrounds
|
||||||
|
On_IBlack='\e[0;100m' # Black
|
||||||
|
On_IRed='\e[0;101m' # Red
|
||||||
|
On_IGreen='\e[0;102m' # Green
|
||||||
|
On_IYellow='\e[0;103m' # Yellow
|
||||||
|
On_IBlue='\e[0;104m' # Blue
|
||||||
|
On_IPurple='\e[0;105m' # Purple
|
||||||
|
On_ICyan='\e[0;106m' # Cyan
|
||||||
|
On_IWhite='\e[0;107m' # White
|
||||||
|
|
||||||
|
def generate (options)
|
||||||
|
values = []
|
||||||
|
values << '['
|
||||||
|
values << color(Purple)
|
||||||
|
values << USERNAME
|
||||||
|
values << '@'
|
||||||
|
values << HOSTNAME
|
||||||
|
values << color(Color_Off)
|
||||||
|
values << ' '
|
||||||
|
values << color(BBlue)
|
||||||
|
values << RELATIVE
|
||||||
|
values << color(Green)
|
||||||
|
values << GIT
|
||||||
|
values << color(Color_Off)
|
||||||
|
values << ']'
|
||||||
|
values << PROMPT
|
||||||
|
values << ' '
|
||||||
|
|
||||||
|
values.join('')
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def color (value)
|
||||||
|
'\['+value+'\]'
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
@@ -63,6 +63,9 @@ module Release
|
|||||||
error "Version branch already exists: #{branch}" if remote_branch(branch) != ""
|
error "Version branch already exists: #{branch}" if remote_branch(branch) != ""
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def validate_branch_is_master (branch)
|
||||||
|
error "Branch must be master: #{branch}" if branch != "master"
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -17,11 +17,11 @@ module Release
|
|||||||
validate_version_format version
|
validate_version_format version
|
||||||
|
|
||||||
validate_current_branch_master
|
validate_current_branch_master
|
||||||
git_pull current_branch
|
git_fetch_and_merge current_branch
|
||||||
|
|
||||||
validate_version_is_new version
|
validate_version_is_new version
|
||||||
|
|
||||||
update_package_json version
|
update_package_json version, version
|
||||||
|
|
||||||
git_local_tag release_tag_from_version(version)
|
git_local_tag release_tag_from_version(version)
|
||||||
|
|
||||||
|
|||||||
@@ -16,18 +16,15 @@ module Release
|
|||||||
|
|
||||||
validate_current_branch_is_release
|
validate_current_branch_is_release
|
||||||
|
|
||||||
git_pull release_branch
|
git_fetch_and_merge release_branch
|
||||||
|
|
||||||
update_package_json version_from_release_branch(release_branch)
|
|
||||||
|
|
||||||
git_local_tag release_tag_from_version(version_from_release_branch(release_branch))
|
git_local_tag release_tag_from_version(version_from_release_branch(release_branch))
|
||||||
|
|
||||||
git_push release_branch
|
git_push release_branch
|
||||||
git_push_tags
|
git_push_tags
|
||||||
|
|
||||||
git_checkout "master"
|
git_checkout :master
|
||||||
|
git_fetch_and_merge :master
|
||||||
#git_merge_message release_branch, "merge #{version_from_release_branch(release_branch)}"
|
|
||||||
|
|
||||||
git_local_branch_delete release_branch
|
git_local_branch_delete release_branch
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ module Release
|
|||||||
subcommand, version = *argv
|
subcommand, version = *argv
|
||||||
|
|
||||||
validate_current_branch_master
|
validate_current_branch_master
|
||||||
git_pull current_branch
|
git_fetch_and_merge current_branch
|
||||||
|
|
||||||
git_checkout_track release_branch_from_version(version)
|
git_checkout_track release_branch_from_version(version)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -4,19 +4,30 @@ module Release
|
|||||||
|
|
||||||
class Leave < Release::Base
|
class Leave < Release::Base
|
||||||
def valid?
|
def valid?
|
||||||
argv.size == 1
|
argv.size == 2
|
||||||
end
|
end
|
||||||
|
|
||||||
def help
|
def help
|
||||||
"release leave"
|
"release leave local-branch-confirmation"
|
||||||
end
|
end
|
||||||
|
|
||||||
def execute
|
def execute
|
||||||
|
if argv.size == 2
|
||||||
|
confirmation_branch = argv[1]
|
||||||
|
else
|
||||||
|
confirmation_branch = ''
|
||||||
|
end
|
||||||
|
|
||||||
|
release_branch = current_branch
|
||||||
|
|
||||||
|
error "Missing confirmation of branch: #{release_branch}" if confirmation_branch == ''
|
||||||
|
error "Confirmation branch does not match current branch: #{confirmation_branch} vs #{release_branch}" if release_branch != confirmation_branch
|
||||||
validate_current_branch_is_release
|
validate_current_branch_is_release
|
||||||
|
|
||||||
git_checkout "master"
|
git_checkout :master
|
||||||
|
git_fetch_and_merge :master
|
||||||
git_local_branch_trash current_branch
|
|
||||||
|
git_local_branch_trash release_branch
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ module Release
|
|||||||
|
|
||||||
def execute
|
def execute
|
||||||
validate_current_branch_master
|
validate_current_branch_master
|
||||||
git_pull current_branch
|
git_fetch_and_merge current_branch
|
||||||
|
|
||||||
puts
|
puts
|
||||||
puts show_existing_tags
|
puts show_existing_tags
|
||||||
puts
|
puts
|
||||||
|
|||||||
@@ -4,25 +4,27 @@ module Release
|
|||||||
|
|
||||||
class Start < Release::Base
|
class Start < Release::Base
|
||||||
def valid?
|
def valid?
|
||||||
argv.size == 3 or argv.size == 4
|
argv.size == 4 or argv.size == 6
|
||||||
end
|
end
|
||||||
|
|
||||||
def help
|
def help
|
||||||
"release start (major|minor|patch) [from] version"
|
"release start (major|minor|patch) from version [using master]"
|
||||||
end
|
end
|
||||||
|
|
||||||
def execute
|
def execute
|
||||||
case argv.size
|
case argv.size
|
||||||
when 3
|
|
||||||
subcommand, level, version = *argv
|
|
||||||
when 4
|
when 4
|
||||||
subcommand, level, verb, version = *argv
|
subcommand, level, verb, version = *argv
|
||||||
|
starting_branch = nil
|
||||||
|
when 6
|
||||||
|
subcommand, level, verb, version, verb2, starting_branch = *argv
|
||||||
|
validate_branch_is_master(starting_branch)
|
||||||
end
|
end
|
||||||
|
|
||||||
validate_version_format version
|
validate_version_format version
|
||||||
|
|
||||||
validate_current_branch_master
|
validate_current_branch_master
|
||||||
git_pull current_branch
|
git_fetch_and_merge current_branch
|
||||||
|
|
||||||
validate_version_exists version
|
validate_version_exists version
|
||||||
|
|
||||||
@@ -38,11 +40,16 @@ module Release
|
|||||||
error "unknow release level: #{level}"
|
error "unknow release level: #{level}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
starting_branch = release_tag_from_version(version) unless starting_branch
|
||||||
|
|
||||||
validate_version_does_not_exist new_version
|
validate_version_does_not_exist new_version
|
||||||
validate_release_branch_does_not_exist(release_branch_from_version(new_version))
|
validate_release_branch_does_not_exist(release_branch_from_version(new_version))
|
||||||
|
|
||||||
git_local_branch_create release_branch_from_version(new_version), release_tag_from_version(version)
|
git_local_branch_create release_branch_from_version(new_version), starting_branch
|
||||||
git_push_upstream(release_branch_from_version(new_version))
|
git_push_upstream(release_branch_from_version(new_version))
|
||||||
|
|
||||||
|
update_package_json new_version, "#{new_version} started"
|
||||||
|
git_push(release_branch_from_version(new_version))
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|||||||
@@ -24,7 +24,8 @@ module Release
|
|||||||
error "Confirmation branch does not match current branch: #{confirmation_branch} vs #{release_branch}" if release_branch != confirmation_branch
|
error "Confirmation branch does not match current branch: #{confirmation_branch} vs #{release_branch}" if release_branch != confirmation_branch
|
||||||
validate_current_branch_is_release
|
validate_current_branch_is_release
|
||||||
|
|
||||||
git_checkout 'master'
|
git_checkout :master
|
||||||
|
git_fetch_and_merge :master
|
||||||
|
|
||||||
git_local_branch_trash release_branch
|
git_local_branch_trash release_branch
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ module Shared
|
|||||||
end
|
end
|
||||||
|
|
||||||
def standard_branches
|
def standard_branches
|
||||||
['master']
|
['master','release']
|
||||||
end
|
end
|
||||||
|
|
||||||
def version_pattern
|
def version_pattern
|
||||||
|
|||||||
@@ -21,14 +21,14 @@ module Shared
|
|||||||
exit
|
exit
|
||||||
end
|
end
|
||||||
|
|
||||||
def update_package_json (version)
|
def update_package_json (version, message)
|
||||||
if File.exist? 'package.json'
|
if File.exist? 'package.json'
|
||||||
package_json = File.read('package.json')
|
package_json = File.read('package.json')
|
||||||
json = JSON.parse(package_json)
|
json = JSON.parse(package_json)
|
||||||
json['version'] = version
|
json['version'] = version
|
||||||
File.write('package.json', JSON.pretty_generate(json))
|
File.write('package.json', JSON.pretty_generate(json))
|
||||||
git_add 'package.json'
|
git_add 'package.json'
|
||||||
git_commit version
|
git_commit message, true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -36,10 +36,6 @@ module Shared
|
|||||||
run_cmd "git add #{path}"
|
run_cmd "git add #{path}"
|
||||||
end
|
end
|
||||||
|
|
||||||
def git_commit (msg)
|
|
||||||
run_cmd "git commit -m '#{msg}'"
|
|
||||||
end
|
|
||||||
|
|
||||||
def git_show_branches
|
def git_show_branches
|
||||||
run_cmd "git branch"
|
run_cmd "git branch"
|
||||||
end
|
end
|
||||||
@@ -48,6 +44,25 @@ module Shared
|
|||||||
run_cmd "git checkout #{branch}"
|
run_cmd "git checkout #{branch}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def git_fetch
|
||||||
|
run_cmd "git fetch origin -p && git fetch origin --tags"
|
||||||
|
end
|
||||||
|
|
||||||
|
def git_remote_merge ( branch )
|
||||||
|
run_cmd "git merge origin/#{branch} -m 'merged by release'"
|
||||||
|
end
|
||||||
|
|
||||||
|
def is_remote_branch (branch)
|
||||||
|
`git branch -r|grep origin|grep -v 'HEAD'|grep #{branch}`.strip != ""
|
||||||
|
end
|
||||||
|
|
||||||
|
def git_fetch_and_merge (branch)
|
||||||
|
git_fetch
|
||||||
|
if is_remote_branch(branch)
|
||||||
|
git_remote_merge branch
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def git_remote_branch_delete ( branch )
|
def git_remote_branch_delete ( branch )
|
||||||
run_cmd "git push origin :#{branch}"
|
run_cmd "git push origin :#{branch}"
|
||||||
end
|
end
|
||||||
@@ -84,10 +99,6 @@ module Shared
|
|||||||
run_cmd "git merge #{branch}"
|
run_cmd "git merge #{branch}"
|
||||||
end
|
end
|
||||||
|
|
||||||
def git_merge_message (branch, message)
|
|
||||||
run_cmd "git merge -m '#{message}' #{branch}"
|
|
||||||
end
|
|
||||||
|
|
||||||
def git_push (branch)
|
def git_push (branch)
|
||||||
run_cmd "git push origin #{branch}"
|
run_cmd "git push origin #{branch}"
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user