Feature #12388
openDiffs for editions of issue/notes entries
Description
It should be possible to see what changes had been done to the issue/note if someone edited it after it was already created.
If I edit issue description there is a diff entry generated. But if I edit the note itself there is no info that the note was edited.
Files
Related issues
Updated by Fred Giusto over 13 years ago
+1
I think it's very important. Legally we can need to prove something.
I think also that only my last note of an issue can be modified. It's inconsistent to modify a note edited although another has been written after.
Updated by kaven yan about 13 years ago
+1
it's very useful, and every notes will be kept. History is very important.
So everyone can edit every notes safely.
Updated by Miqayel Gevorgyan about 11 years ago
+1
It's very useful. History is very important.
Updated by S B about 11 years ago
- I understand that the ability to edit the notes is from #527, #585 and #627.
- This edition of the notes permits to modify a note in case of mistake without having other entry in the log of history.
- As a consequence, having an history on the edition of a note is contradictory with the ability to edit in the current model of Redmine.
- adapt to the note the system of history that belongs to the wiki
- so we can have a link "History" next to the buttons "Quote" and "Modify"
Updated by Anonymous about 10 years ago
+1
Sometimes content gets deleted accidently from comments. It would be very helpful, if these changes were also logged so content could get restored.
Updated by Toshi MARUYAMA about 9 years ago
- Has duplicate Feature #26527: Show previous comment version when editing an issue comment added
Updated by Go MAEDA almost 8 years ago
- Has duplicate Feature #29687: Keep history for comment editions added
Updated by Go MAEDA over 7 years ago
- Has duplicate Feature #2598: Edit of issue notes should be tracked added
Updated by Go MAEDA over 7 years ago
- Related to Patch #7610: Patch providing issue journal rollback added
Updated by Go MAEDA over 7 years ago
- Related to Feature #12416: Comment change notification added
Updated by Bernhard Rohloff over 7 years ago
+1 If somebody edits a comment it should at least be visible to others.
Updated by Anonymous over 7 years ago
+1 but only to indicate the message as "Edited" and show when it was edited, but maybe not to log the history of the edits of each message changes. They are usually not really necessary to store and it would generally be more rubbish to fill the database with.
However a mechanism which could be implemented on the front-end which could save the fields of an not yet posted form as real-time draft into the local storage and then read on next reload would be amazing.
Updated by Marius BĂLTEANU about 7 years ago
- Related to Feature #31505: Mark edited journal notes as "Edited" added
Updated by Marius BĂLTEANU about 7 years ago
Bernhard Rohloff wrote:
+1 If somebody edits a comment it should at least be visible to others.
I've added a patch to #31505 which implements this feature.
Updated by Marius BĂLTEANU over 4 years ago
- Has duplicate Defect #36509: Modifications on comments in tickets are not tracked with respect to changes added
Updated by Jakob Heinrich about 1 year ago
Since many issues on this have been opend and closed as duplicate in the last 10 years, I think there is a true need for that feature.
The Company I work at is also obliged to save all informations that is relevant to quality management including everything from our Redmine instance. We had to deactivate the edit button for comments, which lead to frustration when collegues where not able to correct their typos.
I've no experience in Ruby development, but I might be able to get it done with some help.
Could any experienced contributer just give me a highlevel rundown of what changes I would need to make to the codebase?
Updated by Holger Just 4 months ago
- Has duplicate Feature #43949: Changing access rights to tasks and adding a comment history. added
Updated by Marius BĂLTEANU about 1 month ago
- File 0001-wip.patch 0001-wip.patch added
- Assignee set to Marius BĂLTEANU
- Target version set to 7.1.0
I made a patch that implements history (diffs) for issue notes (0001-wip.patch).
The patch extends the existing functionalities:- store the changes in the
journal_detailstable. The entries are saved with propertynote. - renders the "Edited" label as link instead of plain text where there is at least one entry in the history.
- opens the note history in a modal.
A few points to discuss:
1. If the modal is the best option from an UI perspective. Another options:- show the diff inline with an expand / collapse toggle (similar to comment_edit_history plugin).
- reuse existing UI for
diffwhich renders the diff in a new page.
2. In #31505, we introduced the two new columns (updated_on and updated_by_id) to store only the last change. Now that we completely journalize all the edits made to an edit, I think it make sense to migrate the values from that two columns to an empty journal_detail and drop the columns.
The patch is still work in progress.
Screenshots:
Updated by Marius BĂLTEANU about 1 month ago
- File note-history-modal.png note-history-modal.png added
- File edited-link.png edited-link.png added
Updated by Marius BĂLTEANU about 1 month ago
- Subject changed from diffs for editions of issue/notes entries to Diffs for editions of issue/notes entries
Updated by Florian Walchshofer about 1 month ago
I generally like the idea. An edit history for journal notes is something that I think Redmine core is currently missing.
A few thoughts after looking at the patch:
- The history currently does not show who modified a note and when it was modified.
In the current JS view, I would initially assume that the displayed author and timestamp refer to the edit being viewed.
Instead, they appear to refer to the user and timestamp of the latest edit. - If edit authors and edit timestamps become part of the history, the purpose of
updated_onandupdated_by_idbecomes less clear and may need to be reconsidered. - I like the JS-based approach because it allows reviewing note changes without leaving the current issue page. That said, I'm not a big fan of displaying all revisions as inline expandable diffs.
- It could be useful to provide a comparison view between the first and the latest version of a note.
- For long notes, the current JS view may become difficult to navigate. Something similar to the wiki history view, where specific versions can be selected and compared, might scale better.
- One additional concern is that all corresponding
JournalDetailrecords are currently preloaded, including the full old and new text values used for note history. For the common case where only an "edited" indicator or link is displayed, loading the complete history may not be necessary. - Looking at #44274, another possible direction could be to store note edits as a dedicated
journalized typeinstead of keeping the full history in JournalDetails. This would naturally provide authorship and timestamps for each edit, allow lazy loading of revision history, and further reduce Journal's responsibility for note-specific behavior.
Overall, I think having journal note edit history available in core would be a valuable addition.
Updated by Jimmy Westberg 4 days ago
+1 from me. I really like this feature, and I consider proper revision history for journal notes essential if Redmine is to be relied upon as part of an ISO-certified management system.
This is particularly important to me because the company I work for is currently evaluating to what extent we can rely on Redmine for processes and records that form part of our ISO certification. From that perspective, complete auditability and traceability of changes are not merely nice-to-have features.
For that reason, I fully agree with the previous comment that the history should record who made each edit, in addition to when it was made. In most cases, the editor will probably be the same user who originally wrote the note, but from an audit and traceability perspective, this cannot be assumed. The history itself should provide that information explicitly.
I also think we should separate the question of how the diff is displayed from how the revision history is stored. The proposed JS-based approach and the existing Wiki diff/history UI are different implementations of essentially the same concept. In the longer term, I would strongly prefer Redmine to have one consistent and reusable diff/history viewer for all types of text-based revision history, rather than maintaining separate implementations depending on whether the content happens to be a Wiki page, an issue description, or a journal note.
Regarding the underlying implementation, I am also leaning towards the approach proposed in #44274. Decoupling Journal from Issue and making journaling reusable for different journalized models seems like a much better foundation than implementing note history as another special case inside JournalDetail.
If journal note revisions can become proper journalized records, with their own author and timestamp, while sharing a common revision/diff UI with other revisioned content, I think that would provide both a cleaner architecture and the level of traceability needed for serious quality-management use cases.