diff --git a/lib/dialogs/commit-dialog.coffee b/lib/dialogs/commit-dialog.coffee index 7e09b21..a49b3dd 100644 --- a/lib/dialogs/commit-dialog.coffee +++ b/lib/dialogs/commit-dialog.coffee @@ -17,6 +17,9 @@ class CommitDialog extends Dialog @button click: 'cancel', => @i class: 'icon x' @span 'Cancel' + @input type: 'checkbox', id: 'amend', outlet: 'amendCheckbox' + @label 'Amend', for: 'amend' + activate: -> super() @@ -24,6 +27,12 @@ class CommitDialog extends Dialog @msg.focus() return + amend: -> + return @amendCheckbox.prop('checked') + + resetAmend: -> + @amendCheckbox.prop('checked', false) + colorLength: -> too_long = false for line, i in @msg.val().split("\n") diff --git a/lib/git-control-view.coffee b/lib/git-control-view.coffee index 8519444..f03cae2 100644 --- a/lib/git-control-view.coffee +++ b/lib/git-control-view.coffee @@ -165,13 +165,15 @@ class GitControlView extends View return unless @filesView.hasSelected() msg = @commitDialog.getMessage() + amend = @commitDialog.amend() + @commitDialog.resetAmend() files = @filesView.getSelected() @filesView.unselectAll() git.add(files.add) .then -> git.remove(files.rem) - .then -> git.commit(msg) + .then -> git.commit(msg, amend) .then => @update() return diff --git a/lib/git.coffee b/lib/git.coffee index fc36703..fd551af 100644 --- a/lib/git.coffee +++ b/lib/git.coffee @@ -149,11 +149,12 @@ module.exports = atomRefresh() return parseDefault(data) - commit: (message) -> + commit: (message, amend) -> message = message or Date.now() message = message.replace(/"/g, '\\"') + amendOpt = if amend then "--amend " else "--allow-empty-message" - return callGit "commit --allow-empty-message -m \"#{message}\"", (data) -> + return callGit "commit #{amendOpt} -m \"#{message}\"", (data) -> atomRefresh() return parseDefault(data)