Browse Source

Add option to select diff algorithm for diff command

The diff command in the pgm package was enhanced to allow
choosing the diff algorithm (currently myers or histogram)

Change-Id: I72083e78fb5c92868eb5d8ec512277d212a39349
Signed-off-by: Christian Halstrick <christian.halstrick@sap.com>
stable-0.10
Christian Halstrick 14 years ago
parent
commit
e10808e658
  1. 1
      org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/CLIText.properties
  2. 18
      org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Diff.java

1
org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/CLIText.properties

@ -147,6 +147,7 @@ usage_configureTheServiceInDaemonServicename=configure the service in daemon.ser
usage_deleteBranchEvenIfNotMerged=delete branch (even if not merged)
usage_deleteFullyMergedBranch=delete fully merged branch
usage_detectRenames=detect renamed files
usage_diffAlgorithm=the diff algorithm to use
usage_directoriesToExport=directories to export
usage_disableTheServiceInAllRepositories=disable the service in all repositories
usage_displayAListOfAllRegisteredJgitCommands=Display a list of all registered jgit commands

18
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Diff.java

@ -53,8 +53,11 @@ import java.io.PrintWriter;
import java.text.MessageFormat;
import java.util.List;
import org.eclipse.jgit.diff.DiffAlgorithm;
import org.eclipse.jgit.diff.DiffEntry;
import org.eclipse.jgit.diff.DiffFormatter;
import org.eclipse.jgit.diff.HistogramDiff;
import org.eclipse.jgit.diff.MyersDiff;
import org.eclipse.jgit.diff.RawTextComparator;
import org.eclipse.jgit.diff.RenameDetector;
import org.eclipse.jgit.dircache.DirCacheIterator;
@ -98,6 +101,21 @@ class Diff extends TextBuiltin {
detectRenames = Boolean.FALSE;
}
enum SupportedAlgorithm {
myers(MyersDiff.INSTANCE), histogram(new HistogramDiff());
public DiffAlgorithm algorithm;
SupportedAlgorithm(DiffAlgorithm a) {
algorithm = a;
}
};
@Option(name = "--algorithm", usage = "usage_diffAlgorithm")
void setAlgorithm(SupportedAlgorithm s) {
diffFmt.setDiffAlgorithm(s.algorithm);
}
@Option(name = "-l", usage = "usage_renameLimit")
private Integer renameLimit;

Loading…
Cancel
Save