From c60463816bd02fbadb610e7de61fa43e544f99a7 Mon Sep 17 00:00:00 2001 From: Toshi MARUYAMA Date: Fri, 30 Jul 2010 14:10:18 +0900 Subject: [PATCH 1/2] 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 Tested-on: Redmine trunk r3840 --- lib/redmine/scm/adapters/mercurial/hg-template-1.0.tmpl | 2 +- test/unit/repository_mercurial_test.rb | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/redmine/scm/adapters/mercurial/hg-template-1.0.tmpl b/lib/redmine/scm/adapters/mercurial/hg-template-1.0.tmpl index 3eef850168e..b6cc7a78692 100644 --- 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 = '\n{author|escape}\n{date|isodate}\n\n{file_mods}{file_adds}{file_dels}{file_copies}\n{desc|escape}\n{tags}\n\n' +changeset_debug = '\n{author|escape}\n{date|isodatesec}\n\n{file_mods}{file_adds}{file_dels}{file_copies}\n{desc|escape}\n{tags}\n\n' file_mod = '{file_mod|escape}\n' file_add = '{file_add|escape}\n' diff --git a/test/unit/repository_mercurial_test.rb b/test/unit/repository_mercurial_test.rb index 6ce3d5fa023..3770450ba82 100644 --- a/test/unit/repository_mercurial_test.rb +++ b/test/unit/repository_mercurial_test.rb @@ -68,6 +68,13 @@ def test_cat 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 From 9700df2ce40aa81be06721d35f7d4716468b226b Mon Sep 17 00:00:00 2001 From: Toshi MARUYAMA Date: Sun, 28 Nov 2010 11:42:44 +0900 Subject: [PATCH 2/2] import http://www.redmine.org/issues/6656#note-3 --- test/unit/repository_mercurial_test.rb | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/test/unit/repository_mercurial_test.rb b/test/unit/repository_mercurial_test.rb index 3770450ba82..d9006918d26 100644 --- a/test/unit/repository_mercurial_test.rb +++ b/test/unit/repository_mercurial_test.rb @@ -62,19 +62,20 @@ def test_locate_on_outdated_repository assert_equal 2, @repository.entries("images", 2).size end - def test_cat assert @repository.scm.cat("sources/welcome_controller.rb", 2) 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 + # Template keyword 'isodatesec' supported in Mercurial 1.0 and higher + if @repository.scm.class.client_version_above?([1, 0]) + @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 end - else puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!" def test_fake; assert true end