packages: redmine/redmine-mercurial.patch (NEW) - mercurial overhaul: http:...
baggins
baggins at pld-linux.org
Sat Mar 13 00:42:50 CET 2010
Author: baggins Date: Fri Mar 12 23:42:49 2010 GMT
Module: packages Tag: HEAD
---- Log message:
- mercurial overhaul: http://www.redmine.org/issues/4455
---- Files affected:
packages/redmine:
redmine-mercurial.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: packages/redmine/redmine-mercurial.patch
diff -u /dev/null packages/redmine/redmine-mercurial.patch:1.1
--- /dev/null Sat Mar 13 00:42:50 2010
+++ packages/redmine/redmine-mercurial.patch Sat Mar 13 00:42:44 2010
@@ -0,0 +1,1224 @@
+diff -urN redmine-0.9.3/app/helpers/repositories_helper.rb marutosi-redmine-b34d7e8/app/helpers/repositories_helper.rb
+--- redmine-0.9.3/app/helpers/repositories_helper.rb 2010-02-28 11:28:05.000000000 +0100
++++ marutosi-redmine-b34d7e8/app/helpers/repositories_helper.rb 2010-03-09 08:13:32.000000000 +0100
+@@ -158,13 +158,27 @@
+ def darcs_field_tags(form, repository)
+ content_tag('p', form.text_field(:url, :label => 'Root directory', :size => 60, :required => true, :disabled => (repository && !repository.new_record?)))
+ end
+-
++
+ def mercurial_field_tags(form, repository)
+- content_tag('p', form.text_field(:url, :label => 'Root directory', :size => 60, :required => true, :disabled => (repository && !repository.root_url.blank?)))
++ content_tag('p', form.text_field(
++ :url,
++ :label => 'Root directory',
++ :size => 60,
++ :required => true,
++ ## Mercurial repository is removable.
++ # :disabled => (repository && !repository.root_url.blank?)
++ :disabled => false
++ ))
+ end
+
+ def git_field_tags(form, repository)
+- content_tag('p', form.text_field(:url, :label => 'Path to .git directory', :size => 60, :required => true, :disabled => (repository && !repository.root_url.blank?)))
++ content_tag('p', form.text_field(
++ :url,
++ :label => 'Path to .git directory',
++ :size => 60,
++ :required => true,
++ :disabled => (repository && !repository.root_url.blank?)
++ ))
+ end
+
+ def cvs_field_tags(form, repository)
+diff -urN redmine-0.9.3/app/models/repository/mercurial.rb marutosi-redmine-b34d7e8/app/models/repository/mercurial.rb
+--- redmine-0.9.3/app/models/repository/mercurial.rb 2010-02-28 11:28:05.000000000 +0100
++++ marutosi-redmine-b34d7e8/app/models/repository/mercurial.rb 2010-03-09 08:13:32.000000000 +0100
+@@ -18,77 +18,309 @@
+ require 'redmine/scm/adapters/mercurial_adapter'
+
+ class Repository::Mercurial < Repository
+- attr_protected :root_url
++ attr_protected :root_url
+ validates_presence_of :url
+
++ @@limit_check_strip = 100
++ @@num_convert_redmine_0_9 = 20
++
+ def scm_adapter
+ Redmine::Scm::Adapters::MercurialAdapter
+ end
+-
++
+ def self.scm_name
+ 'Mercurial'
+ end
+-
++
++ def branches
++ scm.branches
++ end
++
++ def tags
++ scm.tags
++ end
++
+ def entries(path=nil, identifier=nil)
+- entries=scm.entries(path, identifier)
++ entries=scm.entries(path, identifier,:include_file_revs => true )
+ if entries
+ entries.each do |entry|
+- next unless entry.is_file?
+- # Set the filesize unless browsing a specific revision
+- if identifier.nil?
+- full_path = File.join(root_url, entry.path)
+- entry.size = File.stat(full_path).size if File.file?(full_path)
+- end
+- # Search the DB for the entry's last change
+- change = changes.find(:first, :conditions => ["path = ?", scm.with_leading_slash(entry.path)], :order => "#{Changeset.table_name}.committed_on DESC")
+- if change
+- entry.lastrev.identifier = change.changeset.revision
+- entry.lastrev.name = change.changeset.revision
+- entry.lastrev.author = change.changeset.committer
+- entry.lastrev.revision = change.revision
++ if entry && entry.lastrev && entry.lastrev.identifier
++ rev = changesets.find(
++ :first,
++ :conditions => [ "revision = ?" , entry.lastrev.identifier ]
++ )
++ next if rev
++ rev = changesets.find(
++ :first,
++ :conditions => ["scmid LIKE ?", entry.lastrev.identifier + '%']
++ )
++ entry.lastrev.identifier = rev.revision if rev
+ end
+ end
+ end
+ entries
+ end
+
++ # TODO:
++ # This logic fails in following case.
++ #
++ # Before
++ #
++ # /-C
++ # A-------B
++ #
++ # After
++ #
++ # /-D
++ # A-------B
++ #
++ # This is very very rare case.
++ #
++ # For this case, we need to store HEAD info on DB?
++ # http://www.redmine.org/issues/4773#note-11
++ #
+ def fetch_changesets
+ scm_info = scm.info
+- if scm_info
+- # latest revision found in database
+- db_revision = latest_changeset ? latest_changeset.revision.to_i : -1
+- # latest revision in the repository
+- latest_revision = scm_info.lastrev
+- return if latest_revision.nil?
+- scm_revision = latest_revision.identifier.to_i
+- if db_revision < scm_revision
+- logger.debug "Fetching changesets for repository #{url}" if logger && logger.debug?
+- identifier_from = db_revision + 1
+- while (identifier_from <= scm_revision)
+- # loads changesets by batches of 100
+- identifier_to = [identifier_from + 99, scm_revision].min
+- revisions = scm.revisions('', identifier_from, identifier_to, :with_paths => true)
+- transaction do
+- revisions.each do |revision|
+- changeset = Changeset.create(:repository => self,
+- :revision => revision.identifier,
+- :scmid => revision.scmid,
+- :committer => revision.author,
+- :committed_on => revision.time,
+- :comments => revision.message)
+-
+- revision.paths.each do |change|
+- Change.create(:changeset => changeset,
+- :action => change[:action],
+- :path => change[:path],
+- :from_path => change[:from_path],
+- :from_revision => change[:from_revision])
++ # Backout Redmine 0.9.x
++ # return unless scm_info or scm_info.lastrev.nil?
++ return unless scm_info
++
++ transaction do
++ Changeset.update_all(
++ "scm_order = -1" ,
++ ["repository_id = ? AND scm_order is null", id]
++ )
++ end
++
++ identifier_from = 0
++
++ transaction do
++ tip_on_db = changesets.find(:first, :order => 'scm_order DESC')
++ tip_on_db = convert_changeset(tip_on_db) if ( tip_on_db && ( tip_on_db.scm_order == -1 ) )
++ tip_revno_on_db = -1
++ hg_revno_dbtip = -1
++ if tip_on_db
++ tip_revno_on_db = tip_on_db.scm_order
++ revs = scm.revisions( nil, tip_on_db.scmid, tip_on_db.scmid,
++ :lite => true)
++ hg_revno_dbtip = revs.first.scm_order if revs && revs.first
++ end
++
++ # Redmine cannot check changeset.count == scm.num_revisions
++ # because Redmine ver.0.9.x has stripped revision on DB
++ # and 'revision' is uniq.
++ if ( tip_revno_on_db == hg_revno_dbtip )
++ identifier_from = tip_revno_on_db + 1
++ else
++ # At Redmine SVN r3394, git check history editing for only one week.
++ # Mercurial has revision number,
++ # so Redmine can check from big revision number.
++ # And strip revision in middle of history on shared repository
++ # is very rare case.
++ ver09x_changeset_first =
++ changesets.find(:first,:conditions =>[ "scm_order = -1" ] )
++ if ( ver09x_changeset_first )
++ convert_changesets(@@num_convert_redmine_0_9)
++ end
++ converted_cs = nil
++ flag_loop_break = false
++ convert_limit = @@limit_check_strip
++ changesets.find(
++ :all,
++ :order => 'scm_order DESC',
++ :limit => convert_limit).each do |cs|
++ prev_no = cs.scm_order
++ converted_cs = convert_changeset(cs)
++ if ( converted_cs && converted_cs.scm_order )
++ if ( converted_cs.scm_order == prev_no )
++ changesets.find(:all,:conditions =>
++ [ "scm_order = ? AND scmid != ?" , cs.scm_order , cs.scmid ]
++ ).each do |cs1|
++ convert_changeset(cs1)
++ end
++ flag_loop_break = true
++ break
++ end
++ end
++ end
++ if ( flag_loop_break )
++ identifier_from = converted_cs.scm_order + 1
++ else
++ identifier_from = [scm.num_revisions - convert_limit , 0].max
++ end
++ end
++ end
++
++ scm_revision = scm.num_revisions - 1
++ # Reffered from Subversion logic.
++ while (identifier_from <= scm_revision)
++ transaction do
++ identifier_to = [identifier_from + 19, scm_revision].min
++ revisions = scm.revisions(
++ nil, identifier_from, identifier_to )
++ if revisions
++ revisions.each do |rev|
++ dups = changesets.find(
++ :all,
++ :conditions =>["scmid = ? or scmid = ? " ,
++ rev.scmid , rev.identifier]
++ )
++ unless dups.empty?
++ dups.each do |cs1|
++ ## There is no way to store
++ ## Redmine 0.9.x original revision number.
++ cs1.scmid = rev.scmid
++ cs1.scm_order = rev.scm_order.to_i
++ cs1.save
++ end
++ next
+ end
++ rev.save(self)
+ end
+- end unless revisions.nil?
++ end
+ identifier_from = identifier_to + 1
+ end
++ end
++ end
++
++ # TODO:
++ # 1. Mercurial has Named branches.
++ # http://mercurial.selenic.com/wiki/NamedBranches
++ # a)
++ # Mercurial has --only-branch option.
++ # But, this is show this branch only.
++ # TortoiseHg 0.9 Repository Explorer is different.
++ # How does TortoiseHg handle branches?
++ # b)
++ # If no changeset on this named branch,
++ # no revisons show on repository tab.
++ # c)
++ # Mercurial version 1.2 introduced the ability to close a branch.
++ # http://mercurial.selenic.com/wiki/PruningDeadBranches#Closing_branches
++ #
++ # 2.
++ # If Setting.autofetch_changesets is off,
++ # no revisons show on repository tab.
++ #
++ def latest_changesets(path, rev, limit=10)
++ branch = nil
++ if branches.index(rev)
++ branch = rev
++ end
++ revisions = scm.revisions(
++ path, rev, 0, :limit => limit,
++ :lite => true , :branch => branch
++ )
++
++ return [] if revisions.nil? or revisions.empty?
++
++ # Redmine 0.9.x changeset scmid is short id.
++ changesets.find(
++ :all,
++ :conditions => [
++ "scmid IN (?) or scmid IN (?)",
++ # revisions.map!{|c| c.scmid} ,
++ revisions.map{|c| c.scmid} ,
++ revisions.map{|c| c.identifier}
++ ]
++ )
++ end
++
++ def diff(path, rev, rev_to)
++ from_scmid = rev
++ if ( rev =~ /^\d*$/ )
++ from_rev = find_changeset_by_name(rev)
++ from_scmid = from_rev.scmid if from_rev
++ end
++ return nil if from_scmid.nil?
++ to_scmid = rev_to
++ if ( rev_to =~ /^\d*$/ )
++ to_rev = find_changeset_by_name(rev_to)
++ to_scmid = to_rev.scmid if to_rev
++ end
++ scm.diff(path, from_scmid, to_scmid)
++ end
++
++ # Redmine 0.9.x has revision with revision number.
++ # TODO:
++ # In case of strip, revision number is renumberd,
++ # this logic fails?
++ # We need to test with fixtures?
++ # And tag and branch can use '\d'???
++ def find_changeset_by_name(name)
++ if name
++ changesets.find(:first, :conditions => (name.match(/^\d*$/) ? ["revision = ?", name.to_s] : ["scmid LIKE ?", name + '%']))
++ else
++ nil
++ end
++ end
++
++ # This method is not used now.
++ # But, I plan to use in rake task.
++ def convert_changesets_all
++ changesets.find_each(
++ :conditions => [ "scm_order = -1 or scm_order is null" ],
++ :batch_size => 100) do |cs|
++ convert_changeset(cs)
++ end
++ end
++
++ def convert_changesets(limit=10)
++ changesets.find(
++ :all,
++ :conditions =>[ "scm_order = -1 or scm_order is null" ],
++ :limit => limit).each do |cs|
++ convert_changeset(cs)
++ end
++ end
++
++ # Mercurial revision number is sequential from 0.
++ # And Mercurial has multipile heads.
++ # If one head in middle of history was stripped,
++ # revision number was renumbered.
++ # In this case, Redmine 0.9.x had duplicate scmid on DB.
++ #
++ # Because revision is uniq on table, convert fails.
++ # And "rNN" is written in Wiki, issue message, etc.
++ def convert_changeset(cs)
++ ret = cs
++ revs = scm.revisions(nil, cs.scmid, cs.scmid, :lite => true)
++ rev = nil
++ rev = revs.first if revs
++ if rev
++ ret = convert_changeset_with_revision(cs, rev)
++ else
++ cs.delete
++ ret = nil
++ end
++ ret
++ end
++
++ def convert_changeset_with_revision(cs, rev)
++ cs.scm_order = rev.scm_order.to_i
++ if false
++ dup_first1 = changesets.find(
++ :first,
++ :conditions =>["revision = ?" , rev.identifier ]
++ )
++ if dup_first1.nil?
++ then
++ ## There is no way to store
++ ## Redmine 0.9.x original revision number.
++ # cs.revision = rev.identifier if cs.revision != rev.identifier
+ end
+ end
++ dup_first = changesets.find(
++ :first,
++ :conditions =>["scmid = ?" , rev.scmid ]
++ )
++ if dup_first.nil?
++ then
++ cs.scmid = rev.scmid
++ end
++
++ cs.save
++ ret = cs
++ ret
+ end
+ end
+diff -urN redmine-0.9.3/app/models/repository.rb marutosi-redmine-b34d7e8/app/models/repository.rb
+--- redmine-0.9.3/app/models/repository.rb 2010-02-28 11:28:06.000000000 +0100
++++ marutosi-redmine-b34d7e8/app/models/repository.rb 2010-03-09 08:13:32.000000000 +0100
+@@ -17,7 +17,7 @@
+
+ class Repository < ActiveRecord::Base
+ belongs_to :project
+- has_many :changesets, :order => "#{Changeset.table_name}.committed_on DESC, #{Changeset.table_name}.id DESC"
++ has_many :changesets, :order => "#{Changeset.table_name}.scm_order DESC, #{Changeset.table_name}.committed_on DESC, #{Changeset.table_name}.id DESC"
+ has_many :changes, :through => :changesets
+
+ # Raw SQL to delete changesets and changes in the database
+@@ -96,7 +96,7 @@
+ def find_changeset_by_name(name)
+ changesets.find(:first, :conditions => (name.match(/^\d*$/) ? ["revision = ?", name.to_s] : ["revision LIKE ?", name + '%']))
+ end
+-
++
+ def latest_changeset
+ @latest_changeset ||= changesets.find(:first)
+ end
+@@ -105,17 +105,18 @@
+ # Default behaviour is to search in cached changesets
+ def latest_changesets(path, rev, limit=10)
+ if path.blank?
++ # this is defined at "has_many"
++ # :order => "#{Changeset.table_name}.committed_on DESC, #{Changeset.table_name}.id DESC",
+ changesets.find(:all, :include => :user,
+- :order => "#{Changeset.table_name}.committed_on DESC, #{Changeset.table_name}.id DESC",
+ :limit => limit)
+ else
+ changes.find(:all, :include => {:changeset => :user},
+ :conditions => ["path = ?", path.with_leading_slash],
+- :order => "#{Changeset.table_name}.committed_on DESC, #{Changeset.table_name}.id DESC",
++ :order => "#{Changeset.table_name}.scm_order DESC, #{Changeset.table_name}.committed_on DESC, #{Changeset.table_name}.id DESC",
+ :limit => limit).collect(&:changeset)
+ end
+ end
+-
++
+ def scan_changesets_for_issue_ids
+ self.changesets.each(&:scan_comment_for_issue_ids)
+ end
+diff -urN redmine-0.9.3/app/views/repositories/revision.rhtml marutosi-redmine-b34d7e8/app/views/repositories/revision.rhtml
+--- redmine-0.9.3/app/views/repositories/revision.rhtml 2010-02-28 11:28:06.000000000 +0100
++++ marutosi-redmine-b34d7e8/app/views/repositories/revision.rhtml 2010-03-09 08:13:32.000000000 +0100
+@@ -21,7 +21,9 @@
+
+ <h2><%= l(:label_revision) %> <%= format_revision(@changeset.revision) %></h2>
+
+-<p><% if @changeset.scmid %>ID: <%= @changeset.scmid %><br /><% end %>
++<p>
++<% if @changeset.scmid %>ID: <%= @changeset.scmid %><br /><% end %>
++<% if @changeset.scm_order %>SCM Order: <%= @changeset.scm_order %><br /><% end %>
+ <span class="author"><%= authoring(@changeset.committed_on, @changeset.author) %></span></p>
+
+ <%= textilizable @changeset.comments %>
+diff -urN redmine-0.9.3/db/migrate/20100222000000_add_scm_order_to_changesets.rb marutosi-redmine-b34d7e8/db/migrate/20100222000000_add_scm_order_to_changesets.rb
+--- redmine-0.9.3/db/migrate/20100222000000_add_scm_order_to_changesets.rb 1970-01-01 01:00:00.000000000 +0100
++++ marutosi-redmine-b34d7e8/db/migrate/20100222000000_add_scm_order_to_changesets.rb 2010-03-09 08:13:32.000000000 +0100
+@@ -0,0 +1,12 @@
++
++class AddScmOrderToChangesets < ActiveRecord::Migration
++ def self.up
++ add_column :changesets, :scm_order, :integer, :null => true
++ add_index :changesets, :scm_order
++ end
++
++ def self.down
++ remove_index :changesets, :scm_order
++ remove_column :changesets, :scm_order
++ end
++end
+diff -urN redmine-0.9.3/.gitignore marutosi-redmine-b34d7e8/.gitignore
+--- redmine-0.9.3/.gitignore 2010-02-28 11:28:09.000000000 +0100
++++ marutosi-redmine-b34d7e8/.gitignore 2010-03-09 08:13:32.000000000 +0100
+@@ -17,3 +17,7 @@
+ /tmp/sockets/*
+ /tmp/test/*
+ /vendor/rails
++
++/.hg/
++/.hgignore
++/.hgtags
+diff -urN redmine-0.9.3/lib/redmine/scm/adapters/abstract_adapter.rb marutosi-redmine-b34d7e8/lib/redmine/scm/adapters/abstract_adapter.rb
+--- redmine-0.9.3/lib/redmine/scm/adapters/abstract_adapter.rb 2010-02-28 11:28:08.000000000 +0100
++++ marutosi-redmine-b34d7e8/lib/redmine/scm/adapters/abstract_adapter.rb 2010-03-09 08:13:32.000000000 +0100
+@@ -269,9 +269,10 @@
+ }.last
+ end
+ end
+-
++
++
+ class Revision
+- attr_accessor :identifier, :scmid, :name, :author, :time, :message, :paths, :revision, :branch
++ attr_accessor :identifier, :scmid, :name, :author, :time, :message, :paths, :revision, :branch, :scm_order
+
+ def initialize(attributes={})
+ self.identifier = attributes[:identifier]
+@@ -283,6 +284,7 @@
+ self.paths = attributes[:paths]
+ self.revision = attributes[:revision]
+ self.branch = attributes[:branch]
++ self.scm_order = attributes[:scm_order]
+ end
+
+ def save(repo)
+@@ -293,8 +295,9 @@
+ :scmid => scmid,
+ :committer => author,
+ :committed_on => time,
+- :comments => message)
+-
++ :comments => message ,
++ :scm_order => scm_order
++ )
+ if changeset.save
+ paths.each do |file|
+ Change.create(
+@@ -306,7 +309,7 @@
+ end
+ end
+ end
+-
++
+ class Annotate
+ attr_reader :lines, :revisions
+
+diff -urN redmine-0.9.3/lib/redmine/scm/adapters/mercurial/hg-template-0.9.5-lite.tmpl marutosi-redmine-b34d7e8/lib/redmine/scm/adapters/mercurial/hg-template-0.9.5-lite.tmpl
+--- redmine-0.9.3/lib/redmine/scm/adapters/mercurial/hg-template-0.9.5-lite.tmpl 1970-01-01 01:00:00.000000000 +0100
++++ marutosi-redmine-b34d7e8/lib/redmine/scm/adapters/mercurial/hg-template-0.9.5-lite.tmpl 2010-03-09 08:13:32.000000000 +0100
+@@ -0,0 +1,8 @@
++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}" shortnode="{node|short}" node="{node}">\n<author>{author|escape}</author>\n<date>{date|isodate}</date>\n<msg>{desc|escape}</msg>\n{tags}</logentry>\n\n'
++
++tag = '<tag>{tag|escape}</tag>\n'
++header='<?xml version="1.0" encoding="UTF-8" ?>\n<log>\n\n'
++# footer="</log>"
+\ No newline at end of file
+diff -urN redmine-0.9.3/lib/redmine/scm/adapters/mercurial/hg-template-0.9.5.tmpl marutosi-redmine-b34d7e8/lib/redmine/scm/adapters/mercurial/hg-template-0.9.5.tmpl
+--- redmine-0.9.3/lib/redmine/scm/adapters/mercurial/hg-template-0.9.5.tmpl 2010-02-28 11:28:08.000000000 +0100
++++ marutosi-redmine-b34d7e8/lib/redmine/scm/adapters/mercurial/hg-template-0.9.5.tmpl 2010-03-09 08:13:32.000000000 +0100
+@@ -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{files}{file_adds}{file_dels}{file_copies}</paths>\n<msg>{desc|escape}</msg>\n{tags}</logentry>\n\n'
++changeset_debug = '<logentry revision="{rev}" shortnode="{node|short}" node="{node}">\n<author>{author|escape}</author>\n<date>{date|isodate}</date>\n<paths>\n{files}{file_adds}{file_dels}{file_copies}</paths>\n<msg>{desc|escape}</msg>\n{tags}</logentry>\n\n'
+
+ file = '<path action="M">{file|escape}</path>\n'
+ file_add = '<path action="A">{file_add|escape}</path>\n'
+diff -urN redmine-0.9.3/lib/redmine/scm/adapters/mercurial/hg-template-1.0-lite.tmpl marutosi-redmine-b34d7e8/lib/redmine/scm/adapters/mercurial/hg-template-1.0-lite.tmpl
+--- redmine-0.9.3/lib/redmine/scm/adapters/mercurial/hg-template-1.0-lite.tmpl 1970-01-01 01:00:00.000000000 +0100
++++ marutosi-redmine-b34d7e8/lib/redmine/scm/adapters/mercurial/hg-template-1.0-lite.tmpl 2010-03-09 08:13:32.000000000 +0100
+@@ -0,0 +1,8 @@
++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}" shortnode="{node|short}" node="{node}">\n<author>{author|escape}</author>\n<date>{date|isodate}</date>\n<paths />\n<msg>{desc|escape}</msg>\n{tags}</logentry>\n\n'
++
++tag = '<tag>{tag|escape}</tag>\n'
++header='<?xml version="1.0" encoding="UTF-8" ?>\n<log>\n\n'
++# footer="</log>"
+diff -urN redmine-0.9.3/lib/redmine/scm/adapters/mercurial/hg-template-1.0.tmpl marutosi-redmine-b34d7e8/lib/redmine/scm/adapters/mercurial/hg-template-1.0.tmpl
+--- redmine-0.9.3/lib/redmine/scm/adapters/mercurial/hg-template-1.0.tmpl 2010-02-28 11:28:08.000000000 +0100
++++ marutosi-redmine-b34d7e8/lib/redmine/scm/adapters/mercurial/hg-template-1.0.tmpl 2010-03-09 08:13:32.000000000 +0100
+@@ -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}" shortnode="{node|short}" node="{node}">\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'
+
+ file_mod = '<path action="M">{file_mod|escape}</path>\n'
+ file_add = '<path action="A">{file_add|escape}</path>\n'
+diff -urN redmine-0.9.3/lib/redmine/scm/adapters/mercurial_adapter.rb marutosi-redmine-b34d7e8/lib/redmine/scm/adapters/mercurial_adapter.rb
+--- redmine-0.9.3/lib/redmine/scm/adapters/mercurial_adapter.rb 2010-02-28 11:28:08.000000000 +0100
++++ marutosi-redmine-b34d7e8/lib/redmine/scm/adapters/mercurial_adapter.rb 2010-03-09 08:13:32.000000000 +0100
+@@ -16,24 +16,30 @@
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ require 'redmine/scm/adapters/abstract_adapter'
++require 'rexml/document'
+
+ module Redmine
+ module Scm
+- module Adapters
++ module Adapters
+ class MercurialAdapter < AbstractAdapter
+-
+ # Mercurial executable name
+ HG_BIN = "hg"
+ TEMPLATES_DIR = File.dirname(__FILE__) + "/mercurial"
+ TEMPLATE_NAME = "hg-template"
<<Diff was trimmed, longer than 597 lines>>
More information about the pld-cvs-commit
mailing list