From 4f12826134ed4daca1ff8e95d2bed2aebdc11d0d Mon Sep 17 00:00:00 2001 From: rkiel Date: Sun, 7 Jun 2015 19:09:15 -0400 Subject: [PATCH] merge-commit-and-feature: commit moved commit script as feature subcommand --- README.md | 33 ++++++++++++++++++++------------- bin/commit | 10 ---------- dotfiles/bashrc | 1 + lib/commit/commander.rb | 39 --------------------------------------- lib/feature/commander.rb | 4 +++- lib/feature/commit.rb | 27 +++++++++++++++++++++++++++ 6 files changed, 51 insertions(+), 63 deletions(-) delete mode 100755 bin/commit delete mode 100644 lib/commit/commander.rb create mode 100644 lib/feature/commit.rb diff --git a/README.md b/README.md index d27dc4b..71104b5 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/bin/commit b/bin/commit deleted file mode 100755 index e896f28..0000000 --- a/bin/commit +++ /dev/null @@ -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 diff --git a/dotfiles/bashrc b/dotfiles/bashrc index 4e886cb..8465e1e 100644 --- a/dotfiles/bashrc +++ b/dotfiles/bashrc @@ -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" diff --git a/lib/commit/commander.rb b/lib/commit/commander.rb deleted file mode 100644 index 5d3857f..0000000 --- a/lib/commit/commander.rb +++ /dev/null @@ -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 diff --git a/lib/feature/commander.rb b/lib/feature/commander.rb index 5ab5f4b..2a201df 100644 --- a/lib/feature/commander.rb +++ b/lib/feature/commander.rb @@ -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 diff --git a/lib/feature/commit.rb b/lib/feature/commit.rb new file mode 100644 index 0000000..e27c421 --- /dev/null +++ b/lib/feature/commit.rb @@ -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