##// END OF EJS Templates
Merged r2722, r2771, r2772 from trunk....
Jean-Philippe Lang -
r2769:2ec385858f26
parent child
Show More
@@ -1,69 +1,71
1 <div class="contextual">
1 <div class="contextual">
2 <%= link_to(l(:button_edit), {:controller => 'users', :action => 'edit', :id => @user}, :class => 'icon icon-edit') if User.current.admin? %>
2 <%= link_to(l(:button_edit), {:controller => 'users', :action => 'edit', :id => @user}, :class => 'icon icon-edit') if User.current.admin? %>
3 </div>
3 </div>
4
4
5 <h2><%= avatar @user %> <%=h @user.name %></h2>
5 <h2><%= avatar @user %> <%=h @user.name %></h2>
6
6
7 <div class="splitcontentleft">
7 <div class="splitcontentleft">
8 <ul>
8 <ul>
9 <% unless @user.pref.hide_mail %>
9 <% unless @user.pref.hide_mail %>
10 <li><%=l(:field_mail)%>: <%= mail_to(h(@user.mail), nil, :encode => 'javascript') %></li>
10 <li><%=l(:field_mail)%>: <%= mail_to(h(@user.mail), nil, :encode => 'javascript') %></li>
11 <% end %>
11 <% end %>
12 <% for custom_value in @custom_values %>
12 <% for custom_value in @custom_values %>
13 <% if !custom_value.value.empty? %>
13 <% if !custom_value.value.empty? %>
14 <li><%= custom_value.custom_field.name%>: <%=h show_value(custom_value) %></li>
14 <li><%= custom_value.custom_field.name%>: <%=h show_value(custom_value) %></li>
15 <% end %>
15 <% end %>
16 <% end %>
16 <% end %>
17 <li><%=l(:label_registered_on)%>: <%= format_date(@user.created_on) %></li>
17 <li><%=l(:label_registered_on)%>: <%= format_date(@user.created_on) %></li>
18 <% unless @user.last_login_on.nil? %>
18 <% unless @user.last_login_on.nil? %>
19 <li><%=l(:field_last_login_on)%>: <%= format_date(@user.last_login_on) %></li>
19 <li><%=l(:field_last_login_on)%>: <%= format_date(@user.last_login_on) %></li>
20 <% end %>
20 <% end %>
21 </ul>
21 </ul>
22
22
23 <% unless @memberships.empty? %>
23 <% unless @memberships.empty? %>
24 <h3><%=l(:label_project_plural)%></h3>
24 <h3><%=l(:label_project_plural)%></h3>
25 <ul>
25 <ul>
26 <% for membership in @memberships %>
26 <% for membership in @memberships %>
27 <li><%= link_to(h(membership.project.name), :controller => 'projects', :action => 'show', :id => membership.project) %>
27 <li><%= link_to(h(membership.project.name), :controller => 'projects', :action => 'show', :id => membership.project) %>
28 (<%=h membership.role.name %>, <%= format_date(membership.created_on) %>)</li>
28 (<%=h membership.role.name %>, <%= format_date(membership.created_on) %>)</li>
29 <% end %>
29 <% end %>
30 </ul>
30 </ul>
31 <% end %>
31 <% end %>
32 <%= call_hook :view_account_left_bottom, :user => @user %>
32 </div>
33 </div>
33
34
34 <div class="splitcontentright">
35 <div class="splitcontentright">
35
36
36 <% unless @events_by_day.empty? %>
37 <% unless @events_by_day.empty? %>
37 <h3><%= link_to l(:label_activity), :controller => 'projects', :action => 'activity', :user_id => @user, :from => @events_by_day.keys.first %></h3>
38 <h3><%= link_to l(:label_activity), :controller => 'projects', :action => 'activity', :user_id => @user, :from => @events_by_day.keys.first %></h3>
38
39
39 <p>
40 <p>
40 <%=l(:label_reported_issues)%>: <%= Issue.count(:conditions => ["author_id=?", @user.id]) %>
41 <%=l(:label_reported_issues)%>: <%= Issue.count(:conditions => ["author_id=?", @user.id]) %>
41 </p>
42 </p>
42
43
43 <div id="activity">
44 <div id="activity">
44 <% @events_by_day.keys.sort.reverse.each do |day| %>
45 <% @events_by_day.keys.sort.reverse.each do |day| %>
45 <h4><%= format_activity_day(day) %></h4>
46 <h4><%= format_activity_day(day) %></h4>
46 <dl>
47 <dl>
47 <% @events_by_day[day].sort {|x,y| y.event_datetime <=> x.event_datetime }.each do |e| -%>
48 <% @events_by_day[day].sort {|x,y| y.event_datetime <=> x.event_datetime }.each do |e| -%>
48 <dt class="<%= e.event_type %>">
49 <dt class="<%= e.event_type %>">
49 <span class="time"><%= format_time(e.event_datetime, false) %></span>
50 <span class="time"><%= format_time(e.event_datetime, false) %></span>
50 <%= content_tag('span', h(e.project), :class => 'project') %>
51 <%= content_tag('span', h(e.project), :class => 'project') %>
51 <%= link_to format_activity_title(e.event_title), e.event_url %></dt>
52 <%= link_to format_activity_title(e.event_title), e.event_url %></dt>
52 <dd><span class="description"><%= format_activity_description(e.event_description) %></span></dd>
53 <dd><span class="description"><%= format_activity_description(e.event_description) %></span></dd>
53 <% end -%>
54 <% end -%>
54 </dl>
55 </dl>
55 <% end -%>
56 <% end -%>
56 </div>
57 </div>
57
58
58 <p class="other-formats">
59 <p class="other-formats">
59 <%= l(:label_export_to) %>
60 <%= l(:label_export_to) %>
60 <%= link_to 'Atom', {:controller => 'projects', :action => 'activity', :user_id => @user, :format => :atom, :key => User.current.rss_key}, :class => 'feed' %>
61 <%= link_to 'Atom', {:controller => 'projects', :action => 'activity', :user_id => @user, :format => :atom, :key => User.current.rss_key}, :class => 'feed' %>
61 </p>
62 </p>
62
63
63 <% content_for :header_tags do %>
64 <% content_for :header_tags do %>
64 <%= auto_discovery_link_tag(:atom, :controller => 'projects', :action => 'activity', :user_id => @user, :format => :atom, :key => User.current.rss_key) %>
65 <%= auto_discovery_link_tag(:atom, :controller => 'projects', :action => 'activity', :user_id => @user, :format => :atom, :key => User.current.rss_key) %>
65 <% end %>
66 <% end %>
66 <% end %>
67 <% end %>
68 <%= call_hook :view_account_right_bottom, :user => @user %>
67 </div>
69 </div>
68
70
69 <% html_title @user.name %>
71 <% html_title @user.name %>
@@ -1,50 +1,51
1 <div class="contextual">
1 <div class="contextual">
2 <%= link_to_if_authorized l(:button_edit), {:controller => 'versions', :action => 'edit', :id => @version}, :class => 'icon icon-edit' %>
2 <%= link_to_if_authorized l(:button_edit), {:controller => 'versions', :action => 'edit', :id => @version}, :class => 'icon icon-edit' %>
3 <%= call_hook(:view_versions_show_contextual, { :version => @version, :project => @project }) %>
3 </div>
4 </div>
4
5
5 <h2><%= h(@version.name) %></h2>
6 <h2><%= h(@version.name) %></h2>
6
7
7 <div id="version-summary">
8 <div id="version-summary">
8 <% if @version.estimated_hours > 0 || User.current.allowed_to?(:view_time_entries, @project) %>
9 <% if @version.estimated_hours > 0 || User.current.allowed_to?(:view_time_entries, @project) %>
9 <fieldset><legend><%= l(:label_time_tracking) %></legend>
10 <fieldset><legend><%= l(:label_time_tracking) %></legend>
10 <table>
11 <table>
11 <tr>
12 <tr>
12 <td width="130px" align="right"><%= l(:field_estimated_hours) %></td>
13 <td width="130px" align="right"><%= l(:field_estimated_hours) %></td>
13 <td width="240px" class="total-hours"width="130px" align="right"><%= html_hours(lwr(:label_f_hour, @version.estimated_hours)) %></td>
14 <td width="240px" class="total-hours"width="130px" align="right"><%= html_hours(lwr(:label_f_hour, @version.estimated_hours)) %></td>
14 </tr>
15 </tr>
15 <% if User.current.allowed_to?(:view_time_entries, @project) %>
16 <% if User.current.allowed_to?(:view_time_entries, @project) %>
16 <tr>
17 <tr>
17 <td width="130px" align="right"><%= l(:label_spent_time) %></td>
18 <td width="130px" align="right"><%= l(:label_spent_time) %></td>
18 <td width="240px" class="total-hours"><%= html_hours(lwr(:label_f_hour, @version.spent_hours)) %></td>
19 <td width="240px" class="total-hours"><%= html_hours(lwr(:label_f_hour, @version.spent_hours)) %></td>
19 </tr>
20 </tr>
20 <% end %>
21 <% end %>
21 </table>
22 </table>
22 </fieldset>
23 </fieldset>
23 <% end %>
24 <% end %>
24
25
25 <div id="status_by">
26 <div id="status_by">
26 <%= render_issue_status_by(@version, params[:status_by]) if @version.fixed_issues.count > 0 %>
27 <%= render_issue_status_by(@version, params[:status_by]) if @version.fixed_issues.count > 0 %>
27 </div>
28 </div>
28 </div>
29 </div>
29
30
30 <div id="roadmap">
31 <div id="roadmap">
31 <%= render :partial => 'versions/overview', :locals => {:version => @version} %>
32 <%= render :partial => 'versions/overview', :locals => {:version => @version} %>
32 <%= render(:partial => "wiki/content", :locals => {:content => @version.wiki_page.content}) if @version.wiki_page %>
33 <%= render(:partial => "wiki/content", :locals => {:content => @version.wiki_page.content}) if @version.wiki_page %>
33
34
34 <% issues = @version.fixed_issues.find(:all,
35 <% issues = @version.fixed_issues.find(:all,
35 :include => [:status, :tracker],
36 :include => [:status, :tracker],
36 :order => "#{Tracker.table_name}.position, #{Issue.table_name}.id") %>
37 :order => "#{Tracker.table_name}.position, #{Issue.table_name}.id") %>
37 <% if issues.size > 0 %>
38 <% if issues.size > 0 %>
38 <fieldset class="related-issues"><legend><%= l(:label_related_issues) %></legend>
39 <fieldset class="related-issues"><legend><%= l(:label_related_issues) %></legend>
39 <ul>
40 <ul>
40 <% issues.each do |issue| -%>
41 <% issues.each do |issue| -%>
41 <li><%= link_to_issue(issue) %>: <%=h issue.subject %></li>
42 <li><%= link_to_issue(issue) %>: <%=h issue.subject %></li>
42 <% end -%>
43 <% end -%>
43 </ul>
44 </ul>
44 </fieldset>
45 </fieldset>
45 <% end %>
46 <% end %>
46 </div>
47 </div>
47
48
48 <%= call_hook :view_versions_show_bottom, :version => @version %>
49 <%= call_hook :view_versions_show_bottom, :version => @version %>
49
50
50 <% html_title @version.name %>
51 <% html_title @version.name %>
@@ -1,924 +1,926
1 == Redmine changelog
1 == Redmine changelog
2
2
3 Redmine - project management software
3 Redmine - project management software
4 Copyright (C) 2006-2009 Jean-Philippe Lang
4 Copyright (C) 2006-2009 Jean-Philippe Lang
5 http://www.redmine.org/
5 http://www.redmine.org/
6
6
7
7
8 == 2009-xx-xx v0.8.5
8 == 2009-xx-xx v0.8.5
9
9
10 * Incoming mail handler : Allow spaces between keywords and colon
10 * Incoming mail handler : Allow spaces between keywords and colon
11 * Do not require a non-word character after a comma in Redmine links
11 * Do not require a non-word character after a comma in Redmine links
12 * Include issue hyperlinks in reminder emails
12 * Include issue hyperlinks in reminder emails
13 * Prevent nil error when retrieving svn version
14 * Various plugin hooks added
13 * Fixed: 500 Internal Server Error is raised if add an empty comment to the news
15 * Fixed: 500 Internal Server Error is raised if add an empty comment to the news
14 * Fixed: Atom links for wiki pages are not correct
16 * Fixed: Atom links for wiki pages are not correct
15 * Fixed: Atom feeds leak email address
17 * Fixed: Atom feeds leak email address
16 * Fixed: Case sensitivity in Issue filtering
18 * Fixed: Case sensitivity in Issue filtering
17 * Fixed: When reading RSS feed, the inline-embedded images are not properly shown
19 * Fixed: When reading RSS feed, the inline-embedded images are not properly shown
18
20
19
21
20 == 2009-05-17 v0.8.4
22 == 2009-05-17 v0.8.4
21
23
22 * Allow textile mailto links
24 * Allow textile mailto links
23 * Fixed: memory consumption when uploading file
25 * Fixed: memory consumption when uploading file
24 * Fixed: Mercurial integration doesn't work if Redmine is installed in folder path containing space
26 * Fixed: Mercurial integration doesn't work if Redmine is installed in folder path containing space
25 * Fixed: an error is raised when no tab is available on project settings
27 * Fixed: an error is raised when no tab is available on project settings
26 * Fixed: insert image macro corrupts urls with excalamation marks
28 * Fixed: insert image macro corrupts urls with excalamation marks
27 * Fixed: error on cross-project gantt PNG export
29 * Fixed: error on cross-project gantt PNG export
28 * Fixed: self and alternate links in atom feeds do not respect Atom specs
30 * Fixed: self and alternate links in atom feeds do not respect Atom specs
29 * Fixed: accept any svn tunnel scheme in repository URL
31 * Fixed: accept any svn tunnel scheme in repository URL
30 * Fixed: issues/show should accept user's rss key
32 * Fixed: issues/show should accept user's rss key
31 * Fixed: consistency of custom fields display on the issue detail view
33 * Fixed: consistency of custom fields display on the issue detail view
32 * Fixed: wiki comments length validation is missing
34 * Fixed: wiki comments length validation is missing
33 * Fixed: weak autologin token generation algorithm causes duplicate tokens
35 * Fixed: weak autologin token generation algorithm causes duplicate tokens
34
36
35
37
36 == 2009-04-05 v0.8.3
38 == 2009-04-05 v0.8.3
37
39
38 * Separate project field and subject in cross-project issue view
40 * Separate project field and subject in cross-project issue view
39 * Ability to set language for redmine:load_default_data task using REDMINE_LANG environment variable
41 * Ability to set language for redmine:load_default_data task using REDMINE_LANG environment variable
40 * Rescue Redmine::DefaultData::DataAlreadyLoaded in redmine:load_default_data task
42 * Rescue Redmine::DefaultData::DataAlreadyLoaded in redmine:load_default_data task
41 * CSS classes to highlight own and assigned issues
43 * CSS classes to highlight own and assigned issues
42 * Hide "New file" link on wiki pages from printing
44 * Hide "New file" link on wiki pages from printing
43 * Flush buffer when asking for language in redmine:load_default_data task
45 * Flush buffer when asking for language in redmine:load_default_data task
44 * Minimum project identifier length set to 1
46 * Minimum project identifier length set to 1
45 * Include headers so that emails don't trigger vacation auto-responders
47 * Include headers so that emails don't trigger vacation auto-responders
46 * Fixed: Time entries csv export links for all projects are malformed
48 * Fixed: Time entries csv export links for all projects are malformed
47 * Fixed: Files without Version aren't visible in the Activity page
49 * Fixed: Files without Version aren't visible in the Activity page
48 * Fixed: Commit logs are centered in the repo browser
50 * Fixed: Commit logs are centered in the repo browser
49 * Fixed: News summary field content is not searchable
51 * Fixed: News summary field content is not searchable
50 * Fixed: Journal#save has a wrong signature
52 * Fixed: Journal#save has a wrong signature
51 * Fixed: Email footer signature convention
53 * Fixed: Email footer signature convention
52 * Fixed: Timelog report do not show time for non-versioned issues
54 * Fixed: Timelog report do not show time for non-versioned issues
53
55
54
56
55 == 2009-03-07 v0.8.2
57 == 2009-03-07 v0.8.2
56
58
57 * Send an email to the user when an administrator activates a registered user
59 * Send an email to the user when an administrator activates a registered user
58 * Strip keywords from received email body
60 * Strip keywords from received email body
59 * Footer updated to 2009
61 * Footer updated to 2009
60 * Show RSS-link even when no issues is found
62 * Show RSS-link even when no issues is found
61 * One click filter action in activity view
63 * One click filter action in activity view
62 * Clickable/linkable line #'s while browsing the repo or viewing a file
64 * Clickable/linkable line #'s while browsing the repo or viewing a file
63 * Links to versions on files list
65 * Links to versions on files list
64 * Added request and controller objects to the hooks by default
66 * Added request and controller objects to the hooks by default
65 * Fixed: exporting an issue with attachments to PDF raises an error
67 * Fixed: exporting an issue with attachments to PDF raises an error
66 * Fixed: "too few arguments" error may occur on activerecord error translation
68 * Fixed: "too few arguments" error may occur on activerecord error translation
67 * Fixed: "Default columns Displayed on the Issues list" setting is not easy to read
69 * Fixed: "Default columns Displayed on the Issues list" setting is not easy to read
68 * Fixed: visited links to closed tickets are not striked through with IE6
70 * Fixed: visited links to closed tickets are not striked through with IE6
69 * Fixed: MailHandler#plain_text_body returns nil if there was nothing to strip
71 * Fixed: MailHandler#plain_text_body returns nil if there was nothing to strip
70 * Fixed: MailHandler raises an error when processing an email without From header
72 * Fixed: MailHandler raises an error when processing an email without From header
71
73
72
74
73 == 2009-02-15 v0.8.1
75 == 2009-02-15 v0.8.1
74
76
75 * Select watchers on new issue form
77 * Select watchers on new issue form
76 * Issue description is no longer a required field
78 * Issue description is no longer a required field
77 * Files module: ability to add files without version
79 * Files module: ability to add files without version
78 * Jump to the current tab when using the project quick-jump combo
80 * Jump to the current tab when using the project quick-jump combo
79 * Display a warning if some attachments were not saved
81 * Display a warning if some attachments were not saved
80 * Import custom fields values from emails on issue creation
82 * Import custom fields values from emails on issue creation
81 * Show view/annotate/download links on entry and annotate views
83 * Show view/annotate/download links on entry and annotate views
82 * Admin Info Screen: Display if plugin assets directory is writable
84 * Admin Info Screen: Display if plugin assets directory is writable
83 * Adds a 'Create and continue' button on the new issue form
85 * Adds a 'Create and continue' button on the new issue form
84 * IMAP: add options to move received emails
86 * IMAP: add options to move received emails
85 * Do not show Category field when categories are not defined
87 * Do not show Category field when categories are not defined
86 * Lower the project identifier limit to a minimum of two characters
88 * Lower the project identifier limit to a minimum of two characters
87 * Add "closed" html class to closed entries in issue list
89 * Add "closed" html class to closed entries in issue list
88 * Fixed: broken redirect URL on login failure
90 * Fixed: broken redirect URL on login failure
89 * Fixed: Deleted files are shown when using Darcs
91 * Fixed: Deleted files are shown when using Darcs
90 * Fixed: Darcs adapter works on Win32 only
92 * Fixed: Darcs adapter works on Win32 only
91 * Fixed: syntax highlight doesn't appear in new ticket preview
93 * Fixed: syntax highlight doesn't appear in new ticket preview
92 * Fixed: email notification for changes I make still occurs when running Repository.fetch_changesets
94 * Fixed: email notification for changes I make still occurs when running Repository.fetch_changesets
93 * Fixed: no error is raised when entering invalid hours on the issue update form
95 * Fixed: no error is raised when entering invalid hours on the issue update form
94 * Fixed: Details time log report CSV export doesn't honour date format from settings
96 * Fixed: Details time log report CSV export doesn't honour date format from settings
95 * Fixed: invalid css classes on issue details
97 * Fixed: invalid css classes on issue details
96 * Fixed: Trac importer creates duplicate custom values
98 * Fixed: Trac importer creates duplicate custom values
97 * Fixed: inline attached image should not match partial filename
99 * Fixed: inline attached image should not match partial filename
98
100
99
101
100 == 2008-12-30 v0.8.0
102 == 2008-12-30 v0.8.0
101
103
102 * Setting added in order to limit the number of diff lines that should be displayed
104 * Setting added in order to limit the number of diff lines that should be displayed
103 * Makes logged-in username in topbar linking to
105 * Makes logged-in username in topbar linking to
104 * Mail handler: strip tags when receiving a html-only email
106 * Mail handler: strip tags when receiving a html-only email
105 * Mail handler: add watchers before sending notification
107 * Mail handler: add watchers before sending notification
106 * Adds a css class (overdue) to overdue issues on issue lists and detail views
108 * Adds a css class (overdue) to overdue issues on issue lists and detail views
107 * Fixed: project activity truncated after viewing user's activity
109 * Fixed: project activity truncated after viewing user's activity
108 * Fixed: email address entered for password recovery shouldn't be case-sensitive
110 * Fixed: email address entered for password recovery shouldn't be case-sensitive
109 * Fixed: default flag removed when editing a default enumeration
111 * Fixed: default flag removed when editing a default enumeration
110 * Fixed: default category ignored when adding a document
112 * Fixed: default category ignored when adding a document
111 * Fixed: error on repository user mapping when a repository username is blank
113 * Fixed: error on repository user mapping when a repository username is blank
112 * Fixed: Firefox cuts off large diffs
114 * Fixed: Firefox cuts off large diffs
113 * Fixed: CVS browser should not show dead revisions (deleted files)
115 * Fixed: CVS browser should not show dead revisions (deleted files)
114 * Fixed: escape double-quotes in image titles
116 * Fixed: escape double-quotes in image titles
115 * Fixed: escape textarea content when editing a issue note
117 * Fixed: escape textarea content when editing a issue note
116 * Fixed: JS error on context menu with IE
118 * Fixed: JS error on context menu with IE
117 * Fixed: bold syntax around single character in series doesn't work
119 * Fixed: bold syntax around single character in series doesn't work
118 * Fixed several XSS vulnerabilities
120 * Fixed several XSS vulnerabilities
119 * Fixed a SQL injection vulnerability
121 * Fixed a SQL injection vulnerability
120
122
121
123
122 == 2008-12-07 v0.8.0-rc1
124 == 2008-12-07 v0.8.0-rc1
123
125
124 * Wiki page protection
126 * Wiki page protection
125 * Wiki page hierarchy. Parent page can be assigned on the Rename screen
127 * Wiki page hierarchy. Parent page can be assigned on the Rename screen
126 * Adds support for issue creation via email
128 * Adds support for issue creation via email
127 * Adds support for free ticket filtering and custom queries on Gantt chart and calendar
129 * Adds support for free ticket filtering and custom queries on Gantt chart and calendar
128 * Cross-project search
130 * Cross-project search
129 * Ability to search a project and its subprojects
131 * Ability to search a project and its subprojects
130 * Ability to search the projects the user belongs to
132 * Ability to search the projects the user belongs to
131 * Adds custom fields on time entries
133 * Adds custom fields on time entries
132 * Adds boolean and list custom fields for time entries as criteria on time report
134 * Adds boolean and list custom fields for time entries as criteria on time report
133 * Cross-project time reports
135 * Cross-project time reports
134 * Display latest user's activity on account/show view
136 * Display latest user's activity on account/show view
135 * Show last connexion time on user's page
137 * Show last connexion time on user's page
136 * Obfuscates email address on user's account page using javascript
138 * Obfuscates email address on user's account page using javascript
137 * wiki TOC rendered as an unordered list
139 * wiki TOC rendered as an unordered list
138 * Adds the ability to search for a user on the administration users list
140 * Adds the ability to search for a user on the administration users list
139 * Adds the ability to search for a project name or identifier on the administration projects list
141 * Adds the ability to search for a project name or identifier on the administration projects list
140 * Redirect user to the previous page after logging in
142 * Redirect user to the previous page after logging in
141 * Adds a permission 'view wiki edits' so that wiki history can be hidden to certain users
143 * Adds a permission 'view wiki edits' so that wiki history can be hidden to certain users
142 * Adds permissions for viewing the watcher list and adding new watchers on the issue detail view
144 * Adds permissions for viewing the watcher list and adding new watchers on the issue detail view
143 * Adds permissions to let users edit and/or delete their messages
145 * Adds permissions to let users edit and/or delete their messages
144 * Link to activity view when displaying dates
146 * Link to activity view when displaying dates
145 * Hide Redmine version in atom feeds and pdf properties
147 * Hide Redmine version in atom feeds and pdf properties
146 * Maps repository users to Redmine users. Users with same username or email are automatically mapped. Mapping can be manually adjusted in repository settings. Multiple usernames can be mapped to the same Redmine user.
148 * Maps repository users to Redmine users. Users with same username or email are automatically mapped. Mapping can be manually adjusted in repository settings. Multiple usernames can be mapped to the same Redmine user.
147 * Sort users by their display names so that user dropdown lists are sorted alphabetically
149 * Sort users by their display names so that user dropdown lists are sorted alphabetically
148 * Adds estimated hours to issue filters
150 * Adds estimated hours to issue filters
149 * Switch order of current and previous revisions in side-by-side diff
151 * Switch order of current and previous revisions in side-by-side diff
150 * Render the commit changes list as a tree
152 * Render the commit changes list as a tree
151 * Adds watch/unwatch functionality at forum topic level
153 * Adds watch/unwatch functionality at forum topic level
152 * When moving an issue to another project, reassign it to the category with same name if any
154 * When moving an issue to another project, reassign it to the category with same name if any
153 * Adds child_pages macro for wiki pages
155 * Adds child_pages macro for wiki pages
154 * Use GET instead of POST on roadmap (#718), gantt and calendar forms
156 * Use GET instead of POST on roadmap (#718), gantt and calendar forms
155 * Search engine: display total results count and count by result type
157 * Search engine: display total results count and count by result type
156 * Email delivery configuration moved to an unversioned YAML file (config/email.yml, see the sample file)
158 * Email delivery configuration moved to an unversioned YAML file (config/email.yml, see the sample file)
157 * Adds icons on search results
159 * Adds icons on search results
158 * Adds 'Edit' link on account/show for admin users
160 * Adds 'Edit' link on account/show for admin users
159 * Adds Lock/Unlock/Activate link on user edit screen
161 * Adds Lock/Unlock/Activate link on user edit screen
160 * Adds user count in status drop down on admin user list
162 * Adds user count in status drop down on admin user list
161 * Adds multi-levels blockquotes support by using > at the beginning of lines
163 * Adds multi-levels blockquotes support by using > at the beginning of lines
162 * Adds a Reply link to each issue note
164 * Adds a Reply link to each issue note
163 * Adds plain text only option for mail notifications
165 * Adds plain text only option for mail notifications
164 * Gravatar support for issue detail, user grid, and activity stream (disabled by default)
166 * Gravatar support for issue detail, user grid, and activity stream (disabled by default)
165 * Adds 'Delete wiki pages attachments' permission
167 * Adds 'Delete wiki pages attachments' permission
166 * Show the most recent file when displaying an inline image
168 * Show the most recent file when displaying an inline image
167 * Makes permission screens localized
169 * Makes permission screens localized
168 * AuthSource list: display associated users count and disable 'Delete' buton if any
170 * AuthSource list: display associated users count and disable 'Delete' buton if any
169 * Make the 'duplicates of' relation asymmetric
171 * Make the 'duplicates of' relation asymmetric
170 * Adds username to the password reminder email
172 * Adds username to the password reminder email
171 * Adds links to forum messages using message#id syntax
173 * Adds links to forum messages using message#id syntax
172 * Allow same name for custom fields on different object types
174 * Allow same name for custom fields on different object types
173 * One-click bulk edition using the issue list context menu within the same project
175 * One-click bulk edition using the issue list context menu within the same project
174 * Adds support for commit logs reencoding to UTF-8 before insertion in the database. Source encoding of commit logs can be selected in Application settings -> Repositories.
176 * Adds support for commit logs reencoding to UTF-8 before insertion in the database. Source encoding of commit logs can be selected in Application settings -> Repositories.
175 * Adds checkboxes toggle links on permissions report
177 * Adds checkboxes toggle links on permissions report
176 * Adds Trac-Like anchors on wiki headings
178 * Adds Trac-Like anchors on wiki headings
177 * Adds support for wiki links with anchor
179 * Adds support for wiki links with anchor
178 * Adds category to the issue context menu
180 * Adds category to the issue context menu
179 * Adds a workflow overview screen
181 * Adds a workflow overview screen
180 * Appends the filename to the attachment url so that clients that ignore content-disposition http header get the real filename
182 * Appends the filename to the attachment url so that clients that ignore content-disposition http header get the real filename
181 * Dots allowed in custom field name
183 * Dots allowed in custom field name
182 * Adds posts quoting functionality
184 * Adds posts quoting functionality
183 * Adds an option to generate sequential project identifiers
185 * Adds an option to generate sequential project identifiers
184 * Adds mailto link on the user administration list
186 * Adds mailto link on the user administration list
185 * Ability to remove enumerations (activities, priorities, document categories) that are in use. Associated objects can be reassigned to another value
187 * Ability to remove enumerations (activities, priorities, document categories) that are in use. Associated objects can be reassigned to another value
186 * Gantt chart: display issues that don't have a due date if they are assigned to a version with a date
188 * Gantt chart: display issues that don't have a due date if they are assigned to a version with a date
187 * Change projects homepage limit to 255 chars
189 * Change projects homepage limit to 255 chars
188 * Improved on-the-fly account creation. If some attributes are missing (eg. not present in the LDAP) or are invalid, the registration form is displayed so that the user is able to fill or fix these attributes
190 * Improved on-the-fly account creation. If some attributes are missing (eg. not present in the LDAP) or are invalid, the registration form is displayed so that the user is able to fill or fix these attributes
189 * Adds "please select" to activity select box if no activity is set as default
191 * Adds "please select" to activity select box if no activity is set as default
190 * Do not silently ignore timelog validation failure on issue edit
192 * Do not silently ignore timelog validation failure on issue edit
191 * Adds a rake task to send reminder emails
193 * Adds a rake task to send reminder emails
192 * Allow empty cells in wiki tables
194 * Allow empty cells in wiki tables
193 * Makes wiki text formatter pluggable
195 * Makes wiki text formatter pluggable
194 * Adds back textile acronyms support
196 * Adds back textile acronyms support
195 * Remove pre tag attributes
197 * Remove pre tag attributes
196 * Plugin hooks
198 * Plugin hooks
197 * Pluggable admin menu
199 * Pluggable admin menu
198 * Plugins can provide activity content
200 * Plugins can provide activity content
199 * Moves plugin list to its own administration menu item
201 * Moves plugin list to its own administration menu item
200 * Adds url and author_url plugin attributes
202 * Adds url and author_url plugin attributes
201 * Adds Plugin#requires_redmine method so that plugin compatibility can be checked against current Redmine version
203 * Adds Plugin#requires_redmine method so that plugin compatibility can be checked against current Redmine version
202 * Adds atom feed on time entries details
204 * Adds atom feed on time entries details
203 * Adds project name to issues feed title
205 * Adds project name to issues feed title
204 * Adds a css class on menu items in order to apply item specific styles (eg. icons)
206 * Adds a css class on menu items in order to apply item specific styles (eg. icons)
205 * Adds a Redmine plugin generators
207 * Adds a Redmine plugin generators
206 * Adds timelog link to the issue context menu
208 * Adds timelog link to the issue context menu
207 * Adds links to the user page on various views
209 * Adds links to the user page on various views
208 * Turkish translation by Ismail Sezen
210 * Turkish translation by Ismail Sezen
209 * Catalan translation
211 * Catalan translation
210 * Vietnamese translation
212 * Vietnamese translation
211 * Slovak translation
213 * Slovak translation
212 * Better naming of activity feed if only one kind of event is displayed
214 * Better naming of activity feed if only one kind of event is displayed
213 * Enable syntax highlight on issues, messages and news
215 * Enable syntax highlight on issues, messages and news
214 * Add target version to the issue list context menu
216 * Add target version to the issue list context menu
215 * Hide 'Target version' filter if no version is defined
217 * Hide 'Target version' filter if no version is defined
216 * Add filters on cross-project issue list for custom fields marked as 'For all projects'
218 * Add filters on cross-project issue list for custom fields marked as 'For all projects'
217 * Turn ftp urls into links
219 * Turn ftp urls into links
218 * Hiding the View Differences button when a wiki page's history only has one version
220 * Hiding the View Differences button when a wiki page's history only has one version
219 * Messages on a Board can now be sorted by the number of replies
221 * Messages on a Board can now be sorted by the number of replies
220 * Adds a class ('me') to events of the activity view created by current user
222 * Adds a class ('me') to events of the activity view created by current user
221 * Strip pre/code tags content from activity view events
223 * Strip pre/code tags content from activity view events
222 * Display issue notes in the activity view
224 * Display issue notes in the activity view
223 * Adds links to changesets atom feed on repository browser
225 * Adds links to changesets atom feed on repository browser
224 * Track project and tracker changes in issue history
226 * Track project and tracker changes in issue history
225 * Adds anchor to atom feed messages links
227 * Adds anchor to atom feed messages links
226 * Adds a key in lang files to set the decimal separator (point or comma) in csv exports
228 * Adds a key in lang files to set the decimal separator (point or comma) in csv exports
227 * Makes importer work with Trac 0.8.x
229 * Makes importer work with Trac 0.8.x
228 * Upgraded to Prototype 1.6.0.1
230 * Upgraded to Prototype 1.6.0.1
229 * File viewer for attached text files
231 * File viewer for attached text files
230 * Menu mapper: add support for :before, :after and :last options to #push method and add #delete method
232 * Menu mapper: add support for :before, :after and :last options to #push method and add #delete method
231 * Removed inconsistent revision numbers on diff view
233 * Removed inconsistent revision numbers on diff view
232 * CVS: add support for modules names with spaces
234 * CVS: add support for modules names with spaces
233 * Log the user in after registration if account activation is not needed
235 * Log the user in after registration if account activation is not needed
234 * Mercurial adapter improvements
236 * Mercurial adapter improvements
235 * Trac importer: read session_attribute table to find user's email and real name
237 * Trac importer: read session_attribute table to find user's email and real name
236 * Ability to disable unused SCM adapters in application settings
238 * Ability to disable unused SCM adapters in application settings
237 * Adds Filesystem adapter
239 * Adds Filesystem adapter
238 * Clear changesets and changes with raw sql when deleting a repository for performance
240 * Clear changesets and changes with raw sql when deleting a repository for performance
239 * Redmine.pm now uses the 'commit access' permission defined in Redmine
241 * Redmine.pm now uses the 'commit access' permission defined in Redmine
240 * Reposman can create any type of scm (--scm option)
242 * Reposman can create any type of scm (--scm option)
241 * Reposman creates a repository if the 'repository' module is enabled at project level only
243 * Reposman creates a repository if the 'repository' module is enabled at project level only
242 * Display svn properties in the browser, svn >= 1.5.0 only
244 * Display svn properties in the browser, svn >= 1.5.0 only
243 * Reduces memory usage when importing large git repositories
245 * Reduces memory usage when importing large git repositories
244 * Wider SVG graphs in repository stats
246 * Wider SVG graphs in repository stats
245 * SubversionAdapter#entries performance improvement
247 * SubversionAdapter#entries performance improvement
246 * SCM browser: ability to download raw unified diffs
248 * SCM browser: ability to download raw unified diffs
247 * More detailed error message in log when scm command fails
249 * More detailed error message in log when scm command fails
248 * Adds support for file viewing with Darcs 2.0+
250 * Adds support for file viewing with Darcs 2.0+
249 * Check that git changeset is not in the database before creating it
251 * Check that git changeset is not in the database before creating it
250 * Unified diff viewer for attached files with .patch or .diff extension
252 * Unified diff viewer for attached files with .patch or .diff extension
251 * File size display with Bazaar repositories
253 * File size display with Bazaar repositories
252 * Git adapter: use commit time instead of author time
254 * Git adapter: use commit time instead of author time
253 * Prettier url for changesets
255 * Prettier url for changesets
254 * Makes changes link to entries on the revision view
256 * Makes changes link to entries on the revision view
255 * Adds a field on the repository view to browse at specific revision
257 * Adds a field on the repository view to browse at specific revision
256 * Adds new projects atom feed
258 * Adds new projects atom feed
257 * Added rake tasks to generate rcov code coverage reports
259 * Added rake tasks to generate rcov code coverage reports
258 * Add Redcloth's :block_markdown_rule to allow horizontal rules in wiki
260 * Add Redcloth's :block_markdown_rule to allow horizontal rules in wiki
259 * Show the project hierarchy in the drop down list for new membership on user administration screen
261 * Show the project hierarchy in the drop down list for new membership on user administration screen
260 * Split user edit screen into tabs
262 * Split user edit screen into tabs
261 * Renames bundled RedCloth to RedCloth3 to avoid RedCloth 4 to be loaded instead
263 * Renames bundled RedCloth to RedCloth3 to avoid RedCloth 4 to be loaded instead
262 * Fixed: Roadmap crashes when a version has a due date > 2037
264 * Fixed: Roadmap crashes when a version has a due date > 2037
263 * Fixed: invalid effective date (eg. 99999-01-01) causes an error on version edition screen
265 * Fixed: invalid effective date (eg. 99999-01-01) causes an error on version edition screen
264 * Fixed: login filter providing incorrect back_url for Redmine installed in sub-directory
266 * Fixed: login filter providing incorrect back_url for Redmine installed in sub-directory
265 * Fixed: logtime entry duplicated when edited from parent project
267 * Fixed: logtime entry duplicated when edited from parent project
266 * Fixed: wrong digest for text files under Windows
268 * Fixed: wrong digest for text files under Windows
267 * Fixed: associated revisions are displayed in wrong order on issue view
269 * Fixed: associated revisions are displayed in wrong order on issue view
268 * Fixed: Git Adapter date parsing ignores timezone
270 * Fixed: Git Adapter date parsing ignores timezone
269 * Fixed: Printing long roadmap doesn't split across pages
271 * Fixed: Printing long roadmap doesn't split across pages
270 * Fixes custom fields display order at several places
272 * Fixes custom fields display order at several places
271 * Fixed: urls containing @ are parsed as email adress by the wiki formatter
273 * Fixed: urls containing @ are parsed as email adress by the wiki formatter
272 * Fixed date filters accuracy with SQLite
274 * Fixed date filters accuracy with SQLite
273 * Fixed: tokens not escaped in highlight_tokens regexp
275 * Fixed: tokens not escaped in highlight_tokens regexp
274 * Fixed Bazaar shared repository browsing
276 * Fixed Bazaar shared repository browsing
275 * Fixes platform determination under JRuby
277 * Fixes platform determination under JRuby
276 * Fixed: Estimated time in issue's journal should be rounded to two decimals
278 * Fixed: Estimated time in issue's journal should be rounded to two decimals
277 * Fixed: 'search titles only' box ignored after one search is done on titles only
279 * Fixed: 'search titles only' box ignored after one search is done on titles only
278 * Fixed: non-ASCII subversion path can't be displayed
280 * Fixed: non-ASCII subversion path can't be displayed
279 * Fixed: Inline images don't work if file name has upper case letters or if image is in BMP format
281 * Fixed: Inline images don't work if file name has upper case letters or if image is in BMP format
280 * Fixed: document listing shows on "my page" when viewing documents is disabled for the role
282 * Fixed: document listing shows on "my page" when viewing documents is disabled for the role
281 * Fixed: Latest news appear on the homepage for projects with the News module disabled
283 * Fixed: Latest news appear on the homepage for projects with the News module disabled
282 * Fixed: cross-project issue list should not show issues of projects for which the issue tracking module was disabled
284 * Fixed: cross-project issue list should not show issues of projects for which the issue tracking module was disabled
283 * Fixed: the default status is lost when reordering issue statuses
285 * Fixed: the default status is lost when reordering issue statuses
284 * Fixes error with Postgresql and non-UTF8 commit logs
286 * Fixes error with Postgresql and non-UTF8 commit logs
285 * Fixed: textile footnotes no longer work
287 * Fixed: textile footnotes no longer work
286 * Fixed: http links containing parentheses fail to reder correctly
288 * Fixed: http links containing parentheses fail to reder correctly
287 * Fixed: GitAdapter#get_rev should use current branch instead of hardwiring master
289 * Fixed: GitAdapter#get_rev should use current branch instead of hardwiring master
288
290
289
291
290 == 2008-07-06 v0.7.3
292 == 2008-07-06 v0.7.3
291
293
292 * Allow dot in firstnames and lastnames
294 * Allow dot in firstnames and lastnames
293 * Add project name to cross-project Atom feeds
295 * Add project name to cross-project Atom feeds
294 * Encoding set to utf8 in example database.yml
296 * Encoding set to utf8 in example database.yml
295 * HTML titles on forums related views
297 * HTML titles on forums related views
296 * Fixed: various XSS vulnerabilities
298 * Fixed: various XSS vulnerabilities
297 * Fixed: Entourage (and some old client) fails to correctly render notification styles
299 * Fixed: Entourage (and some old client) fails to correctly render notification styles
298 * Fixed: Fixed: timelog redirects inappropriately when :back_url is blank
300 * Fixed: Fixed: timelog redirects inappropriately when :back_url is blank
299 * Fixed: wrong relative paths to images in wiki_syntax.html
301 * Fixed: wrong relative paths to images in wiki_syntax.html
300
302
301
303
302 == 2008-06-15 v0.7.2
304 == 2008-06-15 v0.7.2
303
305
304 * "New Project" link on Projects page
306 * "New Project" link on Projects page
305 * Links to repository directories on the repo browser
307 * Links to repository directories on the repo browser
306 * Move status to front in Activity View
308 * Move status to front in Activity View
307 * Remove edit step from Status context menu
309 * Remove edit step from Status context menu
308 * Fixed: No way to do textile horizontal rule
310 * Fixed: No way to do textile horizontal rule
309 * Fixed: Repository: View differences doesn't work
311 * Fixed: Repository: View differences doesn't work
310 * Fixed: attachement's name maybe invalid.
312 * Fixed: attachement's name maybe invalid.
311 * Fixed: Error when creating a new issue
313 * Fixed: Error when creating a new issue
312 * Fixed: NoMethodError on @available_filters.has_key?
314 * Fixed: NoMethodError on @available_filters.has_key?
313 * Fixed: Check All / Uncheck All in Email Settings
315 * Fixed: Check All / Uncheck All in Email Settings
314 * Fixed: "View differences" of one file at /repositories/revision/ fails
316 * Fixed: "View differences" of one file at /repositories/revision/ fails
315 * Fixed: Column width in "my page"
317 * Fixed: Column width in "my page"
316 * Fixed: private subprojects are listed on Issues view
318 * Fixed: private subprojects are listed on Issues view
317 * Fixed: Textile: bold, italics, underline, etc... not working after parentheses
319 * Fixed: Textile: bold, italics, underline, etc... not working after parentheses
318 * Fixed: Update issue form: comment field from log time end out of screen
320 * Fixed: Update issue form: comment field from log time end out of screen
319 * Fixed: Editing role: "issue can be assigned to this role" out of box
321 * Fixed: Editing role: "issue can be assigned to this role" out of box
320 * Fixed: Unable use angular braces after include word
322 * Fixed: Unable use angular braces after include word
321 * Fixed: Using '*' as keyword for repository referencing keywords doesn't work
323 * Fixed: Using '*' as keyword for repository referencing keywords doesn't work
322 * Fixed: Subversion repository "View differences" on each file rise ERROR
324 * Fixed: Subversion repository "View differences" on each file rise ERROR
323 * Fixed: View differences for individual file of a changeset fails if the repository URL doesn't point to the repository root
325 * Fixed: View differences for individual file of a changeset fails if the repository URL doesn't point to the repository root
324 * Fixed: It is possible to lock out the last admin account
326 * Fixed: It is possible to lock out the last admin account
325 * Fixed: Wikis are viewable for anonymous users on public projects, despite not granting access
327 * Fixed: Wikis are viewable for anonymous users on public projects, despite not granting access
326 * Fixed: Issue number display clipped on 'my issues'
328 * Fixed: Issue number display clipped on 'my issues'
327 * Fixed: Roadmap version list links not carrying state
329 * Fixed: Roadmap version list links not carrying state
328 * Fixed: Log Time fieldset in IssueController#edit doesn't set default Activity as default
330 * Fixed: Log Time fieldset in IssueController#edit doesn't set default Activity as default
329 * Fixed: git's "get_rev" API should use repo's current branch instead of hardwiring "master"
331 * Fixed: git's "get_rev" API should use repo's current branch instead of hardwiring "master"
330 * Fixed: browser's language subcodes ignored
332 * Fixed: browser's language subcodes ignored
331 * Fixed: Error on project selection with numeric (only) identifier.
333 * Fixed: Error on project selection with numeric (only) identifier.
332 * Fixed: Link to PDF doesn't work after creating new issue
334 * Fixed: Link to PDF doesn't work after creating new issue
333 * Fixed: "Replies" should not be shown on forum threads that are locked
335 * Fixed: "Replies" should not be shown on forum threads that are locked
334 * Fixed: SVN errors lead to svn username/password being displayed to end users (security issue)
336 * Fixed: SVN errors lead to svn username/password being displayed to end users (security issue)
335 * Fixed: http links containing hashes don't display correct
337 * Fixed: http links containing hashes don't display correct
336 * Fixed: Allow ampersands in Enumeration names
338 * Fixed: Allow ampersands in Enumeration names
337 * Fixed: Atom link on saved query does not include query_id
339 * Fixed: Atom link on saved query does not include query_id
338 * Fixed: Logtime info lost when there's an error updating an issue
340 * Fixed: Logtime info lost when there's an error updating an issue
339 * Fixed: TOC does not parse colorization markups
341 * Fixed: TOC does not parse colorization markups
340 * Fixed: CVS: add support for modules names with spaces
342 * Fixed: CVS: add support for modules names with spaces
341 * Fixed: Bad rendering on projects/add
343 * Fixed: Bad rendering on projects/add
342 * Fixed: exception when viewing differences on cvs
344 * Fixed: exception when viewing differences on cvs
343 * Fixed: export issue to pdf will messup when use Chinese language
345 * Fixed: export issue to pdf will messup when use Chinese language
344 * Fixed: Redmine::Scm::Adapters::GitAdapter#get_rev ignored GIT_BIN constant
346 * Fixed: Redmine::Scm::Adapters::GitAdapter#get_rev ignored GIT_BIN constant
345 * Fixed: Adding non-ASCII new issue type in the New Issue page have encoding error using IE
347 * Fixed: Adding non-ASCII new issue type in the New Issue page have encoding error using IE
346 * Fixed: Importing from trac : some wiki links are messed
348 * Fixed: Importing from trac : some wiki links are messed
347 * Fixed: Incorrect weekend definition in Hebrew calendar locale
349 * Fixed: Incorrect weekend definition in Hebrew calendar locale
348 * Fixed: Atom feeds don't provide author section for repository revisions
350 * Fixed: Atom feeds don't provide author section for repository revisions
349 * Fixed: In Activity views, changesets titles can be multiline while they should not
351 * Fixed: In Activity views, changesets titles can be multiline while they should not
350 * Fixed: Ignore unreadable subversion directories (read disabled using authz)
352 * Fixed: Ignore unreadable subversion directories (read disabled using authz)
351 * Fixed: lib/SVG/Graph/Graph.rb can't externalize stylesheets
353 * Fixed: lib/SVG/Graph/Graph.rb can't externalize stylesheets
352 * Fixed: Close statement handler in Redmine.pm
354 * Fixed: Close statement handler in Redmine.pm
353
355
354
356
355 == 2008-05-04 v0.7.1
357 == 2008-05-04 v0.7.1
356
358
357 * Thai translation added (Gampol Thitinilnithi)
359 * Thai translation added (Gampol Thitinilnithi)
358 * Translations updates
360 * Translations updates
359 * Escape HTML comment tags
361 * Escape HTML comment tags
360 * Prevent "can't convert nil into String" error when :sort_order param is not present
362 * Prevent "can't convert nil into String" error when :sort_order param is not present
361 * Fixed: Updating tickets add a time log with zero hours
363 * Fixed: Updating tickets add a time log with zero hours
362 * Fixed: private subprojects names are revealed on the project overview
364 * Fixed: private subprojects names are revealed on the project overview
363 * Fixed: Search for target version of "none" fails with postgres 8.3
365 * Fixed: Search for target version of "none" fails with postgres 8.3
364 * Fixed: Home, Logout, Login links shouldn't be absolute links
366 * Fixed: Home, Logout, Login links shouldn't be absolute links
365 * Fixed: 'Latest projects' box on the welcome screen should be hidden if there are no projects
367 * Fixed: 'Latest projects' box on the welcome screen should be hidden if there are no projects
366 * Fixed: error when using upcase language name in coderay
368 * Fixed: error when using upcase language name in coderay
367 * Fixed: error on Trac import when :due attribute is nil
369 * Fixed: error on Trac import when :due attribute is nil
368
370
369
371
370 == 2008-04-28 v0.7.0
372 == 2008-04-28 v0.7.0
371
373
372 * Forces Redmine to use rails 2.0.2 gem when vendor/rails is not present
374 * Forces Redmine to use rails 2.0.2 gem when vendor/rails is not present
373 * Queries can be marked as 'For all projects'. Such queries will be available on all projects and on the global issue list.
375 * Queries can be marked as 'For all projects'. Such queries will be available on all projects and on the global issue list.
374 * Add predefined date ranges to the time report
376 * Add predefined date ranges to the time report
375 * Time report can be done at issue level
377 * Time report can be done at issue level
376 * Various timelog report enhancements
378 * Various timelog report enhancements
377 * Accept the following formats for "hours" field: 1h, 1 h, 1 hour, 2 hours, 30m, 30min, 1h30, 1h30m, 1:30
379 * Accept the following formats for "hours" field: 1h, 1 h, 1 hour, 2 hours, 30m, 30min, 1h30, 1h30m, 1:30
378 * Display the context menu above and/or to the left of the click if needed
380 * Display the context menu above and/or to the left of the click if needed
379 * Make the admin project files list sortable
381 * Make the admin project files list sortable
380 * Mercurial: display working directory files sizes unless browsing a specific revision
382 * Mercurial: display working directory files sizes unless browsing a specific revision
381 * Preserve status filter and page number when using lock/unlock/activate links on the users list
383 * Preserve status filter and page number when using lock/unlock/activate links on the users list
382 * Redmine.pm support for LDAP authentication
384 * Redmine.pm support for LDAP authentication
383 * Better error message and AR errors in log for failed LDAP on-the-fly user creation
385 * Better error message and AR errors in log for failed LDAP on-the-fly user creation
384 * Redirected user to where he is coming from after logging hours
386 * Redirected user to where he is coming from after logging hours
385 * Warn user that subprojects are also deleted when deleting a project
387 * Warn user that subprojects are also deleted when deleting a project
386 * Include subprojects versions on calendar and gantt
388 * Include subprojects versions on calendar and gantt
387 * Notify project members when a message is posted if they want to receive notifications
389 * Notify project members when a message is posted if they want to receive notifications
388 * Fixed: Feed content limit setting has no effect
390 * Fixed: Feed content limit setting has no effect
389 * Fixed: Priorities not ordered when displayed as a filter in issue list
391 * Fixed: Priorities not ordered when displayed as a filter in issue list
390 * Fixed: can not display attached images inline in message replies
392 * Fixed: can not display attached images inline in message replies
391 * Fixed: Boards are not deleted when project is deleted
393 * Fixed: Boards are not deleted when project is deleted
392 * Fixed: trying to preview a new issue raises an exception with postgresql
394 * Fixed: trying to preview a new issue raises an exception with postgresql
393 * Fixed: single file 'View difference' links do not work because of duplicate slashes in url
395 * Fixed: single file 'View difference' links do not work because of duplicate slashes in url
394 * Fixed: inline image not displayed when including a wiki page
396 * Fixed: inline image not displayed when including a wiki page
395 * Fixed: CVS duplicate key violation
397 * Fixed: CVS duplicate key violation
396 * Fixed: ActiveRecord::StaleObjectError exception on closing a set of circular duplicate issues
398 * Fixed: ActiveRecord::StaleObjectError exception on closing a set of circular duplicate issues
397 * Fixed: custom field filters behaviour
399 * Fixed: custom field filters behaviour
398 * Fixed: Postgresql 8.3 compatibility
400 * Fixed: Postgresql 8.3 compatibility
399 * Fixed: Links to repository directories don't work
401 * Fixed: Links to repository directories don't work
400
402
401
403
402 == 2008-03-29 v0.7.0-rc1
404 == 2008-03-29 v0.7.0-rc1
403
405
404 * Overall activity view and feed added, link is available on the project list
406 * Overall activity view and feed added, link is available on the project list
405 * Git VCS support
407 * Git VCS support
406 * Rails 2.0 sessions cookie store compatibility
408 * Rails 2.0 sessions cookie store compatibility
407 * Use project identifiers in urls instead of ids
409 * Use project identifiers in urls instead of ids
408 * Default configuration data can now be loaded from the administration screen
410 * Default configuration data can now be loaded from the administration screen
409 * Administration settings screen split to tabs (email notifications options moved to 'Settings')
411 * Administration settings screen split to tabs (email notifications options moved to 'Settings')
410 * Project description is now unlimited and optional
412 * Project description is now unlimited and optional
411 * Wiki annotate view
413 * Wiki annotate view
412 * Escape HTML tag in textile content
414 * Escape HTML tag in textile content
413 * Add Redmine links to documents, versions, attachments and repository files
415 * Add Redmine links to documents, versions, attachments and repository files
414 * New setting to specify how many objects should be displayed on paginated lists. There are 2 ways to select a set of issues on the issue list:
416 * New setting to specify how many objects should be displayed on paginated lists. There are 2 ways to select a set of issues on the issue list:
415 * by using checkbox and/or the little pencil that will select/unselect all issues
417 * by using checkbox and/or the little pencil that will select/unselect all issues
416 * by clicking on the rows (but not on the links), Ctrl and Shift keys can be used to select multiple issues
418 * by clicking on the rows (but not on the links), Ctrl and Shift keys can be used to select multiple issues
417 * Context menu disabled on links so that the default context menu of the browser is displayed when right-clicking on a link (click anywhere else on the row to display the context menu)
419 * Context menu disabled on links so that the default context menu of the browser is displayed when right-clicking on a link (click anywhere else on the row to display the context menu)
418 * User display format is now configurable in administration settings
420 * User display format is now configurable in administration settings
419 * Issue list now supports bulk edit/move/delete (for a set of issues that belong to the same project)
421 * Issue list now supports bulk edit/move/delete (for a set of issues that belong to the same project)
420 * Merged 'change status', 'edit issue' and 'add note' actions:
422 * Merged 'change status', 'edit issue' and 'add note' actions:
421 * Users with 'edit issues' permission can now update any property including custom fields when adding a note or changing the status
423 * Users with 'edit issues' permission can now update any property including custom fields when adding a note or changing the status
422 * 'Change issue status' permission removed. To change an issue status, a user just needs to have either 'Edit' or 'Add note' permissions and some workflow transitions allowed
424 * 'Change issue status' permission removed. To change an issue status, a user just needs to have either 'Edit' or 'Add note' permissions and some workflow transitions allowed
423 * Details by assignees on issue summary view
425 * Details by assignees on issue summary view
424 * 'New issue' link in the main menu (accesskey 7). The drop-down lists to add an issue on the project overview and the issue list are removed
426 * 'New issue' link in the main menu (accesskey 7). The drop-down lists to add an issue on the project overview and the issue list are removed
425 * Change status select box default to current status
427 * Change status select box default to current status
426 * Preview for issue notes, news and messages
428 * Preview for issue notes, news and messages
427 * Optional description for attachments
429 * Optional description for attachments
428 * 'Fixed version' label changed to 'Target version'
430 * 'Fixed version' label changed to 'Target version'
429 * Let the user choose when deleting issues with reported hours to:
431 * Let the user choose when deleting issues with reported hours to:
430 * delete the hours
432 * delete the hours
431 * assign the hours to the project
433 * assign the hours to the project
432 * reassign the hours to another issue
434 * reassign the hours to another issue
433 * Date range filter and pagination on time entries detail view
435 * Date range filter and pagination on time entries detail view
434 * Propagate time tracking to the parent project
436 * Propagate time tracking to the parent project
435 * Switch added on the project activity view to include subprojects
437 * Switch added on the project activity view to include subprojects
436 * Display total estimated and spent hours on the version detail view
438 * Display total estimated and spent hours on the version detail view
437 * Weekly time tracking block for 'My page'
439 * Weekly time tracking block for 'My page'
438 * Permissions to edit time entries
440 * Permissions to edit time entries
439 * Include subprojects on the issue list, calendar, gantt and timelog by default (can be turned off is administration settings)
441 * Include subprojects on the issue list, calendar, gantt and timelog by default (can be turned off is administration settings)
440 * Roadmap enhancements (separate related issues from wiki contents, leading h1 in version wiki pages is hidden, smaller wiki headings)
442 * Roadmap enhancements (separate related issues from wiki contents, leading h1 in version wiki pages is hidden, smaller wiki headings)
441 * Make versions with same date sorted by name
443 * Make versions with same date sorted by name
442 * Allow issue list to be sorted by target version
444 * Allow issue list to be sorted by target version
443 * Related changesets messages displayed on the issue details view
445 * Related changesets messages displayed on the issue details view
444 * Create a journal and send an email when an issue is closed by commit
446 * Create a journal and send an email when an issue is closed by commit
445 * Add 'Author' to the available columns for the issue list
447 * Add 'Author' to the available columns for the issue list
446 * More appropriate default sort order on sortable columns
448 * More appropriate default sort order on sortable columns
447 * Add issue subject to the time entries view and issue subject, description and tracker to the csv export
449 * Add issue subject to the time entries view and issue subject, description and tracker to the csv export
448 * Permissions to edit issue notes
450 * Permissions to edit issue notes
449 * Display date/time instead of date on files list
451 * Display date/time instead of date on files list
450 * Do not show Roadmap menu item if the project doesn't define any versions
452 * Do not show Roadmap menu item if the project doesn't define any versions
451 * Allow longer version names (60 chars)
453 * Allow longer version names (60 chars)
452 * Ability to copy an existing workflow when creating a new role
454 * Ability to copy an existing workflow when creating a new role
453 * Display custom fields in two columns on the issue form
455 * Display custom fields in two columns on the issue form
454 * Added 'estimated time' in the csv export of the issue list
456 * Added 'estimated time' in the csv export of the issue list
455 * Display the last 30 days on the activity view rather than the current month (number of days can be configured in the application settings)
457 * Display the last 30 days on the activity view rather than the current month (number of days can be configured in the application settings)
456 * Setting for whether new projects should be public by default
458 * Setting for whether new projects should be public by default
457 * User preference to choose how comments/replies are displayed: in chronological or reverse chronological order
459 * User preference to choose how comments/replies are displayed: in chronological or reverse chronological order
458 * Added default value for custom fields
460 * Added default value for custom fields
459 * Added tabindex property on wiki toolbar buttons (to easily move from field to field using the tab key)
461 * Added tabindex property on wiki toolbar buttons (to easily move from field to field using the tab key)
460 * Redirect to issue page after creating a new issue
462 * Redirect to issue page after creating a new issue
461 * Wiki toolbar improvements (mainly for Firefox)
463 * Wiki toolbar improvements (mainly for Firefox)
462 * Display wiki syntax quick ref link on all wiki textareas
464 * Display wiki syntax quick ref link on all wiki textareas
463 * Display links to Atom feeds
465 * Display links to Atom feeds
464 * Breadcrumb nav for the forums
466 * Breadcrumb nav for the forums
465 * Show replies when choosing to display messages in the activity
467 * Show replies when choosing to display messages in the activity
466 * Added 'include' macro to include another wiki page
468 * Added 'include' macro to include another wiki page
467 * RedmineWikiFormatting page available as a static HTML file locally
469 * RedmineWikiFormatting page available as a static HTML file locally
468 * Wrap diff content
470 * Wrap diff content
469 * Strip out email address from authors in repository screens
471 * Strip out email address from authors in repository screens
470 * Highlight the current item of the main menu
472 * Highlight the current item of the main menu
471 * Added simple syntax highlighters for php and java languages
473 * Added simple syntax highlighters for php and java languages
472 * Do not show empty diffs
474 * Do not show empty diffs
473 * Show explicit error message when the scm command failed (eg. when svn binary is not available)
475 * Show explicit error message when the scm command failed (eg. when svn binary is not available)
474 * Lithuanian translation added (Sergej Jegorov)
476 * Lithuanian translation added (Sergej Jegorov)
475 * Ukrainan translation added (Natalia Konovka & Mykhaylo Sorochan)
477 * Ukrainan translation added (Natalia Konovka & Mykhaylo Sorochan)
476 * Danish translation added (Mads Vestergaard)
478 * Danish translation added (Mads Vestergaard)
477 * Added i18n support to the jstoolbar and various settings screen
479 * Added i18n support to the jstoolbar and various settings screen
478 * RedCloth's glyphs no longer user
480 * RedCloth's glyphs no longer user
479 * New icons for the wiki toolbar (from http://www.famfamfam.com/lab/icons/silk/)
481 * New icons for the wiki toolbar (from http://www.famfamfam.com/lab/icons/silk/)
480 * The following menus can now be extended by plugins: top_menu, account_menu, application_menu
482 * The following menus can now be extended by plugins: top_menu, account_menu, application_menu
481 * Added a simple rake task to fetch changesets from the repositories: rake redmine:fetch_changesets
483 * Added a simple rake task to fetch changesets from the repositories: rake redmine:fetch_changesets
482 * Remove hardcoded "Redmine" strings in account related emails and use application title instead
484 * Remove hardcoded "Redmine" strings in account related emails and use application title instead
483 * Mantis importer preserve bug ids
485 * Mantis importer preserve bug ids
484 * Trac importer: Trac guide wiki pages skipped
486 * Trac importer: Trac guide wiki pages skipped
485 * Trac importer: wiki attachments migration added
487 * Trac importer: wiki attachments migration added
486 * Trac importer: support database schema for Trac migration
488 * Trac importer: support database schema for Trac migration
487 * Trac importer: support CamelCase links
489 * Trac importer: support CamelCase links
488 * Removes the Redmine version from the footer (can be viewed on admin -> info)
490 * Removes the Redmine version from the footer (can be viewed on admin -> info)
489 * Rescue and display an error message when trying to delete a role that is in use
491 * Rescue and display an error message when trying to delete a role that is in use
490 * Add various 'X-Redmine' headers to email notifications: X-Redmine-Host, X-Redmine-Site, X-Redmine-Project, X-Redmine-Issue-Id, -Author, -Assignee, X-Redmine-Topic-Id
492 * Add various 'X-Redmine' headers to email notifications: X-Redmine-Host, X-Redmine-Site, X-Redmine-Project, X-Redmine-Issue-Id, -Author, -Assignee, X-Redmine-Topic-Id
491 * Add "--encoding utf8" option to the Mercurial "hg log" command in order to get utf8 encoded commit logs
493 * Add "--encoding utf8" option to the Mercurial "hg log" command in order to get utf8 encoded commit logs
492 * Fixed: Gantt and calendar not properly refreshed (fragment caching removed)
494 * Fixed: Gantt and calendar not properly refreshed (fragment caching removed)
493 * Fixed: Textile image with style attribute cause internal server error
495 * Fixed: Textile image with style attribute cause internal server error
494 * Fixed: wiki TOC not rendered properly when used in an issue or document description
496 * Fixed: wiki TOC not rendered properly when used in an issue or document description
495 * Fixed: 'has already been taken' error message on username and email fields if left empty
497 * Fixed: 'has already been taken' error message on username and email fields if left empty
496 * Fixed: non-ascii attachement filename with IE
498 * Fixed: non-ascii attachement filename with IE
497 * Fixed: wrong url for wiki syntax pop-up when Redmine urls are prefixed
499 * Fixed: wrong url for wiki syntax pop-up when Redmine urls are prefixed
498 * Fixed: search for all words doesn't work
500 * Fixed: search for all words doesn't work
499 * Fixed: Do not show sticky and locked checkboxes when replying to a message
501 * Fixed: Do not show sticky and locked checkboxes when replying to a message
500 * Fixed: Mantis importer: do not duplicate Mantis username in firstname and lastname if realname is blank
502 * Fixed: Mantis importer: do not duplicate Mantis username in firstname and lastname if realname is blank
501 * Fixed: Date custom fields not displayed as specified in application settings
503 * Fixed: Date custom fields not displayed as specified in application settings
502 * Fixed: titles not escaped in the activity view
504 * Fixed: titles not escaped in the activity view
503 * Fixed: issue queries can not use custom fields marked as 'for all projects' in a project context
505 * Fixed: issue queries can not use custom fields marked as 'for all projects' in a project context
504 * Fixed: on calendar, gantt and in the tracker filter on the issue list, only active trackers of the project (and its sub projects) should be available
506 * Fixed: on calendar, gantt and in the tracker filter on the issue list, only active trackers of the project (and its sub projects) should be available
505 * Fixed: locked users should not receive email notifications
507 * Fixed: locked users should not receive email notifications
506 * Fixed: custom field selection is not saved when unchecking them all on project settings
508 * Fixed: custom field selection is not saved when unchecking them all on project settings
507 * Fixed: can not lock a topic when creating it
509 * Fixed: can not lock a topic when creating it
508 * Fixed: Incorrect filtering for unset values when using 'is not' filter
510 * Fixed: Incorrect filtering for unset values when using 'is not' filter
509 * Fixed: PostgreSQL issues_seq_id not updated when using Trac importer
511 * Fixed: PostgreSQL issues_seq_id not updated when using Trac importer
510 * Fixed: ajax pagination does not scroll up
512 * Fixed: ajax pagination does not scroll up
511 * Fixed: error when uploading a file with no content-type specified by the browser
513 * Fixed: error when uploading a file with no content-type specified by the browser
512 * Fixed: wiki and changeset links not displayed when previewing issue description or notes
514 * Fixed: wiki and changeset links not displayed when previewing issue description or notes
513 * Fixed: 'LdapError: no bind result' error when authenticating
515 * Fixed: 'LdapError: no bind result' error when authenticating
514 * Fixed: 'LdapError: invalid binding information' when no username/password are set on the LDAP account
516 * Fixed: 'LdapError: invalid binding information' when no username/password are set on the LDAP account
515 * Fixed: CVS repository doesn't work if port is used in the url
517 * Fixed: CVS repository doesn't work if port is used in the url
516 * Fixed: Email notifications: host name is missing in generated links
518 * Fixed: Email notifications: host name is missing in generated links
517 * Fixed: Email notifications: referenced changesets, wiki pages, attachments... are not turned into links
519 * Fixed: Email notifications: referenced changesets, wiki pages, attachments... are not turned into links
518 * Fixed: Do not clear issue relations when moving an issue to another project if cross-project issue relations are allowed
520 * Fixed: Do not clear issue relations when moving an issue to another project if cross-project issue relations are allowed
519 * Fixed: "undefined method 'textilizable'" error on email notification when running Repository#fetch_changesets from the console
521 * Fixed: "undefined method 'textilizable'" error on email notification when running Repository#fetch_changesets from the console
520 * Fixed: Do not send an email with no recipient, cc or bcc
522 * Fixed: Do not send an email with no recipient, cc or bcc
521 * Fixed: fetch_changesets fails on commit comments that close 2 duplicates issues.
523 * Fixed: fetch_changesets fails on commit comments that close 2 duplicates issues.
522 * Fixed: Mercurial browsing under unix-like os and for directory depth > 2
524 * Fixed: Mercurial browsing under unix-like os and for directory depth > 2
523 * Fixed: Wiki links with pipe can not be used in wiki tables
525 * Fixed: Wiki links with pipe can not be used in wiki tables
524 * Fixed: migrate_from_trac doesn't import timestamps of wiki and tickets
526 * Fixed: migrate_from_trac doesn't import timestamps of wiki and tickets
525 * Fixed: when bulk editing, setting "Assigned to" to "nobody" causes an sql error with Postgresql
527 * Fixed: when bulk editing, setting "Assigned to" to "nobody" causes an sql error with Postgresql
526
528
527
529
528 == 2008-03-12 v0.6.4
530 == 2008-03-12 v0.6.4
529
531
530 * Fixed: private projects name are displayed on account/show even if the current user doesn't have access to these private projects
532 * Fixed: private projects name are displayed on account/show even if the current user doesn't have access to these private projects
531 * Fixed: potential LDAP authentication security flaw
533 * Fixed: potential LDAP authentication security flaw
532 * Fixed: context submenus on the issue list don't show up with IE6.
534 * Fixed: context submenus on the issue list don't show up with IE6.
533 * Fixed: Themes are not applied with Rails 2.0
535 * Fixed: Themes are not applied with Rails 2.0
534 * Fixed: crash when fetching Mercurial changesets if changeset[:files] is nil
536 * Fixed: crash when fetching Mercurial changesets if changeset[:files] is nil
535 * Fixed: Mercurial repository browsing
537 * Fixed: Mercurial repository browsing
536 * Fixed: undefined local variable or method 'log' in CvsAdapter when a cvs command fails
538 * Fixed: undefined local variable or method 'log' in CvsAdapter when a cvs command fails
537 * Fixed: not null constraints not removed with Postgresql
539 * Fixed: not null constraints not removed with Postgresql
538 * Doctype set to transitional
540 * Doctype set to transitional
539
541
540
542
541 == 2007-12-18 v0.6.3
543 == 2007-12-18 v0.6.3
542
544
543 * Fixed: upload doesn't work in 'Files' section
545 * Fixed: upload doesn't work in 'Files' section
544
546
545
547
546 == 2007-12-16 v0.6.2
548 == 2007-12-16 v0.6.2
547
549
548 * Search engine: issue custom fields can now be searched
550 * Search engine: issue custom fields can now be searched
549 * News comments are now textilized
551 * News comments are now textilized
550 * Updated Japanese translation (Satoru Kurashiki)
552 * Updated Japanese translation (Satoru Kurashiki)
551 * Updated Chinese translation (Shortie Lo)
553 * Updated Chinese translation (Shortie Lo)
552 * Fixed Rails 2.0 compatibility bugs:
554 * Fixed Rails 2.0 compatibility bugs:
553 * Unable to create a wiki
555 * Unable to create a wiki
554 * Gantt and calendar error
556 * Gantt and calendar error
555 * Trac importer error (readonly? is defined by ActiveRecord)
557 * Trac importer error (readonly? is defined by ActiveRecord)
556 * Fixed: 'assigned to me' filter broken
558 * Fixed: 'assigned to me' filter broken
557 * Fixed: crash when validation fails on issue edition with no custom fields
559 * Fixed: crash when validation fails on issue edition with no custom fields
558 * Fixed: reposman "can't find group" error
560 * Fixed: reposman "can't find group" error
559 * Fixed: 'LDAP account password is too long' error when leaving the field empty on creation
561 * Fixed: 'LDAP account password is too long' error when leaving the field empty on creation
560 * Fixed: empty lines when displaying repository files with Windows style eol
562 * Fixed: empty lines when displaying repository files with Windows style eol
561 * Fixed: missing body closing tag in repository annotate and entry views
563 * Fixed: missing body closing tag in repository annotate and entry views
562
564
563
565
564 == 2007-12-10 v0.6.1
566 == 2007-12-10 v0.6.1
565
567
566 * Rails 2.0 compatibility
568 * Rails 2.0 compatibility
567 * Custom fields can now be displayed as columns on the issue list
569 * Custom fields can now be displayed as columns on the issue list
568 * Added version details view (accessible from the roadmap)
570 * Added version details view (accessible from the roadmap)
569 * Roadmap: more accurate completion percentage calculation (done ratio of open issues is now taken into account)
571 * Roadmap: more accurate completion percentage calculation (done ratio of open issues is now taken into account)
570 * Added per-project tracker selection. Trackers can be selected on project settings
572 * Added per-project tracker selection. Trackers can be selected on project settings
571 * Anonymous users can now be allowed to create, edit, comment issues, comment news and post messages in the forums
573 * Anonymous users can now be allowed to create, edit, comment issues, comment news and post messages in the forums
572 * Forums: messages can now be edited/deleted (explicit permissions need to be given)
574 * Forums: messages can now be edited/deleted (explicit permissions need to be given)
573 * Forums: topics can be locked so that no reply can be added
575 * Forums: topics can be locked so that no reply can be added
574 * Forums: topics can be marked as sticky so that they always appear at the top of the list
576 * Forums: topics can be marked as sticky so that they always appear at the top of the list
575 * Forums: attachments can now be added to replies
577 * Forums: attachments can now be added to replies
576 * Added time zone support
578 * Added time zone support
577 * Added a setting to choose the account activation strategy (available in application settings)
579 * Added a setting to choose the account activation strategy (available in application settings)
578 * Added 'Classic' theme (inspired from the v0.51 design)
580 * Added 'Classic' theme (inspired from the v0.51 design)
579 * Added an alternate theme which provides issue list colorization based on issues priority
581 * Added an alternate theme which provides issue list colorization based on issues priority
580 * Added Bazaar SCM adapter
582 * Added Bazaar SCM adapter
581 * Added Annotate/Blame view in the repository browser (except for Darcs SCM)
583 * Added Annotate/Blame view in the repository browser (except for Darcs SCM)
582 * Diff style (inline or side by side) automatically saved as a user preference
584 * Diff style (inline or side by side) automatically saved as a user preference
583 * Added issues status changes on the activity view (by Cyril Mougel)
585 * Added issues status changes on the activity view (by Cyril Mougel)
584 * Added forums topics on the activity view (disabled by default)
586 * Added forums topics on the activity view (disabled by default)
585 * Added an option on 'My account' for users who don't want to be notified of changes that they make
587 * Added an option on 'My account' for users who don't want to be notified of changes that they make
586 * Trac importer now supports mysql and postgresql databases
588 * Trac importer now supports mysql and postgresql databases
587 * Trac importer improvements (by Mat Trudel)
589 * Trac importer improvements (by Mat Trudel)
588 * 'fixed version' field can now be displayed on the issue list
590 * 'fixed version' field can now be displayed on the issue list
589 * Added a couple of new formats for the 'date format' setting
591 * Added a couple of new formats for the 'date format' setting
590 * Added Traditional Chinese translation (by Shortie Lo)
592 * Added Traditional Chinese translation (by Shortie Lo)
591 * Added Russian translation (iGor kMeta)
593 * Added Russian translation (iGor kMeta)
592 * Project name format limitation removed (name can now contain any character)
594 * Project name format limitation removed (name can now contain any character)
593 * Project identifier maximum length changed from 12 to 20
595 * Project identifier maximum length changed from 12 to 20
594 * Changed the maximum length of LDAP account to 255 characters
596 * Changed the maximum length of LDAP account to 255 characters
595 * Removed the 12 characters limit on passwords
597 * Removed the 12 characters limit on passwords
596 * Added wiki macros support
598 * Added wiki macros support
597 * Performance improvement on workflow setup screen
599 * Performance improvement on workflow setup screen
598 * More detailed html title on several views
600 * More detailed html title on several views
599 * Custom fields can now be reordered
601 * Custom fields can now be reordered
600 * Search engine: search can be restricted to an exact phrase by using quotation marks
602 * Search engine: search can be restricted to an exact phrase by using quotation marks
601 * Added custom fields marked as 'For all projects' to the csv export of the cross project issue list
603 * Added custom fields marked as 'For all projects' to the csv export of the cross project issue list
602 * Email notifications are now sent as Blind carbon copy by default
604 * Email notifications are now sent as Blind carbon copy by default
603 * Fixed: all members (including non active) should be deleted when deleting a project
605 * Fixed: all members (including non active) should be deleted when deleting a project
604 * Fixed: Error on wiki syntax link (accessible from wiki/edit)
606 * Fixed: Error on wiki syntax link (accessible from wiki/edit)
605 * Fixed: 'quick jump to a revision' form on the revisions list
607 * Fixed: 'quick jump to a revision' form on the revisions list
606 * Fixed: error on admin/info if there's more than 1 plugin installed
608 * Fixed: error on admin/info if there's more than 1 plugin installed
607 * Fixed: svn or ldap password can be found in clear text in the html source in editing mode
609 * Fixed: svn or ldap password can be found in clear text in the html source in editing mode
608 * Fixed: 'Assigned to' drop down list is not sorted
610 * Fixed: 'Assigned to' drop down list is not sorted
609 * Fixed: 'View all issues' link doesn't work on issues/show
611 * Fixed: 'View all issues' link doesn't work on issues/show
610 * Fixed: error on account/register when validation fails
612 * Fixed: error on account/register when validation fails
611 * Fixed: Error when displaying the issue list if a float custom field is marked as 'used as filter'
613 * Fixed: Error when displaying the issue list if a float custom field is marked as 'used as filter'
612 * Fixed: Mercurial adapter breaks on missing :files entry in changeset hash (James Britt)
614 * Fixed: Mercurial adapter breaks on missing :files entry in changeset hash (James Britt)
613 * Fixed: Wrong feed URLs on the home page
615 * Fixed: Wrong feed URLs on the home page
614 * Fixed: Update of time entry fails when the issue has been moved to an other project
616 * Fixed: Update of time entry fails when the issue has been moved to an other project
615 * Fixed: Error when moving an issue without changing its tracker (Postgresql)
617 * Fixed: Error when moving an issue without changing its tracker (Postgresql)
616 * Fixed: Changes not recorded when using :pserver string (CVS adapter)
618 * Fixed: Changes not recorded when using :pserver string (CVS adapter)
617 * Fixed: admin should be able to move issues to any project
619 * Fixed: admin should be able to move issues to any project
618 * Fixed: adding an attachment is not possible when changing the status of an issue
620 * Fixed: adding an attachment is not possible when changing the status of an issue
619 * Fixed: No mime-types in documents/files downloading
621 * Fixed: No mime-types in documents/files downloading
620 * Fixed: error when sorting the messages if there's only one board for the project
622 * Fixed: error when sorting the messages if there's only one board for the project
621 * Fixed: 'me' doesn't appear in the drop down filters on a project issue list.
623 * Fixed: 'me' doesn't appear in the drop down filters on a project issue list.
622
624
623 == 2007-11-04 v0.6.0
625 == 2007-11-04 v0.6.0
624
626
625 * Permission model refactoring.
627 * Permission model refactoring.
626 * Permissions: there are now 2 builtin roles that can be used to specify permissions given to other users than members of projects
628 * Permissions: there are now 2 builtin roles that can be used to specify permissions given to other users than members of projects
627 * Permissions: some permissions (eg. browse the repository) can be removed for certain roles
629 * Permissions: some permissions (eg. browse the repository) can be removed for certain roles
628 * Permissions: modules (eg. issue tracking, news, documents...) can be enabled/disabled at project level
630 * Permissions: modules (eg. issue tracking, news, documents...) can be enabled/disabled at project level
629 * Added Mantis and Trac importers
631 * Added Mantis and Trac importers
630 * New application layout
632 * New application layout
631 * Added "Bulk edit" functionality on the issue list
633 * Added "Bulk edit" functionality on the issue list
632 * More flexible mail notifications settings at user level
634 * More flexible mail notifications settings at user level
633 * Added AJAX based context menu on the project issue list that provide shortcuts for editing, re-assigning, changing the status or the priority, moving or deleting an issue
635 * Added AJAX based context menu on the project issue list that provide shortcuts for editing, re-assigning, changing the status or the priority, moving or deleting an issue
634 * Added the hability to copy an issue. It can be done from the "issue/show" view or from the context menu on the issue list
636 * Added the hability to copy an issue. It can be done from the "issue/show" view or from the context menu on the issue list
635 * Added the ability to customize issue list columns (at application level or for each saved query)
637 * Added the ability to customize issue list columns (at application level or for each saved query)
636 * Overdue versions (date reached and open issues > 0) are now always displayed on the roadmap
638 * Overdue versions (date reached and open issues > 0) are now always displayed on the roadmap
637 * Added the ability to rename wiki pages (specific permission required)
639 * Added the ability to rename wiki pages (specific permission required)
638 * Search engines now supports pagination. Results are sorted in reverse chronological order
640 * Search engines now supports pagination. Results are sorted in reverse chronological order
639 * Added "Estimated hours" attribute on issues
641 * Added "Estimated hours" attribute on issues
640 * A category with assigned issue can now be deleted. 2 options are proposed: remove assignments or reassign issues to another category
642 * A category with assigned issue can now be deleted. 2 options are proposed: remove assignments or reassign issues to another category
641 * Forum notifications are now also sent to the authors of the thread, even if they donοΏ½t watch the board
643 * Forum notifications are now also sent to the authors of the thread, even if they donοΏ½t watch the board
642 * Added an application setting to specify the application protocol (http or https) used to generate urls in emails
644 * Added an application setting to specify the application protocol (http or https) used to generate urls in emails
643 * Gantt chart: now starts at the current month by default
645 * Gantt chart: now starts at the current month by default
644 * Gantt chart: month count and zoom factor are automatically saved as user preferences
646 * Gantt chart: month count and zoom factor are automatically saved as user preferences
645 * Wiki links can now refer to other project wikis
647 * Wiki links can now refer to other project wikis
646 * Added wiki index by date
648 * Added wiki index by date
647 * Added preview on add/edit issue form
649 * Added preview on add/edit issue form
648 * Emails footer can now be customized from the admin interface (Admin -> Email notifications)
650 * Emails footer can now be customized from the admin interface (Admin -> Email notifications)
649 * Default encodings for repository files can now be set in application settings (used to convert files content and diff to UTF-8 so that theyοΏ½re properly displayed)
651 * Default encodings for repository files can now be set in application settings (used to convert files content and diff to UTF-8 so that theyοΏ½re properly displayed)
650 * Calendar: first day of week can now be set in lang files
652 * Calendar: first day of week can now be set in lang files
651 * Automatic closing of duplicate issues
653 * Automatic closing of duplicate issues
652 * Added a cross-project issue list
654 * Added a cross-project issue list
653 * AJAXified the SCM browser (tree view)
655 * AJAXified the SCM browser (tree view)
654 * Pretty URL for the repository browser (Cyril Mougel)
656 * Pretty URL for the repository browser (Cyril Mougel)
655 * Search engine: added a checkbox to search titles only
657 * Search engine: added a checkbox to search titles only
656 * Added "% done" in the filter list
658 * Added "% done" in the filter list
657 * Enumerations: values can now be reordered and a default value can be specified (eg. default issue priority)
659 * Enumerations: values can now be reordered and a default value can be specified (eg. default issue priority)
658 * Added some accesskeys
660 * Added some accesskeys
659 * Added "Float" as a custom field format
661 * Added "Float" as a custom field format
660 * Added basic Theme support
662 * Added basic Theme support
661 * Added the ability to set the οΏ½done ratioοΏ½ of issues fixed by commit (Nikolay Solakov)
663 * Added the ability to set the οΏ½done ratioοΏ½ of issues fixed by commit (Nikolay Solakov)
662 * Added custom fields in issue related mail notifications
664 * Added custom fields in issue related mail notifications
663 * Email notifications are now sent in plain text and html
665 * Email notifications are now sent in plain text and html
664 * Gantt chart can now be exported to a graphic file (png). This functionality is only available if RMagick is installed.
666 * Gantt chart can now be exported to a graphic file (png). This functionality is only available if RMagick is installed.
665 * Added syntax highlightment for repository files and wiki
667 * Added syntax highlightment for repository files and wiki
666 * Improved automatic Redmine links
668 * Improved automatic Redmine links
667 * Added automatic table of content support on wiki pages
669 * Added automatic table of content support on wiki pages
668 * Added radio buttons on the documents list to sort documents by category, date, title or author
670 * Added radio buttons on the documents list to sort documents by category, date, title or author
669 * Added basic plugin support, with a sample plugin
671 * Added basic plugin support, with a sample plugin
670 * Added a link to add a new category when creating or editing an issue
672 * Added a link to add a new category when creating or editing an issue
671 * Added a "Assignable" boolean on the Role model. If unchecked, issues can not be assigned to users having this role.
673 * Added a "Assignable" boolean on the Role model. If unchecked, issues can not be assigned to users having this role.
672 * Added an option to be able to relate issues in different projects
674 * Added an option to be able to relate issues in different projects
673 * Added the ability to move issues (to another project) without changing their trackers.
675 * Added the ability to move issues (to another project) without changing their trackers.
674 * Atom feeds added on project activity, news and changesets
676 * Atom feeds added on project activity, news and changesets
675 * Added the ability to reset its own RSS access key
677 * Added the ability to reset its own RSS access key
676 * Main project list now displays root projects with their subprojects
678 * Main project list now displays root projects with their subprojects
677 * Added anchor links to issue notes
679 * Added anchor links to issue notes
678 * Added reposman Ruby version. This script can now register created repositories in Redmine (Nicolas Chuche)
680 * Added reposman Ruby version. This script can now register created repositories in Redmine (Nicolas Chuche)
679 * Issue notes are now included in search
681 * Issue notes are now included in search
680 * Added email sending test functionality
682 * Added email sending test functionality
681 * Added LDAPS support for LDAP authentication
683 * Added LDAPS support for LDAP authentication
682 * Removed hard-coded URLs in mail templates
684 * Removed hard-coded URLs in mail templates
683 * Subprojects are now grouped by projects in the navigation drop-down menu
685 * Subprojects are now grouped by projects in the navigation drop-down menu
684 * Added a new value for date filters: this week
686 * Added a new value for date filters: this week
685 * Added cache for application settings
687 * Added cache for application settings
686 * Added Polish translation (Tomasz Gawryl)
688 * Added Polish translation (Tomasz Gawryl)
687 * Added Czech translation (Jan Kadlecek)
689 * Added Czech translation (Jan Kadlecek)
688 * Added Romanian translation (Csongor Bartus)
690 * Added Romanian translation (Csongor Bartus)
689 * Added Hebrew translation (Bob Builder)
691 * Added Hebrew translation (Bob Builder)
690 * Added Serbian translation (Dragan Matic)
692 * Added Serbian translation (Dragan Matic)
691 * Added Korean translation (Choi Jong Yoon)
693 * Added Korean translation (Choi Jong Yoon)
692 * Fixed: the link to delete issue relations is displayed even if the user is not authorized to delete relations
694 * Fixed: the link to delete issue relations is displayed even if the user is not authorized to delete relations
693 * Performance improvement on calendar and gantt
695 * Performance improvement on calendar and gantt
694 * Fixed: wiki preview doesnοΏ½t work on long entries
696 * Fixed: wiki preview doesnοΏ½t work on long entries
695 * Fixed: queries with multiple custom fields return no result
697 * Fixed: queries with multiple custom fields return no result
696 * Fixed: Can not authenticate user against LDAP if its DN contains non-ascii characters
698 * Fixed: Can not authenticate user against LDAP if its DN contains non-ascii characters
697 * Fixed: URL with ~ broken in wiki formatting
699 * Fixed: URL with ~ broken in wiki formatting
698 * Fixed: some quotation marks are rendered as strange characters in pdf
700 * Fixed: some quotation marks are rendered as strange characters in pdf
699
701
700
702
701 == 2007-07-15 v0.5.1
703 == 2007-07-15 v0.5.1
702
704
703 * per project forums added
705 * per project forums added
704 * added the ability to archive projects
706 * added the ability to archive projects
705 * added οΏ½WatchοΏ½ functionality on issues. It allows users to receive notifications about issue changes
707 * added οΏ½WatchοΏ½ functionality on issues. It allows users to receive notifications about issue changes
706 * custom fields for issues can now be used as filters on issue list
708 * custom fields for issues can now be used as filters on issue list
707 * added per user custom queries
709 * added per user custom queries
708 * commit messages are now scanned for referenced or fixed issue IDs (keywords defined in Admin -> Settings)
710 * commit messages are now scanned for referenced or fixed issue IDs (keywords defined in Admin -> Settings)
709 * projects list now shows the list of public projects and private projects for which the user is a member
711 * projects list now shows the list of public projects and private projects for which the user is a member
710 * versions can now be created with no date
712 * versions can now be created with no date
711 * added issue count details for versions on Reports view
713 * added issue count details for versions on Reports view
712 * added time report, by member/activity/tracker/version and year/month/week for the selected period
714 * added time report, by member/activity/tracker/version and year/month/week for the selected period
713 * each category can now be associated to a user, so that new issues in that category are automatically assigned to that user
715 * each category can now be associated to a user, so that new issues in that category are automatically assigned to that user
714 * added autologin feature (disabled by default)
716 * added autologin feature (disabled by default)
715 * optimistic locking added for wiki edits
717 * optimistic locking added for wiki edits
716 * added wiki diff
718 * added wiki diff
717 * added the ability to destroy wiki pages (requires permission)
719 * added the ability to destroy wiki pages (requires permission)
718 * a wiki page can now be attached to each version, and displayed on the roadmap
720 * a wiki page can now be attached to each version, and displayed on the roadmap
719 * attachments can now be added to wiki pages (original patch by Pavol Murin) and displayed online
721 * attachments can now be added to wiki pages (original patch by Pavol Murin) and displayed online
720 * added an option to see all versions in the roadmap view (including completed ones)
722 * added an option to see all versions in the roadmap view (including completed ones)
721 * added basic issue relations
723 * added basic issue relations
722 * added the ability to log time when changing an issue status
724 * added the ability to log time when changing an issue status
723 * account information can now be sent to the user when creating an account
725 * account information can now be sent to the user when creating an account
724 * author and assignee of an issue always receive notifications (even if they turned of mail notifications)
726 * author and assignee of an issue always receive notifications (even if they turned of mail notifications)
725 * added a quick search form in page header
727 * added a quick search form in page header
726 * added 'me' value for 'assigned to' and 'author' query filters
728 * added 'me' value for 'assigned to' and 'author' query filters
727 * added a link on revision screen to see the entire diff for the revision
729 * added a link on revision screen to see the entire diff for the revision
728 * added last commit message for each entry in repository browser
730 * added last commit message for each entry in repository browser
729 * added the ability to view a file diff with free to/from revision selection.
731 * added the ability to view a file diff with free to/from revision selection.
730 * text files can now be viewed online when browsing the repository
732 * text files can now be viewed online when browsing the repository
731 * added basic support for other SCM: CVS (Ralph Vater), Mercurial and Darcs
733 * added basic support for other SCM: CVS (Ralph Vater), Mercurial and Darcs
732 * added fragment caching for svn diffs
734 * added fragment caching for svn diffs
733 * added fragment caching for calendar and gantt views
735 * added fragment caching for calendar and gantt views
734 * login field automatically focused on login form
736 * login field automatically focused on login form
735 * subproject name displayed on issue list, calendar and gantt
737 * subproject name displayed on issue list, calendar and gantt
736 * added an option to choose the date format: language based or ISO 8601
738 * added an option to choose the date format: language based or ISO 8601
737 * added a simple mail handler. It lets users add notes to an existing issue by replying to the initial notification email.
739 * added a simple mail handler. It lets users add notes to an existing issue by replying to the initial notification email.
738 * a 403 error page is now displayed (instead of a blank page) when trying to access a protected page
740 * a 403 error page is now displayed (instead of a blank page) when trying to access a protected page
739 * added portuguese translation (Joao Carlos Clementoni)
741 * added portuguese translation (Joao Carlos Clementoni)
740 * added partial online help japanese translation (Ken Date)
742 * added partial online help japanese translation (Ken Date)
741 * added bulgarian translation (Nikolay Solakov)
743 * added bulgarian translation (Nikolay Solakov)
742 * added dutch translation (Linda van den Brink)
744 * added dutch translation (Linda van den Brink)
743 * added swedish translation (Thomas Habets)
745 * added swedish translation (Thomas Habets)
744 * italian translation update (Alessio Spadaro)
746 * italian translation update (Alessio Spadaro)
745 * japanese translation update (Satoru Kurashiki)
747 * japanese translation update (Satoru Kurashiki)
746 * fixed: error on history atom feed when thereοΏ½s no notes on an issue change
748 * fixed: error on history atom feed when thereοΏ½s no notes on an issue change
747 * fixed: error in journalizing an issue with longtext custom fields (Postgresql)
749 * fixed: error in journalizing an issue with longtext custom fields (Postgresql)
748 * fixed: creation of Oracle schema
750 * fixed: creation of Oracle schema
749 * fixed: last day of the month not included in project activity
751 * fixed: last day of the month not included in project activity
750 * fixed: files with an apostrophe in their names can't be accessed in SVN repository
752 * fixed: files with an apostrophe in their names can't be accessed in SVN repository
751 * fixed: performance issue on RepositoriesController#revisions when a changeset has a great number of changes (eg. 100,000)
753 * fixed: performance issue on RepositoriesController#revisions when a changeset has a great number of changes (eg. 100,000)
752 * fixed: open/closed issue counts are always 0 on reports view (postgresql)
754 * fixed: open/closed issue counts are always 0 on reports view (postgresql)
753 * fixed: date query filters (wrong results and sql error with postgresql)
755 * fixed: date query filters (wrong results and sql error with postgresql)
754 * fixed: confidentiality issue on account/show (private project names displayed to anyone)
756 * fixed: confidentiality issue on account/show (private project names displayed to anyone)
755 * fixed: Long text custom fields displayed without line breaks
757 * fixed: Long text custom fields displayed without line breaks
756 * fixed: Error when editing the wokflow after deleting a status
758 * fixed: Error when editing the wokflow after deleting a status
757 * fixed: SVN commit dates are now stored as local time
759 * fixed: SVN commit dates are now stored as local time
758
760
759
761
760 == 2007-04-11 v0.5.0
762 == 2007-04-11 v0.5.0
761
763
762 * added per project Wiki
764 * added per project Wiki
763 * added rss/atom feeds at project level (custom queries can be used as feeds)
765 * added rss/atom feeds at project level (custom queries can be used as feeds)
764 * added search engine (search in issues, news, commits, wiki pages, documents)
766 * added search engine (search in issues, news, commits, wiki pages, documents)
765 * simple time tracking functionality added
767 * simple time tracking functionality added
766 * added version due dates on calendar and gantt
768 * added version due dates on calendar and gantt
767 * added subprojects issue count on project Reports page
769 * added subprojects issue count on project Reports page
768 * added the ability to copy an existing workflow when creating a new tracker
770 * added the ability to copy an existing workflow when creating a new tracker
769 * added the ability to include subprojects on calendar and gantt
771 * added the ability to include subprojects on calendar and gantt
770 * added the ability to select trackers to display on calendar and gantt (Jeffrey Jones)
772 * added the ability to select trackers to display on calendar and gantt (Jeffrey Jones)
771 * added side by side svn diff view (Cyril Mougel)
773 * added side by side svn diff view (Cyril Mougel)
772 * added back subproject filter on issue list
774 * added back subproject filter on issue list
773 * added permissions report in admin area
775 * added permissions report in admin area
774 * added a status filter on users list
776 * added a status filter on users list
775 * support for password-protected SVN repositories
777 * support for password-protected SVN repositories
776 * SVN commits are now stored in the database
778 * SVN commits are now stored in the database
777 * added simple svn statistics SVG graphs
779 * added simple svn statistics SVG graphs
778 * progress bars for roadmap versions (Nick Read)
780 * progress bars for roadmap versions (Nick Read)
779 * issue history now shows file uploads and deletions
781 * issue history now shows file uploads and deletions
780 * #id patterns are turned into links to issues in descriptions and commit messages
782 * #id patterns are turned into links to issues in descriptions and commit messages
781 * japanese translation added (Satoru Kurashiki)
783 * japanese translation added (Satoru Kurashiki)
782 * chinese simplified translation added (Andy Wu)
784 * chinese simplified translation added (Andy Wu)
783 * italian translation added (Alessio Spadaro)
785 * italian translation added (Alessio Spadaro)
784 * added scripts to manage SVN repositories creation and user access control using ssh+svn (Nicolas Chuche)
786 * added scripts to manage SVN repositories creation and user access control using ssh+svn (Nicolas Chuche)
785 * better calendar rendering time
787 * better calendar rendering time
786 * fixed migration scripts to work with mysql 5 running in strict mode
788 * fixed migration scripts to work with mysql 5 running in strict mode
787 * fixed: error when clicking "add" with no block selected on my/page_layout
789 * fixed: error when clicking "add" with no block selected on my/page_layout
788 * fixed: hard coded links in navigation bar
790 * fixed: hard coded links in navigation bar
789 * fixed: table_name pre/suffix support
791 * fixed: table_name pre/suffix support
790
792
791
793
792 == 2007-02-18 v0.4.2
794 == 2007-02-18 v0.4.2
793
795
794 * Rails 1.2 is now required
796 * Rails 1.2 is now required
795 * settings are now stored in the database and editable through the application in: Admin -> Settings (config_custom.rb is no longer used)
797 * settings are now stored in the database and editable through the application in: Admin -> Settings (config_custom.rb is no longer used)
796 * added project roadmap view
798 * added project roadmap view
797 * mail notifications added when a document, a file or an attachment is added
799 * mail notifications added when a document, a file or an attachment is added
798 * tooltips added on Gantt chart and calender to view the details of the issues
800 * tooltips added on Gantt chart and calender to view the details of the issues
799 * ability to set the sort order for roles, trackers, issue statuses
801 * ability to set the sort order for roles, trackers, issue statuses
800 * added missing fields to csv export: priority, start date, due date, done ratio
802 * added missing fields to csv export: priority, start date, due date, done ratio
801 * added total number of issues per tracker on project overview
803 * added total number of issues per tracker on project overview
802 * all icons replaced (new icons are based on GPL icon set: "KDE Crystal Diamond 2.5" -by paolino- and "kNeu! Alpha v0.1" -by Pablo Fabregat-)
804 * all icons replaced (new icons are based on GPL icon set: "KDE Crystal Diamond 2.5" -by paolino- and "kNeu! Alpha v0.1" -by Pablo Fabregat-)
803 * added back "fixed version" field on issue screen and in filters
805 * added back "fixed version" field on issue screen and in filters
804 * project settings screen split in 4 tabs
806 * project settings screen split in 4 tabs
805 * custom fields screen split in 3 tabs (one for each kind of custom field)
807 * custom fields screen split in 3 tabs (one for each kind of custom field)
806 * multiple issues pdf export now rendered as a table
808 * multiple issues pdf export now rendered as a table
807 * added a button on users/list to manually activate an account
809 * added a button on users/list to manually activate an account
808 * added a setting option to disable "password lost" functionality
810 * added a setting option to disable "password lost" functionality
809 * added a setting option to set max number of issues in csv/pdf exports
811 * added a setting option to set max number of issues in csv/pdf exports
810 * fixed: subprojects count is always 0 on projects list
812 * fixed: subprojects count is always 0 on projects list
811 * fixed: locked users are proposed when adding a member to a project
813 * fixed: locked users are proposed when adding a member to a project
812 * fixed: setting an issue status as default status leads to an sql error with SQLite
814 * fixed: setting an issue status as default status leads to an sql error with SQLite
813 * fixed: unable to delete an issue status even if it's not used yet
815 * fixed: unable to delete an issue status even if it's not used yet
814 * fixed: filters ignored when exporting a predefined query to csv/pdf
816 * fixed: filters ignored when exporting a predefined query to csv/pdf
815 * fixed: crash when french "issue_edit" email notification is sent
817 * fixed: crash when french "issue_edit" email notification is sent
816 * fixed: hide mail preference not saved (my/account)
818 * fixed: hide mail preference not saved (my/account)
817 * fixed: crash when a new user try to edit its "my page" layout
819 * fixed: crash when a new user try to edit its "my page" layout
818
820
819
821
820 == 2007-01-03 v0.4.1
822 == 2007-01-03 v0.4.1
821
823
822 * fixed: emails have no recipient when one of the project members has notifications disabled
824 * fixed: emails have no recipient when one of the project members has notifications disabled
823
825
824
826
825 == 2007-01-02 v0.4.0
827 == 2007-01-02 v0.4.0
826
828
827 * simple SVN browser added (just needs svn binaries in PATH)
829 * simple SVN browser added (just needs svn binaries in PATH)
828 * comments can now be added on news
830 * comments can now be added on news
829 * "my page" is now customizable
831 * "my page" is now customizable
830 * more powerfull and savable filters for issues lists
832 * more powerfull and savable filters for issues lists
831 * improved issues change history
833 * improved issues change history
832 * new functionality: move an issue to another project or tracker
834 * new functionality: move an issue to another project or tracker
833 * new functionality: add a note to an issue
835 * new functionality: add a note to an issue
834 * new report: project activity
836 * new report: project activity
835 * "start date" and "% done" fields added on issues
837 * "start date" and "% done" fields added on issues
836 * project calendar added
838 * project calendar added
837 * gantt chart added (exportable to pdf)
839 * gantt chart added (exportable to pdf)
838 * single/multiple issues pdf export added
840 * single/multiple issues pdf export added
839 * issues reports improvements
841 * issues reports improvements
840 * multiple file upload for issues, documents and files
842 * multiple file upload for issues, documents and files
841 * option to set maximum size of uploaded files
843 * option to set maximum size of uploaded files
842 * textile formating of issue and news descritions (RedCloth required)
844 * textile formating of issue and news descritions (RedCloth required)
843 * integration of DotClear jstoolbar for textile formatting
845 * integration of DotClear jstoolbar for textile formatting
844 * calendar date picker for date fields (LGPL DHTML Calendar http://sourceforge.net/projects/jscalendar)
846 * calendar date picker for date fields (LGPL DHTML Calendar http://sourceforge.net/projects/jscalendar)
845 * new filter in issues list: Author
847 * new filter in issues list: Author
846 * ajaxified paginators
848 * ajaxified paginators
847 * news rss feed added
849 * news rss feed added
848 * option to set number of results per page on issues list
850 * option to set number of results per page on issues list
849 * localized csv separator (comma/semicolon)
851 * localized csv separator (comma/semicolon)
850 * csv output encoded to ISO-8859-1
852 * csv output encoded to ISO-8859-1
851 * user custom field displayed on account/show
853 * user custom field displayed on account/show
852 * default configuration improved (default roles, trackers, status, permissions and workflows)
854 * default configuration improved (default roles, trackers, status, permissions and workflows)
853 * language for default configuration data can now be chosen when running 'load_default_data' task
855 * language for default configuration data can now be chosen when running 'load_default_data' task
854 * javascript added on custom field form to show/hide fields according to the format of custom field
856 * javascript added on custom field form to show/hide fields according to the format of custom field
855 * fixed: custom fields not in csv exports
857 * fixed: custom fields not in csv exports
856 * fixed: project settings now displayed according to user's permissions
858 * fixed: project settings now displayed according to user's permissions
857 * fixed: application error when no version is selected on projects/add_file
859 * fixed: application error when no version is selected on projects/add_file
858 * fixed: public actions not authorized for members of non public projects
860 * fixed: public actions not authorized for members of non public projects
859 * fixed: non public projects were shown on welcome screen even if current user is not a member
861 * fixed: non public projects were shown on welcome screen even if current user is not a member
860
862
861
863
862 == 2006-10-08 v0.3.0
864 == 2006-10-08 v0.3.0
863
865
864 * user authentication against multiple LDAP (optional)
866 * user authentication against multiple LDAP (optional)
865 * token based "lost password" functionality
867 * token based "lost password" functionality
866 * user self-registration functionality (optional)
868 * user self-registration functionality (optional)
867 * custom fields now available for issues, users and projects
869 * custom fields now available for issues, users and projects
868 * new custom field format "text" (displayed as a textarea field)
870 * new custom field format "text" (displayed as a textarea field)
869 * project & administration drop down menus in navigation bar for quicker access
871 * project & administration drop down menus in navigation bar for quicker access
870 * text formatting is preserved for long text fields (issues, projects and news descriptions)
872 * text formatting is preserved for long text fields (issues, projects and news descriptions)
871 * urls and emails are turned into clickable links in long text fields
873 * urls and emails are turned into clickable links in long text fields
872 * "due date" field added on issues
874 * "due date" field added on issues
873 * tracker selection filter added on change log
875 * tracker selection filter added on change log
874 * Localization plugin replaced with GLoc 1.1.0 (iconv required)
876 * Localization plugin replaced with GLoc 1.1.0 (iconv required)
875 * error messages internationalization
877 * error messages internationalization
876 * german translation added (thanks to Karim Trott)
878 * german translation added (thanks to Karim Trott)
877 * data locking for issues to prevent update conflicts (using ActiveRecord builtin optimistic locking)
879 * data locking for issues to prevent update conflicts (using ActiveRecord builtin optimistic locking)
878 * new filter in issues list: "Fixed version"
880 * new filter in issues list: "Fixed version"
879 * active filters are displayed with colored background on issues list
881 * active filters are displayed with colored background on issues list
880 * custom configuration is now defined in config/config_custom.rb
882 * custom configuration is now defined in config/config_custom.rb
881 * user object no more stored in session (only user_id)
883 * user object no more stored in session (only user_id)
882 * news summary field is no longer required
884 * news summary field is no longer required
883 * tables and forms redesign
885 * tables and forms redesign
884 * Fixed: boolean custom field not working
886 * Fixed: boolean custom field not working
885 * Fixed: error messages for custom fields are not displayed
887 * Fixed: error messages for custom fields are not displayed
886 * Fixed: invalid custom fields should have a red border
888 * Fixed: invalid custom fields should have a red border
887 * Fixed: custom fields values are not validated on issue update
889 * Fixed: custom fields values are not validated on issue update
888 * Fixed: unable to choose an empty value for 'List' custom fields
890 * Fixed: unable to choose an empty value for 'List' custom fields
889 * Fixed: no issue categories sorting
891 * Fixed: no issue categories sorting
890 * Fixed: incorrect versions sorting
892 * Fixed: incorrect versions sorting
891
893
892
894
893 == 2006-07-12 - v0.2.2
895 == 2006-07-12 - v0.2.2
894
896
895 * Fixed: bug in "issues list"
897 * Fixed: bug in "issues list"
896
898
897
899
898 == 2006-07-09 - v0.2.1
900 == 2006-07-09 - v0.2.1
899
901
900 * new databases supported: Oracle, PostgreSQL, SQL Server
902 * new databases supported: Oracle, PostgreSQL, SQL Server
901 * projects/subprojects hierarchy (1 level of subprojects only)
903 * projects/subprojects hierarchy (1 level of subprojects only)
902 * environment information display in admin/info
904 * environment information display in admin/info
903 * more filter options in issues list (rev6)
905 * more filter options in issues list (rev6)
904 * default language based on browser settings (Accept-Language HTTP header)
906 * default language based on browser settings (Accept-Language HTTP header)
905 * issues list exportable to CSV (rev6)
907 * issues list exportable to CSV (rev6)
906 * simple_format and auto_link on long text fields
908 * simple_format and auto_link on long text fields
907 * more data validations
909 * more data validations
908 * Fixed: error when all mail notifications are unchecked in admin/mail_options
910 * Fixed: error when all mail notifications are unchecked in admin/mail_options
909 * Fixed: all project news are displayed on project summary
911 * Fixed: all project news are displayed on project summary
910 * Fixed: Can't change user password in users/edit
912 * Fixed: Can't change user password in users/edit
911 * Fixed: Error on tables creation with PostgreSQL (rev5)
913 * Fixed: Error on tables creation with PostgreSQL (rev5)
912 * Fixed: SQL error in "issue reports" view with PostgreSQL (rev5)
914 * Fixed: SQL error in "issue reports" view with PostgreSQL (rev5)
913
915
914
916
915 == 2006-06-25 - v0.1.0
917 == 2006-06-25 - v0.1.0
916
918
917 * multiple users/multiple projects
919 * multiple users/multiple projects
918 * role based access control
920 * role based access control
919 * issue tracking system
921 * issue tracking system
920 * fully customizable workflow
922 * fully customizable workflow
921 * documents/files repository
923 * documents/files repository
922 * email notifications on issue creation and update
924 * email notifications on issue creation and update
923 * multilanguage support (except for error messages):english, french, spanish
925 * multilanguage support (except for error messages):english, french, spanish
924 * online manual in french (unfinished)
926 * online manual in french (unfinished)
@@ -1,232 +1,232
1 # redMine - project management software
1 # redMine - project management software
2 # Copyright (C) 2006-2007 Jean-Philippe Lang
2 # Copyright (C) 2006-2007 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 require 'redmine/scm/adapters/abstract_adapter'
18 require 'redmine/scm/adapters/abstract_adapter'
19 require 'rexml/document'
19 require 'rexml/document'
20 require 'uri'
20 require 'uri'
21
21
22 module Redmine
22 module Redmine
23 module Scm
23 module Scm
24 module Adapters
24 module Adapters
25 class SubversionAdapter < AbstractAdapter
25 class SubversionAdapter < AbstractAdapter
26
26
27 # SVN executable name
27 # SVN executable name
28 SVN_BIN = "svn"
28 SVN_BIN = "svn"
29
29
30 class << self
30 class << self
31 def client_version
31 def client_version
32 @@client_version ||= (svn_binary_version || [])
32 @@client_version ||= (svn_binary_version || [])
33 end
33 end
34
34
35 def svn_binary_version
35 def svn_binary_version
36 cmd = "#{SVN_BIN} --version"
36 cmd = "#{SVN_BIN} --version"
37 version = nil
37 version = nil
38 shellout(cmd) do |io|
38 shellout(cmd) do |io|
39 # Read svn version in first returned line
39 # Read svn version in first returned line
40 if m = io.gets.match(%r{((\d+\.)+\d+)})
40 if m = io.gets.to_s.match(%r{((\d+\.)+\d+)})
41 version = m[0].scan(%r{\d+}).collect(&:to_i)
41 version = m[0].scan(%r{\d+}).collect(&:to_i)
42 end
42 end
43 end
43 end
44 return nil if $? && $?.exitstatus != 0
44 return nil if $? && $?.exitstatus != 0
45 version
45 version
46 end
46 end
47 end
47 end
48
48
49 # Get info about the svn repository
49 # Get info about the svn repository
50 def info
50 def info
51 cmd = "#{SVN_BIN} info --xml #{target('')}"
51 cmd = "#{SVN_BIN} info --xml #{target('')}"
52 cmd << credentials_string
52 cmd << credentials_string
53 info = nil
53 info = nil
54 shellout(cmd) do |io|
54 shellout(cmd) do |io|
55 begin
55 begin
56 doc = REXML::Document.new(io)
56 doc = REXML::Document.new(io)
57 #root_url = doc.elements["info/entry/repository/root"].text
57 #root_url = doc.elements["info/entry/repository/root"].text
58 info = Info.new({:root_url => doc.elements["info/entry/repository/root"].text,
58 info = Info.new({:root_url => doc.elements["info/entry/repository/root"].text,
59 :lastrev => Revision.new({
59 :lastrev => Revision.new({
60 :identifier => doc.elements["info/entry/commit"].attributes['revision'],
60 :identifier => doc.elements["info/entry/commit"].attributes['revision'],
61 :time => Time.parse(doc.elements["info/entry/commit/date"].text).localtime,
61 :time => Time.parse(doc.elements["info/entry/commit/date"].text).localtime,
62 :author => (doc.elements["info/entry/commit/author"] ? doc.elements["info/entry/commit/author"].text : "")
62 :author => (doc.elements["info/entry/commit/author"] ? doc.elements["info/entry/commit/author"].text : "")
63 })
63 })
64 })
64 })
65 rescue
65 rescue
66 end
66 end
67 end
67 end
68 return nil if $? && $?.exitstatus != 0
68 return nil if $? && $?.exitstatus != 0
69 info
69 info
70 rescue CommandFailed
70 rescue CommandFailed
71 return nil
71 return nil
72 end
72 end
73
73
74 # Returns an Entries collection
74 # Returns an Entries collection
75 # or nil if the given path doesn't exist in the repository
75 # or nil if the given path doesn't exist in the repository
76 def entries(path=nil, identifier=nil)
76 def entries(path=nil, identifier=nil)
77 path ||= ''
77 path ||= ''
78 identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
78 identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
79 entries = Entries.new
79 entries = Entries.new
80 cmd = "#{SVN_BIN} list --xml #{target(URI.escape(path))}@#{identifier}"
80 cmd = "#{SVN_BIN} list --xml #{target(URI.escape(path))}@#{identifier}"
81 cmd << credentials_string
81 cmd << credentials_string
82 shellout(cmd) do |io|
82 shellout(cmd) do |io|
83 output = io.read
83 output = io.read
84 begin
84 begin
85 doc = REXML::Document.new(output)
85 doc = REXML::Document.new(output)
86 doc.elements.each("lists/list/entry") do |entry|
86 doc.elements.each("lists/list/entry") do |entry|
87 commit = entry.elements['commit']
87 commit = entry.elements['commit']
88 commit_date = commit.elements['date']
88 commit_date = commit.elements['date']
89 # Skip directory if there is no commit date (usually that
89 # Skip directory if there is no commit date (usually that
90 # means that we don't have read access to it)
90 # means that we don't have read access to it)
91 next if entry.attributes['kind'] == 'dir' && commit_date.nil?
91 next if entry.attributes['kind'] == 'dir' && commit_date.nil?
92 name = entry.elements['name'].text
92 name = entry.elements['name'].text
93 entries << Entry.new({:name => URI.unescape(name),
93 entries << Entry.new({:name => URI.unescape(name),
94 :path => ((path.empty? ? "" : "#{path}/") + name),
94 :path => ((path.empty? ? "" : "#{path}/") + name),
95 :kind => entry.attributes['kind'],
95 :kind => entry.attributes['kind'],
96 :size => ((s = entry.elements['size']) ? s.text.to_i : nil),
96 :size => ((s = entry.elements['size']) ? s.text.to_i : nil),
97 :lastrev => Revision.new({
97 :lastrev => Revision.new({
98 :identifier => commit.attributes['revision'],
98 :identifier => commit.attributes['revision'],
99 :time => Time.parse(commit_date.text).localtime,
99 :time => Time.parse(commit_date.text).localtime,
100 :author => ((a = commit.elements['author']) ? a.text : nil)
100 :author => ((a = commit.elements['author']) ? a.text : nil)
101 })
101 })
102 })
102 })
103 end
103 end
104 rescue Exception => e
104 rescue Exception => e
105 logger.error("Error parsing svn output: #{e.message}")
105 logger.error("Error parsing svn output: #{e.message}")
106 logger.error("Output was:\n #{output}")
106 logger.error("Output was:\n #{output}")
107 end
107 end
108 end
108 end
109 return nil if $? && $?.exitstatus != 0
109 return nil if $? && $?.exitstatus != 0
110 logger.debug("Found #{entries.size} entries in the repository for #{target(path)}") if logger && logger.debug?
110 logger.debug("Found #{entries.size} entries in the repository for #{target(path)}") if logger && logger.debug?
111 entries.sort_by_name
111 entries.sort_by_name
112 end
112 end
113
113
114 def properties(path, identifier=nil)
114 def properties(path, identifier=nil)
115 # proplist xml output supported in svn 1.5.0 and higher
115 # proplist xml output supported in svn 1.5.0 and higher
116 return nil unless self.class.client_version_above?([1, 5, 0])
116 return nil unless self.class.client_version_above?([1, 5, 0])
117
117
118 identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
118 identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
119 cmd = "#{SVN_BIN} proplist --verbose --xml #{target(URI.escape(path))}@#{identifier}"
119 cmd = "#{SVN_BIN} proplist --verbose --xml #{target(URI.escape(path))}@#{identifier}"
120 cmd << credentials_string
120 cmd << credentials_string
121 properties = {}
121 properties = {}
122 shellout(cmd) do |io|
122 shellout(cmd) do |io|
123 output = io.read
123 output = io.read
124 begin
124 begin
125 doc = REXML::Document.new(output)
125 doc = REXML::Document.new(output)
126 doc.elements.each("properties/target/property") do |property|
126 doc.elements.each("properties/target/property") do |property|
127 properties[ property.attributes['name'] ] = property.text
127 properties[ property.attributes['name'] ] = property.text
128 end
128 end
129 rescue
129 rescue
130 end
130 end
131 end
131 end
132 return nil if $? && $?.exitstatus != 0
132 return nil if $? && $?.exitstatus != 0
133 properties
133 properties
134 end
134 end
135
135
136 def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
136 def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
137 path ||= ''
137 path ||= ''
138 identifier_from = (identifier_from and identifier_from.to_i > 0) ? identifier_from.to_i : "HEAD"
138 identifier_from = (identifier_from and identifier_from.to_i > 0) ? identifier_from.to_i : "HEAD"
139 identifier_to = (identifier_to and identifier_to.to_i > 0) ? identifier_to.to_i : 1
139 identifier_to = (identifier_to and identifier_to.to_i > 0) ? identifier_to.to_i : 1
140 revisions = Revisions.new
140 revisions = Revisions.new
141 cmd = "#{SVN_BIN} log --xml -r #{identifier_from}:#{identifier_to}"
141 cmd = "#{SVN_BIN} log --xml -r #{identifier_from}:#{identifier_to}"
142 cmd << credentials_string
142 cmd << credentials_string
143 cmd << " --verbose " if options[:with_paths]
143 cmd << " --verbose " if options[:with_paths]
144 cmd << ' ' + target(URI.escape(path))
144 cmd << ' ' + target(URI.escape(path))
145 shellout(cmd) do |io|
145 shellout(cmd) do |io|
146 begin
146 begin
147 doc = REXML::Document.new(io)
147 doc = REXML::Document.new(io)
148 doc.elements.each("log/logentry") do |logentry|
148 doc.elements.each("log/logentry") do |logentry|
149 paths = []
149 paths = []
150 logentry.elements.each("paths/path") do |path|
150 logentry.elements.each("paths/path") do |path|
151 paths << {:action => path.attributes['action'],
151 paths << {:action => path.attributes['action'],
152 :path => path.text,
152 :path => path.text,
153 :from_path => path.attributes['copyfrom-path'],
153 :from_path => path.attributes['copyfrom-path'],
154 :from_revision => path.attributes['copyfrom-rev']
154 :from_revision => path.attributes['copyfrom-rev']
155 }
155 }
156 end
156 end
157 paths.sort! { |x,y| x[:path] <=> y[:path] }
157 paths.sort! { |x,y| x[:path] <=> y[:path] }
158
158
159 revisions << Revision.new({:identifier => logentry.attributes['revision'],
159 revisions << Revision.new({:identifier => logentry.attributes['revision'],
160 :author => (logentry.elements['author'] ? logentry.elements['author'].text : ""),
160 :author => (logentry.elements['author'] ? logentry.elements['author'].text : ""),
161 :time => Time.parse(logentry.elements['date'].text).localtime,
161 :time => Time.parse(logentry.elements['date'].text).localtime,
162 :message => logentry.elements['msg'].text,
162 :message => logentry.elements['msg'].text,
163 :paths => paths
163 :paths => paths
164 })
164 })
165 end
165 end
166 rescue
166 rescue
167 end
167 end
168 end
168 end
169 return nil if $? && $?.exitstatus != 0
169 return nil if $? && $?.exitstatus != 0
170 revisions
170 revisions
171 end
171 end
172
172
173 def diff(path, identifier_from, identifier_to=nil, type="inline")
173 def diff(path, identifier_from, identifier_to=nil, type="inline")
174 path ||= ''
174 path ||= ''
175 identifier_from = (identifier_from and identifier_from.to_i > 0) ? identifier_from.to_i : ''
175 identifier_from = (identifier_from and identifier_from.to_i > 0) ? identifier_from.to_i : ''
176 identifier_to = (identifier_to and identifier_to.to_i > 0) ? identifier_to.to_i : (identifier_from.to_i - 1)
176 identifier_to = (identifier_to and identifier_to.to_i > 0) ? identifier_to.to_i : (identifier_from.to_i - 1)
177
177
178 cmd = "#{SVN_BIN} diff -r "
178 cmd = "#{SVN_BIN} diff -r "
179 cmd << "#{identifier_to}:"
179 cmd << "#{identifier_to}:"
180 cmd << "#{identifier_from}"
180 cmd << "#{identifier_from}"
181 cmd << " #{target(URI.escape(path))}@#{identifier_from}"
181 cmd << " #{target(URI.escape(path))}@#{identifier_from}"
182 cmd << credentials_string
182 cmd << credentials_string
183 diff = []
183 diff = []
184 shellout(cmd) do |io|
184 shellout(cmd) do |io|
185 io.each_line do |line|
185 io.each_line do |line|
186 diff << line
186 diff << line
187 end
187 end
188 end
188 end
189 return nil if $? && $?.exitstatus != 0
189 return nil if $? && $?.exitstatus != 0
190 diff
190 diff
191 end
191 end
192
192
193 def cat(path, identifier=nil)
193 def cat(path, identifier=nil)
194 identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
194 identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
195 cmd = "#{SVN_BIN} cat #{target(URI.escape(path))}@#{identifier}"
195 cmd = "#{SVN_BIN} cat #{target(URI.escape(path))}@#{identifier}"
196 cmd << credentials_string
196 cmd << credentials_string
197 cat = nil
197 cat = nil
198 shellout(cmd) do |io|
198 shellout(cmd) do |io|
199 io.binmode
199 io.binmode
200 cat = io.read
200 cat = io.read
201 end
201 end
202 return nil if $? && $?.exitstatus != 0
202 return nil if $? && $?.exitstatus != 0
203 cat
203 cat
204 end
204 end
205
205
206 def annotate(path, identifier=nil)
206 def annotate(path, identifier=nil)
207 identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
207 identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
208 cmd = "#{SVN_BIN} blame #{target(URI.escape(path))}@#{identifier}"
208 cmd = "#{SVN_BIN} blame #{target(URI.escape(path))}@#{identifier}"
209 cmd << credentials_string
209 cmd << credentials_string
210 blame = Annotate.new
210 blame = Annotate.new
211 shellout(cmd) do |io|
211 shellout(cmd) do |io|
212 io.each_line do |line|
212 io.each_line do |line|
213 next unless line =~ %r{^\s*(\d+)\s*(\S+)\s(.*)$}
213 next unless line =~ %r{^\s*(\d+)\s*(\S+)\s(.*)$}
214 blame.add_line($3.rstrip, Revision.new(:identifier => $1.to_i, :author => $2.strip))
214 blame.add_line($3.rstrip, Revision.new(:identifier => $1.to_i, :author => $2.strip))
215 end
215 end
216 end
216 end
217 return nil if $? && $?.exitstatus != 0
217 return nil if $? && $?.exitstatus != 0
218 blame
218 blame
219 end
219 end
220
220
221 private
221 private
222
222
223 def credentials_string
223 def credentials_string
224 str = ''
224 str = ''
225 str << " --username #{shell_quote(@login)}" unless @login.blank?
225 str << " --username #{shell_quote(@login)}" unless @login.blank?
226 str << " --password #{shell_quote(@password)}" unless @login.blank? || @password.blank?
226 str << " --password #{shell_quote(@password)}" unless @login.blank? || @password.blank?
227 str
227 str
228 end
228 end
229 end
229 end
230 end
230 end
231 end
231 end
232 end
232 end
General Comments 0
You need to be logged in to leave comments. Login now