summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Halstrick <christian.halstrick@sap.com>2010-10-26 18:04:35 +0200
committerChristian Halstrick <christian.halstrick@sap.com>2010-10-26 18:07:49 +0200
commite10808e6585fe16956bda294bcc3ffbaa1410a1c (patch)
tree251d1f0addf46bea010cfd429d0a53dec020314d
parent8472aa031910c1c35fbe7708aa05ab9aeac3b0d3 (diff)
downloadjgit-e10808e6585fe16956bda294bcc3ffbaa1410a1c.tar.gz
jgit-e10808e6585fe16956bda294bcc3ffbaa1410a1c.zip
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>
-rw-r--r--org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/CLIText.properties1
-rw-r--r--org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Diff.java18
2 files changed, 19 insertions, 0 deletions
diff --git a/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/CLIText.properties b/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/CLIText.properties
index b803604dc1..488cff0b9b 100644
--- a/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/CLIText.properties
+++ b/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
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Diff.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Diff.java
index a5f801b296..19d11d629e 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Diff.java
+++ b/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;