[pgm] Add options --name-only, --name-status to diff, log, show
Change-Id: Ib218bd2ccbd7990feca4c35d8c8dc34d4a8291e6
This commit is contained in:
parent
3d522c6900
commit
c14e6f5c6c
|
@ -0,0 +1,67 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2022, Matthias Sohn <matthias.sohn@sap.com> and others
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Distribution License v. 1.0 which is available at
|
||||||
|
* https://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.eclipse.jgit.pgm;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
import org.eclipse.jgit.lib.CLIRepositoryTestCase;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class DiffTest extends CLIRepositoryTestCase {
|
||||||
|
|
||||||
|
private static final String NO_NEWLINE = "\\ No newline at end of file";
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() throws Exception {
|
||||||
|
writeTrashFile("a", "a");
|
||||||
|
execute("git add a");
|
||||||
|
execute("git commit -m added");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDiffCommitNewFile() throws Exception {
|
||||||
|
writeTrashFile("a1", "a");
|
||||||
|
String result = toString(execute("git diff"));
|
||||||
|
assertEquals(
|
||||||
|
toString("diff --git a/a1 b/a1", "new file mode 100644",
|
||||||
|
"index 0000000..2e65efe", "--- /dev/null", "+++ b/a1",
|
||||||
|
"@@ -0,0 +1 @@", "+a", NO_NEWLINE),
|
||||||
|
result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDiffCommitModifiedFile() throws Exception {
|
||||||
|
writeTrashFile("a", "a1");
|
||||||
|
String result = toString(execute("git diff"));
|
||||||
|
assertEquals(
|
||||||
|
toString("diff --git a/a b/a", "index 2e65efe..59ef8d1 100644",
|
||||||
|
"--- a/a", "+++ b/a", "@@ -1 +1 @@",
|
||||||
|
"-a", NO_NEWLINE, "+a1", NO_NEWLINE),
|
||||||
|
result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDiffCommitModifiedFileNameOnly() throws Exception {
|
||||||
|
writeTrashFile("a", "a1");
|
||||||
|
writeTrashFile("b", "b");
|
||||||
|
String result = toString(execute("git diff --name-only"));
|
||||||
|
assertEquals(toString("a", "b"), result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDiffCommitModifiedFileNameStatus() throws Exception {
|
||||||
|
writeTrashFile("a", "a1");
|
||||||
|
writeTrashFile("b", "b");
|
||||||
|
String result = toString(execute("git diff --name-status"));
|
||||||
|
assertEquals(toString("M\ta", "A\tb"), result);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2022, Matthias Sohn <matthias.sohn@sap.com> and others
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Distribution License v. 1.0 which is available at
|
||||||
|
* https://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.eclipse.jgit.pgm;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
import org.eclipse.jgit.lib.CLIRepositoryTestCase;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class LogTest extends CLIRepositoryTestCase {
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() throws Exception {
|
||||||
|
writeTrashFile("a", "a");
|
||||||
|
writeTrashFile("b", "a");
|
||||||
|
execute("git add a b");
|
||||||
|
execute("git commit -m added");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testLogCommitNewFile() throws Exception {
|
||||||
|
String result = toString(execute("git log"));
|
||||||
|
assertEquals(
|
||||||
|
toString("commit b4680f542095a8b41ea4258a5c03b548543a817c",
|
||||||
|
"Author: GIT_COMMITTER_NAME <GIT_COMMITTER_EMAIL>",
|
||||||
|
"Date: Sat Aug 15 20:12:58 2009 -0330", "added"),
|
||||||
|
result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testLogNameOnly() throws Exception {
|
||||||
|
String result = toString(execute("git log --name-only"));
|
||||||
|
assertEquals(
|
||||||
|
toString("commit b4680f542095a8b41ea4258a5c03b548543a817c",
|
||||||
|
"Author: GIT_COMMITTER_NAME <GIT_COMMITTER_EMAIL>",
|
||||||
|
"Date: Sat Aug 15 20:12:58 2009 -0330", "added", "a",
|
||||||
|
"b"),
|
||||||
|
result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDiffCommitModifiedFileNameStatus() throws Exception {
|
||||||
|
String result = toString(execute("git log --name-status"));
|
||||||
|
assertEquals(toString("commit b4680f542095a8b41ea4258a5c03b548543a817c",
|
||||||
|
"Author: GIT_COMMITTER_NAME <GIT_COMMITTER_EMAIL>",
|
||||||
|
"Date: Sat Aug 15 20:12:58 2009 -0330", "added", "A\ta",
|
||||||
|
"A\tb"),
|
||||||
|
result);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,64 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2022, Matthias Sohn <matthias.sohn@sap.com> and others
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Distribution License v. 1.0 which is available at
|
||||||
|
* https://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.eclipse.jgit.pgm;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
import org.eclipse.jgit.lib.CLIRepositoryTestCase;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class ShowTest extends CLIRepositoryTestCase {
|
||||||
|
|
||||||
|
private static final String NO_NEWLINE = "\\ No newline at end of file";
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() throws Exception {
|
||||||
|
writeTrashFile("a", "a");
|
||||||
|
writeTrashFile("b", "b");
|
||||||
|
execute("git add a b");
|
||||||
|
execute("git commit -m added");
|
||||||
|
writeTrashFile("a", "a1");
|
||||||
|
execute("git add a");
|
||||||
|
execute("git commit -m modified");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testShow() throws Exception {
|
||||||
|
String result = toString(execute("git show"));
|
||||||
|
assertEquals(
|
||||||
|
toString("commit ecdf62e777b7413fc463c20e935403d424410ab2",
|
||||||
|
"Author: GIT_COMMITTER_NAME <GIT_COMMITTER_EMAIL>",
|
||||||
|
"Date: Sat Aug 15 20:12:58 2009 -0330", "",
|
||||||
|
" modified", "", "diff --git a/a b/a",
|
||||||
|
"index 2e65efe..59ef8d1 100644", "--- a/a", "+++ b/a",
|
||||||
|
"@@ -1 +1 @@", "-a", NO_NEWLINE, "+a1", NO_NEWLINE),
|
||||||
|
result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testShowNameOnly() throws Exception {
|
||||||
|
String result = toString(execute("git show --name-only"));
|
||||||
|
assertEquals(toString("commit ecdf62e777b7413fc463c20e935403d424410ab2",
|
||||||
|
"Author: GIT_COMMITTER_NAME <GIT_COMMITTER_EMAIL>",
|
||||||
|
"Date: Sat Aug 15 20:12:58 2009 -0330", "", " modified",
|
||||||
|
"a"), result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testShowNameStatus() throws Exception {
|
||||||
|
String result = toString(execute("git show --name-status"));
|
||||||
|
assertEquals(toString("commit ecdf62e777b7413fc463c20e935403d424410ab2",
|
||||||
|
"Author: GIT_COMMITTER_NAME <GIT_COMMITTER_EMAIL>",
|
||||||
|
"Date: Sat Aug 15 20:12:58 2009 -0330", "", " modified",
|
||||||
|
"M\ta"), result);
|
||||||
|
}
|
||||||
|
}
|
|
@ -40,6 +40,7 @@ cannotRenameDetachedHEAD=Cannot rename detached HEAD
|
||||||
cannotResolve=Cannot resolve {0}
|
cannotResolve=Cannot resolve {0}
|
||||||
cannotSetupConsole=Cannot setup console
|
cannotSetupConsole=Cannot setup console
|
||||||
cannotUseObjectsWithGlog=Cannot use --objects with glog
|
cannotUseObjectsWithGlog=Cannot use --objects with glog
|
||||||
|
cannotUseNameStatusOnlyAndNameOnly=Cannot use --name-only, --name-status are mutually exclusive
|
||||||
cantFindGitDirectory=error: can't find git directory
|
cantFindGitDirectory=error: can't find git directory
|
||||||
cantWrite=Can''t write {0}
|
cantWrite=Can''t write {0}
|
||||||
changesNotStagedForCommit=Changes not staged for commit:
|
changesNotStagedForCommit=Changes not staged for commit:
|
||||||
|
@ -413,6 +414,7 @@ usage_mergeStrategy=Use the given merge strategy. Can be supplied more than once
|
||||||
usage_message=Set the commit message to be used for the merge commit (in case one is created).
|
usage_message=Set the commit message to be used for the merge commit (in case one is created).
|
||||||
usage_moveRenameABranch=move/rename a branch
|
usage_moveRenameABranch=move/rename a branch
|
||||||
usage_nameStatus=show only name and status of files
|
usage_nameStatus=show only name and status of files
|
||||||
|
usage_nameOnly=show only name of files
|
||||||
usage_noCheckoutAfterClone=no checkout of HEAD is performed after the clone is complete
|
usage_noCheckoutAfterClone=no checkout of HEAD is performed after the clone is complete
|
||||||
usage_noCommit=Don't commit after a successful merge
|
usage_noCommit=Don't commit after a successful merge
|
||||||
usage_noPrefix=do not show any source or destination prefix
|
usage_noPrefix=do not show any source or destination prefix
|
||||||
|
|
|
@ -48,6 +48,10 @@
|
||||||
class Diff extends TextBuiltin {
|
class Diff extends TextBuiltin {
|
||||||
private DiffFormatter diffFmt;
|
private DiffFormatter diffFmt;
|
||||||
|
|
||||||
|
private boolean showNameOnly = false;
|
||||||
|
|
||||||
|
private boolean showNameAndStatusOnly = false;
|
||||||
|
|
||||||
@Argument(index = 0, metaVar = "metaVar_treeish")
|
@Argument(index = 0, metaVar = "metaVar_treeish")
|
||||||
private AbstractTreeIterator oldTree;
|
private AbstractTreeIterator oldTree;
|
||||||
|
|
||||||
|
@ -81,7 +85,22 @@ void setAlgorithm(SupportedAlgorithm s) {
|
||||||
private Integer renameLimit;
|
private Integer renameLimit;
|
||||||
|
|
||||||
@Option(name = "--name-status", usage = "usage_nameStatus")
|
@Option(name = "--name-status", usage = "usage_nameStatus")
|
||||||
private boolean showNameAndStatusOnly;
|
void nameAndStatusOnly(boolean on) {
|
||||||
|
if (showNameOnly) {
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
CLIText.get().cannotUseNameStatusOnlyAndNameOnly);
|
||||||
|
}
|
||||||
|
showNameAndStatusOnly = on;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Option(name = "--name-only", usage = "usage_nameOnly")
|
||||||
|
void nameOnly(boolean on) {
|
||||||
|
if (showNameAndStatusOnly) {
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
CLIText.get().cannotUseNameStatusOnlyAndNameOnly);
|
||||||
|
}
|
||||||
|
showNameOnly = on;
|
||||||
|
}
|
||||||
|
|
||||||
@Option(name = "--ignore-space-at-eol")
|
@Option(name = "--ignore-space-at-eol")
|
||||||
void ignoreSpaceAtEol(@SuppressWarnings("unused") boolean on) {
|
void ignoreSpaceAtEol(@SuppressWarnings("unused") boolean on) {
|
||||||
|
@ -183,6 +202,9 @@ protected void run() {
|
||||||
if (showNameAndStatusOnly) {
|
if (showNameAndStatusOnly) {
|
||||||
nameStatus(outw, diffFmt.scan(oldTree, newTree));
|
nameStatus(outw, diffFmt.scan(oldTree, newTree));
|
||||||
outw.flush();
|
outw.flush();
|
||||||
|
} else if(showNameOnly) {
|
||||||
|
nameOnly(outw, diffFmt.scan(oldTree, newTree));
|
||||||
|
outw.flush();
|
||||||
} else {
|
} else {
|
||||||
diffFmt.format(oldTree, newTree);
|
diffFmt.format(oldTree, newTree);
|
||||||
diffFmt.flush();
|
diffFmt.flush();
|
||||||
|
@ -220,4 +242,27 @@ static void nameStatus(ThrowingPrintWriter out, List<DiffEntry> files)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void nameOnly(ThrowingPrintWriter out, List<DiffEntry> files)
|
||||||
|
throws IOException {
|
||||||
|
for (DiffEntry ent : files) {
|
||||||
|
switch (ent.getChangeType()) {
|
||||||
|
case ADD:
|
||||||
|
out.println(ent.getNewPath());
|
||||||
|
break;
|
||||||
|
case DELETE:
|
||||||
|
out.println(ent.getOldPath());
|
||||||
|
break;
|
||||||
|
case MODIFY:
|
||||||
|
out.println(ent.getNewPath());
|
||||||
|
break;
|
||||||
|
case COPY:
|
||||||
|
out.println(ent.getNewPath());
|
||||||
|
break;
|
||||||
|
case RENAME:
|
||||||
|
out.println(ent.getNewPath());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,6 +60,10 @@ class Log extends RevWalkTextBuiltin {
|
||||||
|
|
||||||
private Map<String, NoteMap> noteMaps;
|
private Map<String, NoteMap> noteMaps;
|
||||||
|
|
||||||
|
private boolean showNameOnly = false;
|
||||||
|
|
||||||
|
private boolean showNameAndStatusOnly = false;
|
||||||
|
|
||||||
@Option(name="--decorate", usage="usage_showRefNamesMatchingCommits")
|
@Option(name="--decorate", usage="usage_showRefNamesMatchingCommits")
|
||||||
private boolean decorate;
|
private boolean decorate;
|
||||||
|
|
||||||
|
@ -99,7 +103,22 @@ void noRenames(@SuppressWarnings("unused") boolean on) {
|
||||||
private Integer renameLimit;
|
private Integer renameLimit;
|
||||||
|
|
||||||
@Option(name = "--name-status", usage = "usage_nameStatus")
|
@Option(name = "--name-status", usage = "usage_nameStatus")
|
||||||
private boolean showNameAndStatusOnly;
|
void nameAndStatusOnly(boolean on) {
|
||||||
|
if (showNameOnly) {
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
CLIText.get().cannotUseNameStatusOnlyAndNameOnly);
|
||||||
|
}
|
||||||
|
showNameAndStatusOnly = on;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Option(name = "--name-only", usage = "usage_nameOnly")
|
||||||
|
void nameOnly(boolean on) {
|
||||||
|
if (showNameAndStatusOnly) {
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
CLIText.get().cannotUseNameStatusOnlyAndNameOnly);
|
||||||
|
}
|
||||||
|
showNameOnly = on;
|
||||||
|
}
|
||||||
|
|
||||||
@Option(name = "--ignore-space-at-eol")
|
@Option(name = "--ignore-space-at-eol")
|
||||||
void ignoreSpaceAtEol(@SuppressWarnings("unused") boolean on) {
|
void ignoreSpaceAtEol(@SuppressWarnings("unused") boolean on) {
|
||||||
|
@ -266,8 +285,10 @@ protected void show(RevCommit c) throws Exception {
|
||||||
if (showNotes(c))
|
if (showNotes(c))
|
||||||
outw.println();
|
outw.println();
|
||||||
|
|
||||||
if (c.getParentCount() <= 1 && (showNameAndStatusOnly || showPatch))
|
if (c.getParentCount() <= 1 && (showNameAndStatusOnly || showPatch
|
||||||
|
|| showNameOnly)) {
|
||||||
showDiff(c);
|
showDiff(c);
|
||||||
|
}
|
||||||
outw.flush();
|
outw.flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -364,9 +385,11 @@ private void showDiff(RevCommit c) throws IOException {
|
||||||
: null;
|
: null;
|
||||||
final RevTree b = c.getTree();
|
final RevTree b = c.getTree();
|
||||||
|
|
||||||
if (showNameAndStatusOnly)
|
if (showNameAndStatusOnly) {
|
||||||
Diff.nameStatus(outw, diffFmt.scan(a, b));
|
Diff.nameStatus(outw, diffFmt.scan(a, b));
|
||||||
else {
|
} else if (showNameOnly) {
|
||||||
|
Diff.nameOnly(outw, diffFmt.scan(a, b));
|
||||||
|
} else {
|
||||||
outw.flush();
|
outw.flush();
|
||||||
diffFmt.format(a, b);
|
diffFmt.format(a, b);
|
||||||
diffFmt.flush();
|
diffFmt.flush();
|
||||||
|
|
|
@ -58,6 +58,10 @@ class Show extends TextBuiltin {
|
||||||
|
|
||||||
private DiffFormatter diffFmt;
|
private DiffFormatter diffFmt;
|
||||||
|
|
||||||
|
private boolean showNameOnly = false;
|
||||||
|
|
||||||
|
private boolean showNameAndStatusOnly = false;
|
||||||
|
|
||||||
@Argument(index = 0, metaVar = "metaVar_object")
|
@Argument(index = 0, metaVar = "metaVar_object")
|
||||||
private String objectName;
|
private String objectName;
|
||||||
|
|
||||||
|
@ -83,7 +87,22 @@ void noRenames(@SuppressWarnings("unused") boolean on) {
|
||||||
private Integer renameLimit;
|
private Integer renameLimit;
|
||||||
|
|
||||||
@Option(name = "--name-status", usage = "usage_nameStatus")
|
@Option(name = "--name-status", usage = "usage_nameStatus")
|
||||||
private boolean showNameAndStatusOnly;
|
void nameAndStatusOnly(boolean on) {
|
||||||
|
if (showNameOnly) {
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
CLIText.get().cannotUseNameStatusOnlyAndNameOnly);
|
||||||
|
}
|
||||||
|
showNameAndStatusOnly = on;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Option(name = "--name-only", usage = "usage_nameOnly")
|
||||||
|
void nameOnly(boolean on) {
|
||||||
|
if (showNameAndStatusOnly) {
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
CLIText.get().cannotUseNameStatusOnlyAndNameOnly);
|
||||||
|
}
|
||||||
|
showNameOnly = on;
|
||||||
|
}
|
||||||
|
|
||||||
@Option(name = "--ignore-space-at-eol")
|
@Option(name = "--ignore-space-at-eol")
|
||||||
void ignoreSpaceAtEol(@SuppressWarnings("unused") boolean on) {
|
void ignoreSpaceAtEol(@SuppressWarnings("unused") boolean on) {
|
||||||
|
@ -302,9 +321,11 @@ private void showDiff(RevCommit c) throws IOException {
|
||||||
final RevTree a = c.getParent(0).getTree();
|
final RevTree a = c.getParent(0).getTree();
|
||||||
final RevTree b = c.getTree();
|
final RevTree b = c.getTree();
|
||||||
|
|
||||||
if (showNameAndStatusOnly)
|
if (showNameAndStatusOnly) {
|
||||||
Diff.nameStatus(outw, diffFmt.scan(a, b));
|
Diff.nameStatus(outw, diffFmt.scan(a, b));
|
||||||
else {
|
} else if (showNameOnly) {
|
||||||
|
Diff.nameOnly(outw, diffFmt.scan(a, b));
|
||||||
|
} else {
|
||||||
outw.flush();
|
outw.flush();
|
||||||
diffFmt.format(a, b);
|
diffFmt.format(a, b);
|
||||||
diffFmt.flush();
|
diffFmt.flush();
|
||||||
|
|
|
@ -119,6 +119,7 @@ public static String fatalError(String message) {
|
||||||
/***/ public String cannotResolve;
|
/***/ public String cannotResolve;
|
||||||
/***/ public String cannotSetupConsole;
|
/***/ public String cannotSetupConsole;
|
||||||
/***/ public String cannotUseObjectsWithGlog;
|
/***/ public String cannotUseObjectsWithGlog;
|
||||||
|
/***/ public String cannotUseNameStatusOnlyAndNameOnly;
|
||||||
/***/ public String cantFindGitDirectory;
|
/***/ public String cantFindGitDirectory;
|
||||||
/***/ public String cantWrite;
|
/***/ public String cantWrite;
|
||||||
/***/ public String changesNotStagedForCommit;
|
/***/ public String changesNotStagedForCommit;
|
||||||
|
|
|
@ -51,6 +51,8 @@ public class DiffCommand extends GitCommand<List<DiffEntry>> {
|
||||||
|
|
||||||
private boolean showNameAndStatusOnly;
|
private boolean showNameAndStatusOnly;
|
||||||
|
|
||||||
|
private boolean showNameOnly;
|
||||||
|
|
||||||
private OutputStream out;
|
private OutputStream out;
|
||||||
|
|
||||||
private int contextLines = -1;
|
private int contextLines = -1;
|
||||||
|
@ -72,7 +74,7 @@ protected DiffCommand(Repository repo) {
|
||||||
}
|
}
|
||||||
|
|
||||||
private DiffFormatter getDiffFormatter() {
|
private DiffFormatter getDiffFormatter() {
|
||||||
return out != null && !showNameAndStatusOnly
|
return out != null && !showNameAndStatusOnly && !showNameOnly
|
||||||
? new DiffFormatter(new BufferedOutputStream(out))
|
? new DiffFormatter(new BufferedOutputStream(out))
|
||||||
: new DiffFormatter(NullOutputStream.INSTANCE);
|
: new DiffFormatter(NullOutputStream.INSTANCE);
|
||||||
}
|
}
|
||||||
|
@ -114,7 +116,7 @@ public List<DiffEntry> call() throws GitAPIException {
|
||||||
diffFmt.setPathFilter(pathFilter);
|
diffFmt.setPathFilter(pathFilter);
|
||||||
|
|
||||||
List<DiffEntry> result = diffFmt.scan(oldTree, newTree);
|
List<DiffEntry> result = diffFmt.scan(oldTree, newTree);
|
||||||
if (showNameAndStatusOnly) {
|
if (showNameAndStatusOnly || showNameOnly) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
if (contextLines >= 0) {
|
if (contextLines >= 0) {
|
||||||
|
@ -194,6 +196,19 @@ public DiffCommand setShowNameAndStatusOnly(boolean showNameAndStatusOnly) {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set whether to return only names of changed files
|
||||||
|
*
|
||||||
|
* @param showNameOnly
|
||||||
|
* whether to return only names files
|
||||||
|
* @return this instance
|
||||||
|
* @since 6.4
|
||||||
|
*/
|
||||||
|
public DiffCommand setShowNameOnly(boolean showNameOnly) {
|
||||||
|
this.showNameOnly = showNameOnly;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set output stream
|
* Set output stream
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue