https://www.redmine.org/https://www.redmine.org/favicon.ico?16793021292011-02-11T19:43:45ZRedmineRedmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=251182011-02-11T19:43:45ZBrian Lindahl
<ul></ul><p>related to <a class="issue tracker-2 status-5 priority-4 priority-default closed" title="Feature: Delete button on comments (Closed)" href="https://www.redmine.org/issues/1725">#1725</a></p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=251252011-02-11T20:22:50ZBrian Lindahl
<ul></ul><p>related to <a class="issue tracker-2 status-5 priority-4 priority-default closed" title="Feature: Ability to delete tracker comments (Closed)" href="https://www.redmine.org/issues/1665">#1665</a></p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=251262011-02-11T20:35:09ZBrian Lindahl
<ul></ul><p>todo: provide seperate permission to rollback own issue updates</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=251282011-02-12T00:33:24ZBrian Lindahl
<ul><li><strong>File</strong> <a href="/attachments/5370">rollback-1.1.0.patch</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/5370/rollback-1.1.0.patch">rollback-1.1.0.patch</a> added</li><li><strong>% Done</strong> changed from <i>60</i> to <i>80</i></li></ul><a name="Improved1"></a>
<h3 >Improved1<a href="#Improved1" class="wiki-anchor">¶</a></h3>
<ul>
<li>moved code from issue controller to journal controller</li>
<li>improved error handling</li>
<li>improved permissions</li>
<li>improved code quality</li>
</ul>
<a name="Permissions"></a>
<h3 >Permissions<a href="#Permissions" class="wiki-anchor">¶</a></h3>
<ul>
<li>Users with 'edit issue notes' permission and 'rollback issue notes' permission can rollback anyone's journal entry.</li>
<li>Users with 'edit own issue notes' permission and 'rollback issue notes' permission can rollback their own journal entry.</li>
<li>Attempting to rollback any journal but the last journal will result in a 'notice_locking_conflict' failure.</li>
<li>Attempting to rollback a journal without permission will result in a 403 error page.</li>
</ul> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=251372011-02-12T09:00:24ZIvan Cenov
<ul></ul><blockquote>
<p>Note that there is no validation check when rolling back an journal entry.</p>
</blockquote>
<p>Isn't it very dangerous?</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=251562011-02-12T15:10:18ZJean-Baptiste Barth
<ul></ul><p>Looks promising, but do we know all the edge cases and security related issues it could introduce ? Could you easily turn this into a plugin (didn't look at the code) ?</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=251892011-02-14T16:31:03ZBrian Lindahl
<ul></ul><p>Ivan:<br />Yes, I'm sure there are still things to work out. The idea is that you don't really want rollback to fail. In the case of an invalidation, it's better to just remove the journal entry and move forward. The tricky part is that some rollbacks should succeed, and others that cause invalidation should just fail. There's no easy way to do this at the moment, but I'll get to it when I have time. The disclaimer I give at the bottom does say 'Use the rollback action carefully!'.</p>
<p>Jean-Baptiste:<br />I don't have the desire nor the time to learn how to do plugins. I don't see any security related issues. It uses permissions which I assume are well-tested.</p>
Edge cases that will likely cause problems are rollbacks that occur on properties that have values that may no longer be valid. Cases I can think of:
<ul>
<li>a parent issue moved to another project
<ul>
<li>not a high risk: will create confusing heirarchies and pull issues into other projects, but probability is low (rare use case)</li>
</ul></li>
</ul>
<ul>
<li>a tracker disabled for a project
<ul>
<li>not a high risk: will cause a problem with overviews and queries(?), but probability is low (rare use case)</li>
</ul></li>
</ul>
<ul>
<li>a category/version/other property value deleted
<ul>
<li>not a problem: deleted property values have ids that are not reused, the property will read '-', which I suppose is expected</li>
</ul></li>
</ul>
<ul>
<li>permissions removed for a user
<ul>
<li>not a problem: the rollback permission should also be removed</li>
</ul></li>
</ul>
<p>I suppose a proper solution for this is to use the validate command before saving. On validation failure, scan the errors for property ids and set the failed properties to their old values. This preserves rollback for properties that can be rolled back, while maintaining the current values for properties that cannot be rolled back. It would also be nice to modify the errors to say 'not rolled back', to indicate which properties rollback failed for. However, I'd like to get more feedback from the community before going down this path.</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=251902011-02-14T16:43:43ZBrian Lindahl
<ul></ul><p>I suppose there could be potential security issue when it comes to 'View own issues' permission that is in the works. This, in combination with the assignee field can allow someone who is no longer an assignee view a changed description (since descriptions are not journal'd).</p>
Possible workflow:
<ul>
<li>issue assigned to assignee1</li>
<li>issue assigned to assignee2</li>
<li>description updated with secure information only supposed to be viewed by assignee2 (and others with 'view all issues' permission</li>
<li>rollback occurs, assigning issue back to assignee1 (description is not rolled back, since it is not journal'd)</li>
<li>assignee1 now can see description with secure information</li>
</ul>
<p>However, putting secure information inside of description is not a good practice. Secure information should be kept in an isolated project with only authorized employees as members, and cross-project issue relations can be used for linking secure information.</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=252012011-02-15T05:46:17ZJean-Baptiste Barth
<ul></ul><p>My main concern regarding security is <em>traceability</em>. I like your idea, but I don't like the fact everything is erased, after that we don't know who rolled back on the issue nor why.</p>
<p>I'd love to see a "revert" option instead: it would pre-fill all the fields with the inverse transitions.</p>
<p>Finally, same as you, <em>I'd like to get more feedback from the community before going down this path.</em> ;-) Good job anyway!</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=252142011-02-15T16:58:14ZBrian Lindahl
<ul></ul><p>Ahh... I see. I suppose a 'rollback' flag could be introduced for journal entries. Journal entries that have been rolled back won't be displayed. A rollback comment is required to be entered when rolling back, and this will create a rolledback journal entry that contains the comment (which also won't be displayed). There could be a button (perhaps an expansion '+') somewhere that would expand the journal entries to display rolled back journal entries as well.</p>
<p>Personally, I prefer that all traces are removed. This allows someone to truly remove information that should not be in the history at all. After all, it is a separate permission - I consider it sort of a power user action for someone with a high level of responsibility. If it presents a security concern for a particular role/company, simply disable the permission. If you just want to revert the state of the issue and need history, just edit the issue - I don't really see the difficulty in editing.</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=418092012-10-05T17:06:03ZBrian Lindahl
<ul><li><strong>File</strong> <a href="/attachments/8319">rollback-2.1.0.patch</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/8319/rollback-2.1.0.patch">rollback-2.1.0.patch</a> added</li><li><strong>File</strong> <a href="/attachments/8320">after-2.1.0.jpg</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/8320/after-2.1.0.jpg">after-2.1.0.jpg</a> added</li><li><strong>Assignee</strong> set to <i>Jean-Baptiste Barth</i></li><li><strong>% Done</strong> changed from <i>80</i> to <i>100</i></li></ul><p>Badda-bing, badda-boom!</p>
<p>Finally got around to fixing your concerns. I added a user preference that determines whether or not rolled-back issue notes are displayed or not. If they're displayed, they're displayed with a strikethrough. The rolled-back notes are not removed from the database, and are simply flagged with a boolean.</p>
<p>I would really love to see this moved into the trunk for 2.1.2 or 2.2.0.</p>
<p>Thanks!</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=418102012-10-05T17:12:38ZBrian Lindahl
<ul><li><strong>File</strong> <a href="/attachments/8321">after-2.1.0-fixed.jpg</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/8321/after-2.1.0-fixed.jpg">after-2.1.0-fixed.jpg</a> added</li></ul><p>Oops, forgot to correctly implement 'last_valid_journal' in <em>app/models/journal.rb</em>.</p>
<p>The patch currently does this:<br /><pre>
def last_valid_journal?(journals)
self == journals.last
end
</pre></p>
<p>It <em><strong>should</strong></em> do this:<br /><pre>
def last_valid_journal?(journals)
self == journals.reject{|j| j.rolled_back}.last
end
</pre></p>
<p>Optionally, it could be changed to this:<br /><pre>
def self.valid(journals)
journals.reject{|j| j.rolled_back}
end
</pre></p>
<p>And the check in <em>app/views/issues/_history.html.erb</em> would be this:<br /><pre>
if journal == Journal.valid(journals).last && journal.can_rollback?
</pre></p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=418112012-10-05T17:20:11ZBrian Lindahl
<ul></ul><p>Also, the comments in <em>app/models/issue.rb</em> in function <em>rollback</em> should be updated. I believe they still reference that the rolled-back journal is destroyed/deleted.</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=418122012-10-05T17:26:10ZBrian Lindahl
<ul><li><strong>File</strong> <a href="/attachments/8322">rollback-2.1.0-fixed.patch</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/8322/rollback-2.1.0-fixed.patch">rollback-2.1.0-fixed.patch</a> added</li></ul><p>Sorry for the spam. I just realized when I was copying the patch file, that I introduced a typo. Here's the real patch file with the typo fixed.</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=418152012-10-05T21:29:16ZTerence Mill
<ul></ul><p>+1</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=449752013-01-25T22:04:27ZWallace Winfrey
<ul></ul><p>I'm trying to use this patch but running into some unexpected issues.</p>
<p>After upgrading my Redmine 2.0.0 installation:</p>
<ol>
<li>cp redmine-2.0.0/config/database.yml redmine-2.1.0/config</li>
<li>cp redmine-2.0.0/config/configuration.yml redmine-2.1.0/config</li>
<li>cp -R redmine-2.0.0/files redmine-2.1.0/files</li>
<li>cd redmine-2.1.0; bundle install; rake generate_secret_token</li>
<li>rake db:migrate RAILS_ENV=production; rake tmp:cache:clear; rake tmp:sessions:clear</li>
</ol>
<p>I then patched the source, which was successful:</p>
<pre>
$ patch -p0 < rollback-2.1.0-fixed.patch
patching file redmine-2.1.0/app/controllers/journals_controller.rb
patching file redmine-2.1.0/app/models/issue.rb
patching file redmine-2.1.0/app/models/journal.rb
patching file redmine-2.1.0/app/models/user_preference.rb
patching file redmine-2.1.0/app/views/issues/_history.html.erb
patching file redmine-2.1.0/app/views/users/_preferences.html.erb
patching file redmine-2.1.0/config/locales/en.yml
</pre>
<p>I then hupped apache (httpd-2.2.15-15.0.1.el6.x86_64; passenger-3.0.12; ruby 1.9.3p194; rails 3.2.11; RubyGems 1.8.23) and attempting to access Redmine results in this:</p>
<pre>
*** Exception SyntaxError in PhusionPassenger::ClassicRails::ApplicationSpawner (/var/www/redmine-2.1.0/app/models/issue.rb:612: syntax error, unexpected ',', expecting ')'
when 'attr'; send ("#{d.prop_key}=", d.old_value)
^
/var/www/redmine-2.1.0/app/models/issue.rb:612: syntax error, unexpected ')', expecting keyword_end
/var/www/redmine-2.1.0/app/models/issue.rb:616: syntax error, unexpected keyword_when, expecting keyword_end
when 'attachment'; attachments.ea...
^
/var/www/redmine-2.1.0/app/models/issue.rb:784: syntax error, unexpected keyword_do_block, expecting keyword_end
issues.each do |issue|
^
/var/www/redmine-2.1.0/app/models/issue.rb:785: syntax error, unexpected tSTRING_BEG, expecting keyword_end
... issue.instance_variable_set "@relations", relations.select...
... ^
/var/www/redmine-2.1.0/app/models/issue.rb:785: syntax error, unexpected ',', expecting keyword_end
...ance_variable_set "@relations", relations.select {|r| r.issu...
... ^
/var/www/redmine-2.1.0/app/models/issue.rb:788: syntax error, unexpected keyword_end, expecting $end)
</pre>
<p>If I run a ruby -c on redmine-2.1.0/app/models/issue.rb, I get similar syntax errors:</p>
<pre>
redmine-2.1.0/app/models/issue.rb:612: syntax error, unexpected ',', expecting ')'
when 'attr'; send ("#{d.prop_key}=", d.old_value)
</pre>
<p>So I try and remove the parentheses from redmine-2.1.0/app/models/issue.rb line 612, changing this:</p>
<pre>
when 'attr'; send ("#{d.prop_key}=", d.old_value)
</pre>
<p>to this:</p>
<pre>
when 'attr'; send "#{d.prop_key}=", d.old_value
</pre>
<p>Pages start rendering! Great! That is, until I try to view an issue with a journal entry, at which point I get a Redmine 500 error, and this in the production log.</p>
<pre>
Started GET "/issues/20" for 10.135.101.192 at 2013-01-25 12:18:51 -0700
Processing by IssuesController#show as HTML
Parameters: {"id"=>"20"}
Current user: joeuser@joeuser.com (id=4)
Rendered issues/_action_menu.html.erb (5.0ms)
Rendered issue_relations/_form.html.erb (1.6ms)
Rendered issues/_relations.html.erb (3.0ms)
Rendered issues/_history.html.erb (1.6ms)
Rendered issues/show.html.erb within layouts/base (469.0ms)
Completed 500 Internal Server Error in 536ms
ActionView::Template::Error (undefined method `rolled_back' for #<Journal:0x000000056d8738>):
1: <% reply_links = authorize_for('issues', 'edit') -%>
2: <% for journal in journals %>
3: <% if journal.show? %>
4:
5: <% if journal.rolled_back? %>
6: <strike>
app/models/journal.rb:75:in `show?'
app/views/issues/_history.html.erb:3:in `block in _app_views_issues__history_html_erb___2997522374147565881_58424420'
app/views/issues/_history.html.erb:2:in `each'
app/views/issues/_history.html.erb:2:in `_app_views_issues__history_html_erb___2997522374147565881_58424420'
app/views/issues/show.html.erb:122:in `_app_views_issues_show_html_erb___3007417919998968854_52189840'
app/controllers/issues_controller.rb:117:in `block (2 levels) in show'
app/controllers/issues_controller.rb:114:in `show'
</pre>
<p>Any idea what's broken? I'm definitely a Ruby newb, and it's unclear to me what "rolled_back" method Rails is complaining about.</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=449902013-01-26T10:52:26ZJean-Baptiste Barth
<ul><li><strong>Assignee</strong> deleted (<del><i>Jean-Baptiste Barth</i></del>)</li></ul><p>Sorry I don't have the time to dig into this patch, please don't re-assign this issue to me.</p>
If you want this to be integrated in the core, you should at least address the following points:
<ul>
<li>how do you ensure everything is still traceable ?</li>
<li>add tests so we're sure we don't break it in the future</li>
</ul>
<p>As said earlier, I think a plugin would be a better place for this functionnality if left as is.</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=450962013-01-28T15:44:26ZBrian Lindahl
<ul></ul><p>Wallace Winfrey wrote:</p>
<blockquote>
<p>Any idea what's broken? I'm definitely a Ruby newb, and it's unclear to me what "rolled_back" method Rails is complaining about.</p>
</blockquote>
<p>It looks like you forgot to migrate the database after applying the patch. rolled_back is an attribute of journal, it appears you're missing the 'rolled_back' column in your journal table (which should be added after the db:migrate).</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=451002013-01-28T19:01:26ZWallace Winfrey
<ul></ul><p>Brian Lindahl wrote:</p>
<blockquote>
<p>It looks like you forgot to migrate the database after applying the patch.</p>
</blockquote>
<p>I rolled everything back, then started again:</p>
<ol>
<li><code>% cp redmine-2.0.0/config/database.yml redmine-2.1.0/config</code></li>
<li><code>% cp redmine-2.0.0/config/configuration.yml redmine-2.1.0/config</code></li>
<li><code>% cp -R redmine-2.0.0/files redmine-2.1.0/files</code></li>
<li><code>% cd redmine-2.1.0; bundle install; rake generate_secret_token</code></li>
<li><code>% rake db:migrate RAILS_ENV=production; rake tmp:cache:clear; rake tmp:sessions:clear</code></li>
<li><code>% cd ..; patch -p0 < rollback-2.1.0-fixed.patch</code></li>
<li><code>% cd redmine-2.1.0; rake db:migrate RAILS_ENV=production</code></li>
</ol>
<p>At this point, the rake db:migrate fails due to the parentheses bug on line 612 of redmine-2.1.0/app/models/issue.rb; I fix it and re-run the db migration:</p>
<ol>
<li><code>sed -i -e 's/when 'attr'; send ("#{d.prop_key}=", d.old_value)/when 'attr'; send "#{d.prop_key}=", d.old_value/' app/models/issue.rb</code></li>
<li><code>rake db:migrate RAILS_ENV=production</code></li>
</ol>
<p>Curiously, there is no output to the rake db:migrate, and sure enough, when I examine the table, there's no rolled_back column in journals:</p>
<pre>
mysql> desc journals;
+------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| journalized_id | int(11) | NO | MUL | 0 | |
| journalized_type | varchar(30) | NO | | | |
| user_id | int(11) | NO | MUL | 0 | |
| notes | text | YES | | NULL | |
| created_on | datetime | NO | MUL | NULL | |
+------------------+-------------+------+-----+---------+----------------+
</pre>
<p>Is there another step I forgot to take, or did I do the post-patch db:migrate at the wrong time?</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=451012013-01-28T19:28:23ZBrian Lindahl
<ul><li><strong>File</strong> <a href="/attachments/8932">rollback-2.1.0-v2.patch</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/8932/rollback-2.1.0-v2.patch">rollback-2.1.0-v2.patch</a> added</li></ul><p>Looks like the migration code was never in the patch - sorry about that. Try this patch - should fix that 'send' problem, as well as add the proper migration.</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=451022013-01-28T19:50:32ZWallace Winfrey
<ul></ul><p>Thanks so much! Is this patch compatible with only Redmine v2.1.0 ?</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=451032013-01-28T20:50:02ZWallace Winfrey
<ul></ul><p>After applying the patch, I found that:</p>
<ol>
<li>There were no rollback icons available next to issue updates.</li>
<li>Adding a new update to an existing issue did not have a rollback icon either.</li>
<li>Newly-created issues show up in the Issues listing & Gannt chart, but clicking on an issue created post-patch, or manually navigating to it, resulted in a 404.</li>
</ol> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=451052013-01-28T21:15:20ZBrian Lindahl
<ul></ul><p>Odd, I've never had any of these problems before, even during development. Are you sure you're using 2.1 stable?</p>
<p>The only rollback icon that should appear is on the last update (you can only rollback the most recent update).</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=451082013-01-28T21:24:32ZWallace Winfrey
<ul></ul><p>Yes, absolutely sure, this version, specifically: <a class="external" href="http://rubyforge.org/frs/download.php/76448/redmine-2.1.0.tar.gz">http://rubyforge.org/frs/download.php/76448/redmine-2.1.0.tar.gz</a></p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=559272014-04-17T18:16:39ZBrian Lindahl
<ul><li><strong>File</strong> <a href="/attachments/11491">rollback-2.4.4.patch</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/11491/rollback-2.4.4.patch">rollback-2.4.4.patch</a> added</li></ul><p>Fixed the problems that Wallace talks about in the new 2.4.4 patch file.</p>
<p>The old 2.1.0 patch was generated incorrectly. It was missing the config/routes.rb modification and the lib/redmine.rb modification.</p>
<p>Wallace's issues 1) and 2) is fixed by the lib/redmine.rb modification, which adds the rollback permission (why no rollback icons appeared). Wallace's issue 3) is fixed by the config/routes.rb modification, which adds the route for journals/rollback/<#id> (why there were 404 errors). These modifications can easily be added on top of the 2.1.0 patch. I also noticed, in the 2.1.0 patch, there may be some 'missing translation' errors, which should be relatively easy to fix up.</p>
<p>The 2.4.4 patch fixes all of the above problems and should be working perfectly.</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=559282014-04-17T18:23:15ZBrian Lindahl
<ul><li><strong>File</strong> <a href="/attachments/11492">rollback-2.4.4.patch</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/11492/rollback-2.4.4.patch">rollback-2.4.4.patch</a> added</li></ul><p>Oops, use this patch file instead. The one I just uploaded had the problem referenced in note 12.</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=559292014-04-17T18:25:14ZBrian Lindahl
<ul><li><strong>File</strong> <a href="/attachments/11493">rollback-2.4.4-fixed.patch</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/11493/rollback-2.4.4-fixed.patch">rollback-2.4.4-fixed.patch</a> added</li></ul><p>Hah.. didn't upload the fixed patch. I really wish I could delete my own attachments. Anyway, here's the correct patch file.</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=662012015-09-25T11:46:14ZValerio Falcao
<ul></ul><p>Brian, I have used your patch, and it works perfectly. <br />However, if the journal is shown in reverse order, the "rollback" icon is shown in the first entry...<br />Neither usability or purpose are broken, but maybe you would like to verify this situation.</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=680112015-12-17T19:11:43ZFrederico Camara
<ul><li><strong>File</strong> <a href="/attachments/14883">rollback-2.6.3.patch</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/14883/rollback-2.6.3.patch">rollback-2.6.3.patch</a> added</li></ul><p>Patch against redmine 2.6.3 with newer version of Ruby.<br />Updated some deprecated functions and order problem I was having with postgresql.</p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=900202019-02-11T04:08:30ZGo MAEDA
<ul><li><strong>Related to</strong> <i><a class="issue tracker-2 status-1 priority-4 priority-default" href="/issues/12388">Feature #12388</a>: diffs for editions of issue/notes entries</i> added</li></ul> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=946932019-10-31T20:21:41ZFrederico Camara
<ul><li><strong>File</strong> <a href="/attachments/24255">0001-Rollback-functionality.patch</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/24255/0001-Rollback-functionality.patch">0001-Rollback-functionality.patch</a> added</li></ul><p>Patch against redmine 4.0 with various fixes<br />dry-run first (test, may have some hunk offsets but it's working):<br /><pre>
patch -p1 --dry-run < 0001-Rollback-functionality.patch
</pre><br />Ok? then apply:<br /><pre>
patch -p1 < 0001-Rollback-functionality.patch
</pre></p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=947032019-11-01T15:45:00ZFrederico Camara
<ul><li><strong>File</strong> <a href="/attachments/24256">0003-Rollback-functionality.patch</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/24256/0003-Rollback-functionality.patch">0003-Rollback-functionality.patch</a> added</li></ul><p>I made some mistakes in last patch, this one corrects everything. Apply this instead.</p>
<p>Patch against redmine 4.0 with fixes<br />dry-run first (test, may have some hunk offsets but it's working):<br /><pre>
patch -p1 --dry-run < 0003-Rollback-functionality.patch
</pre><br />Ok? then apply:<br /><pre>
patch -p1 < 0003-Rollback-functionality.patch
</pre></p> Redmine - Patch #7610: Patch providing issue journal rollbackhttps://www.redmine.org/issues/7610?journal_id=1062932022-04-05T06:16:23ZAleksandar Pavic
<ul></ul><p>This should probably be added as a setting for "paranoid mode"...</p>