merge-commit-and-feature: commit moved commit script as feature subcommand

This commit is contained in:
rkiel
2015-06-07 19:09:15 -04:00
parent b5f75d85a0
commit 4f12826134
6 changed files with 51 additions and 63 deletions

View File

@@ -4,7 +4,6 @@ This is a collection of simple command-line scripts, bash aliases, and bash util
The command-line scripts include:
* commit - make using `git-commmit` easier
* feature - make working with feature branches easier
* xgrep - make using `git-grep` easier
@@ -57,18 +56,6 @@ To include the `bash` aliases and enable tab completion for the `feature` script
source ~/GitHub/rkiel/git-utilities/dotfiles/bashrc
```
## Commit utility
This utility makes it easier to write commit messages.
No need to specify the `-m` parameter or wrapping the message in quotes.
For example,
```
commit this is a sample commit message
```
generates the command `git commit -m "this is a sample commit message"`.
## Feature utility
### Usage
@@ -123,6 +110,26 @@ You can also override the default standard branch by specifying another branch.
feature merge integration
```
#### Commit
Use the `commit` subcommand to make it easier to write commit messages.
No need to specify the `-m` parameter or wrapping the message in quotes.
If you forget and pass in `-m` anyway, it will ignore it.
For example,
```
feature commit this is a sample commit message
feature commit -m this is a sample commit message
```
generates the command `git commit -m "this is a sample commit message"`.
The commit message will be prepended with the feature name. For example,
```
my-feature-name: this is a sample commit message
```
#### End
Use the `end` subcommand to close out the feature.

View File

@@ -1,10 +0,0 @@
#!/usr/bin/env ruby
require_relative '../lib/commit/commander'
commander = Commit::Commander.new(ARGV)
if commander.valid?
commander.execute
else
commander.help
end

View File

@@ -1,6 +1,7 @@
alias add="git add"
alias branch="git branch"
alias checkout="git checkout"
alias commit="feature commit"
alias pop="git stash pop --index"
alias pull="git pull"
alias push="git push"

View File

@@ -1,39 +0,0 @@
require_relative '../shared/branchability'
require_relative '../shared/runnable'
module Commit
class Commander
include Shared::Branchability
include Shared::Runnable
attr_reader :argv
def initialize (argv)
@argv = argv
end
def valid?
argv.size > 0
end
def help
puts
puts "USAGE: commit [word....]"
puts
exit
end
def execute
parts = parse_branch(current_branch)
comment = argv.reject { |x| x == '-m' }.join(' ')
comment = "#{parts[:feature]}: #{comment}"
git_commit comment
end
end
end

View File

@@ -5,6 +5,7 @@ require_relative './rebase'
require_relative './merge_to'
require_relative './tab'
require_relative './branch'
require_relative './commit'
module Feature
@@ -19,6 +20,7 @@ module Feature
when "rebase" then Feature::Rebase.new(argv)
when "merge" then Feature::MergeTo.new(argv)
when "tab" then Feature::Tab.new(argv)
when "commit" then Feature::Commit.new(argv)
else Feature::Branch.new(argv)
end
end
@@ -36,7 +38,7 @@ module Feature
end
def self.tab_completion
[:start, :end, :trash, :rebase, :merge].map(&:to_s).sort
[:start, :end, :trash, :rebase, :merge, :commit].map(&:to_s).sort
end
end

27
lib/feature/commit.rb Normal file
View File

@@ -0,0 +1,27 @@
require_relative './base'
module Feature
class Commit < Feature::Base
def valid?
argv.size > 1
end
def help
puts
puts "USAGE: feature commit [word....]"
puts
exit
end
def execute
parts = parse_branch(current_branch)
comment = argv.reject { |x| x == '-m' }.join(' ')
comment = "#{parts[:feature]}: #{comment}"
git_commit comment
end
end
end