# HG changeset patch
# Parent b06229809878324adc346482af8f8e70898408d2
# User Toshi MARUYAMA <marutosijp2@yahoo.co.jp>
scm: mercurial: preserve seconds of committed timestamp

It changes template keyword 'isodate' to 'isodatesec'.
'isodatesec' is supported since Mercurial 8999d1249171,
which means Mercurial 1.0 has it.

Tested-by: Yuya Nishihara <yuya@tcha.org>
Tested-on: Redmine trunk r3840

diff --git a/lib/redmine/scm/adapters/mercurial/hg-template-1.0.tmpl b/lib/redmine/scm/adapters/mercurial/hg-template-1.0.tmpl
--- a/lib/redmine/scm/adapters/mercurial/hg-template-1.0.tmpl
+++ b/lib/redmine/scm/adapters/mercurial/hg-template-1.0.tmpl
@@ -1,7 +1,7 @@
 changeset = 'This template must be used with --debug option\n'
 changeset_quiet =  'This template must be used with --debug option\n'
 changeset_verbose = 'This template must be used with --debug option\n'
-changeset_debug = '<logentry revision="{rev}" node="{node|short}">\n<author>{author|escape}</author>\n<date>{date|isodate}</date>\n<paths>\n{file_mods}{file_adds}{file_dels}{file_copies}</paths>\n<msg>{desc|escape}</msg>\n{tags}</logentry>\n\n'
+changeset_debug = '<logentry revision="{rev}" node="{node|short}">\n<author>{author|escape}</author>\n<date>{date|isodatesec}</date>\n<paths>\n{file_mods}{file_adds}{file_dels}{file_copies}</paths>\n<msg>{desc|escape}</msg>\n{tags}</logentry>\n\n'
 
 file_mod = '<path action="M">{file_mod|escape}</path>\n'
 file_add = '<path action="A">{file_add|escape}</path>\n'
diff --git a/test/unit/repository_mercurial_test.rb b/test/unit/repository_mercurial_test.rb
--- a/test/unit/repository_mercurial_test.rb
+++ b/test/unit/repository_mercurial_test.rb
@@ -68,6 +68,13 @@ class RepositoryMercurialTest < ActiveSu
       assert_nil @repository.scm.cat("sources/welcome_controller.rb")
     end
 
+    def test_isodatesec
+      @repository.fetch_changesets
+      @repository.reload
+      rev0_committed_on = Time.gm(2007, 12, 14, 9, 22, 52)
+      assert_equal @repository.changesets.find_by_revision('0').committed_on, rev0_committed_on
+    end
+
   else
     puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!"
     def test_fake; assert true end
