From 6fb57d68c798694fd5ff39fc1c3d249ee62340e9 Mon Sep 17 00:00:00 2001 From: feugy Date: Fri, 14 Sep 2012 09:42:31 +0200 Subject: [PATCH] - Repo.commit: possibility to specify author --- src/repo.coffee | 3 +++ test/repo.test.coffee | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/src/repo.coffee b/src/repo.coffee index 941afa2..8330e9b 100644 --- a/src/repo.coffee +++ b/src/repo.coffee @@ -211,12 +211,15 @@ module.exports = class Repo # options - Object (optional). # "amend" - Boolean # "all" - Boolean + # "author"- String formated like: A U Thor # callback - Receives `(err)`. # commit: (message, options, callback) -> [options, callback] = [callback, options] if !callback options ?= {} options = _.extend options, {m: "\"#{message}\""} + # add quotes around author + options.author = "\"#{options.author}\"" if options.author? @git "commit", options, callback # Public: Add files to the index. diff --git a/test/repo.test.coffee b/test/repo.test.coffee index b3baefa..3d8c137 100644 --- a/test/repo.test.coffee +++ b/test/repo.test.coffee @@ -85,6 +85,41 @@ describe "Repo", -> commits[0].message.should.include "commit 4" + describe "#commit", -> + repo = null + commit = null + git_dir = __dirname + "/fixtures/junk_commit" + # given a fresh new repo + before (done) -> + rimraf git_dir, (err) -> + return done err if err + fs.mkdir git_dir, '0755', (err) -> + return done err if err + git.init git_dir, (err) -> + return done err if err + repo = git(git_dir) + fs.writeFileSync "#{git_dir}/foo.txt", "cheese" + repo.add "#{git_dir}/foo.txt", (err) -> + return done err if err + repo.commit 'message with spaces', + all:true + author: 'Someone ' + , (err) -> + return done err if err + repo.commits (err, _commits) -> + commit = _commits[0] + done err + + after (done) -> + rimraf git_dir, done + + it "has right message", (done) -> + commit.message.should.eql 'message with spaces' + commit.author.name.should.eql 'Someone' + commit.author.email.should.eql 'someone@somewhere.com' + done() + + describe "#tree", -> repo = fixtures.branched describe "master", ->