Do not sort change messages loaded from notedb by date, part 1/2
In notedb change messages are stored as part of the commit messages on the refs/changes/XX/YYYY/meta branch. The order of the change messages is defined by the commit order and there is no need to sort the messages by commit timestamp. The current sorting of change messages of one patch set by commit timestamp does not work when commits have the same timestamp because then the order for these change messages is left as in the input and in the input the order is the opposite of what we need. Hence change messages that have the same timestamp are returned in the wrong order. As result some tests that check the correct order of the change messages do fail, because when running the tests it happens frequently that commits on the refs/changes/XX/YYYY/meta branch have the same timestamp. On parsing the refs/changes/XX/YYYY/meta branch the order is preserved since the branch is always walked from the tip and the messages are stored in a LinkedListMultimap which preserves the order of the values for each key. Since the parsing is done starting at the tip of the branch we see newest change messages first which means which means we must reverse the result to get the correct order. There is another place in ChangeMessageUtil where change messages that were loaded from notedb are sorted by date. This will be removed in a follow-up change. Change-Id: Ic0c190b83b168341be6dab3d670b1fc86e20016b Signed-off-by: Edwin Kempin <ekempin@google.com>
This commit is contained in:
@@ -135,7 +135,7 @@ class ChangeNotesParser implements AutoCloseable {
|
||||
|
||||
ImmutableListMultimap<PatchSet.Id, ChangeMessage> buildMessages() {
|
||||
for (Collection<ChangeMessage> v : changeMessages.asMap().values()) {
|
||||
Collections.sort((List<ChangeMessage>) v, ChangeNotes.MESSAGE_BY_TIME);
|
||||
Collections.reverse((List<ChangeMessage>) v);
|
||||
}
|
||||
return ImmutableListMultimap.copyOf(changeMessages);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user