in maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogConsumer.java [418:464]
private void processGetFile(String line) {
if (line.length() == 0) {
if (currentChange != null) {
entries.add(currentChange);
}
resetChangeLog();
status = STATUS_GET_HEADER;
} else {
Matcher matcher = FILE_PATTERN.matcher(line);
if (!matcher.matches()) {
return;
}
final String actionChar = matcher.group(1);
// action is currently not used
final ScmFileStatus action;
String name = matcher.group(2);
String originalName = null;
String originalRevision = null;
if ("A".equals(actionChar)) {
action = ScmFileStatus.ADDED;
} else if ("M".equals(actionChar)) {
action = ScmFileStatus.MODIFIED;
} else if ("D".equals(actionChar)) {
action = ScmFileStatus.DELETED;
} else if ("R".equals(actionChar)) {
action = ScmFileStatus.RENAMED;
originalName = name;
name = matcher.group(4);
originalRevision = currentChange.getParentRevision();
} else if ("C".equals(actionChar)) {
action = ScmFileStatus.COPIED;
originalName = name;
name = matcher.group(4);
originalRevision = currentChange.getParentRevision();
} else {
action = ScmFileStatus.UNKNOWN;
}
final ChangeFile changeFile = new ChangeFile(name, currentRevision);
changeFile.setAction(action);
changeFile.setOriginalName(originalName);
changeFile.setOriginalRevision(originalRevision);
currentChange.addFile(changeFile);
}
}