diff --git a/lib/git/lib.rb b/lib/git/lib.rb index 17fe8f15..c0d0fd56 100644 --- a/lib/git/lib.rb +++ b/lib/git/lib.rb @@ -727,7 +727,10 @@ def tag(name, *opts) arr_opts << '-d' if opts[:d] || opts[:delete] arr_opts << name arr_opts << target if target - arr_opts << "-m #{opts[:m] || opts[:message]}" if opts[:m] || opts[:message] + + if opts[:m] || opts[:message] + arr_opts << '-m' << (opts[:m] || opts[:message]) + end command('tag', arr_opts) end diff --git a/tests/units/test_tags.rb b/tests/units/test_tags.rb index fde0683c..cbd707f8 100644 --- a/tests/units/test_tags.rb +++ b/tests/units/test_tags.rb @@ -65,12 +65,21 @@ def test_tags assert_equal(tag1.tagger.name, 'Test User') assert_equal(tag1.tagger.email, 'test@email.com') assert_true((Time.now - tag1.tagger.date) < 10) - assert_equal(tag1.message, ' test message') - + assert_equal(tag1.message, 'test message') + tag2 = r2.tag('fifth') assert_false(tag2.annotated?) assert_equal(tag2.tagger, nil) assert_equal(tag2.message, nil) end end + + def test_tag_message_not_prefixed_with_space + in_temp_dir do |path| + repo = Git.clone(@wbare, 'repo1') + repo.add_tag('donkey', :annotated => true, :message => 'hello') + tag = repo.tag('donkey') + assert_equal(tag.message, 'hello') + end + end end