private void processGetFile()

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);
        }
    }