Skip to content

Commit 1a50186

Browse files
committed
Support for Surround SCM history - Removed unneccessary check for 'add to branch'.
1 parent 16cefe8 commit 1a50186

File tree

1 file changed

+28
-24
lines changed

1 file changed

+28
-24
lines changed

src/org/opensolaris/opengrok/history/SSCMHistoryParser.java

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,12 @@ public class SSCMHistoryParser implements Executor.StreamHandler {
4646
this.repository = repository;
4747
}
4848

49-
private static final String FILTER_ACTION_PATTERN = "^add to branch$";
50-
private static final String ACTION_PATTERN = "[a-z ]+";
49+
private static final String ACTION_PATTERN = "[a-z][a-z ]+";
5150
private static final String USER_PATTERN = "\\w+";
5251
private static final String VERSION_PATTERN = "\\d+";
5352
private static final String TIME_PATTERN = "\\d{1,2}/\\d{1,2}/\\d{4} \\d{1,2}:\\d{2} [AP]M";
5453
private static final String COMMENT_START_PATTERN = "Comments - ";
55-
// ^([a-z ]+)(?:\[.*?\])?\s+(\w+)\s+(\d+)\s+(\d{1,2}/\d{1,2}/\d{4} \d{1,2}:\d{2} [AP]M)$\s*(?:Comments - )?
54+
// ^([a-z][a-z ]+)(?:\[(.*?)\])?\s+(\w+)\s+(\d+)\s+(\d{1,2}/\d{1,2}/\d{4} \d{1,2}:\d{2} [AP]M)$\s*(?:Comments - )?
5655
private static final Pattern HISTORY_PATTERN = Pattern.compile("^(" + ACTION_PATTERN + ")(?:\\[(.*?)\\])?\\s+(" + USER_PATTERN + ")\\s+(" + VERSION_PATTERN + ")\\s+(" + TIME_PATTERN + ")$\\s*(?:" + COMMENT_START_PATTERN + ")?",
5756
Pattern.MULTILINE);
5857

@@ -95,29 +94,34 @@ public void processStream(InputStream input) throws IOException {
9594
entries.add(0, entry);
9695
entry = null;
9796
}
98-
if (!matcher.group(1).matches(FILTER_ACTION_PATTERN)) {
99-
String revision = matcher.group(4);
100-
String author = matcher.group(3);
101-
String branch = matcher.group(2);
97+
String revision = matcher.group(4);
98+
String author = matcher.group(3);
99+
String context = matcher.group(2);
100+
String date = matcher.group(5);
102101

103-
long currentRevision = Long.parseLong(revision);
104-
if (revisionCounter < currentRevision) {
105-
revisionCounter = currentRevision;
106-
107-
entry = new HistoryEntry();
108-
// Add branch name to message. Helps when branch name is used
109-
// as indicator of why promote was made.
110-
if (branch != null)
111-
entry.appendMessage("[" + branch + "] ");
112-
entry.setAuthor(author);
113-
entry.setRevision(revision);
114-
try {
115-
entry.setDate(df.parse(matcher.group(5)));
116-
} catch (ParseException ex) {
117-
OpenGrokLogger.getLogger().log(Level.WARNING, "Failed to parse date: '" + matcher.group(5) + "'", ex);
118-
}
119-
entry.setActive(true);
102+
long currentRevision = 0;
103+
try {
104+
currentRevision = Long.parseLong(revision);
105+
} catch (NumberFormatException ex) {
106+
OpenGrokLogger.getLogger().log(Level.WARNING, "Failed to parse revision: '" + revision + "'", ex);
107+
}
108+
// We're only interested in history entries that change file content
109+
if (revisionCounter < currentRevision) {
110+
revisionCounter = currentRevision;
111+
112+
entry = new HistoryEntry();
113+
// Add context of action to message. Helps when branch name is used
114+
// as indicator of why promote was made.
115+
if (context != null)
116+
entry.appendMessage("[" + context + "] ");
117+
entry.setAuthor(author);
118+
entry.setRevision(revision);
119+
try {
120+
entry.setDate(df.parse(date));
121+
} catch (ParseException ex) {
122+
OpenGrokLogger.getLogger().log(Level.WARNING, "Failed to parse date: '" + date + "'", ex);
120123
}
124+
entry.setActive(true);
121125
}
122126
prevEntryEnd = matcher.end();
123127
}

0 commit comments

Comments
 (0)