Signed-off-by: Robin Rosenberg <robin.rosenberg@xxxxxxxxxx> --- .../src/org/spearce/jgit/pgm/LsTree.java | 19 +++++++++++++------ 1 files changed, 13 insertions(+), 6 deletions(-) diff --git a/org.spearce.jgit/src/org/spearce/jgit/pgm/LsTree.java b/org.spearce.jgit/src/org/spearce/jgit/pgm/LsTree.java index c242bd7..2cda485 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/pgm/LsTree.java +++ b/org.spearce.jgit/src/org/spearce/jgit/pgm/LsTree.java @@ -41,10 +41,13 @@ import java.io.File; import org.spearce.jgit.lib.Constants; import org.spearce.jgit.lib.FileMode; +import org.spearce.jgit.revwalk.filter.WildCardTreeFilter; import org.spearce.jgit.treewalk.FileTreeIterator; import org.spearce.jgit.treewalk.TreeWalk; +import org.spearce.jgit.treewalk.filter.TreeFilter; class LsTree extends TextBuiltin { + @Override void execute(final String[] args) throws Exception { final TreeWalk walk = new TreeWalk(db); @@ -60,17 +63,21 @@ class LsTree extends TextBuiltin { break; } - if (argi == args.length) - throw die("usage: [-r] treename"); - else if (argi + 1 < args.length) - throw die("too many arguments"); - - final String n = args[argi]; + final String n = args[argi++]; if (is_WorkDir(n)) walk.addTree(new FileTreeIterator(new File(n))); else walk.addTree(resolve(n)); + if (argi == args.length - 1) { + TreeFilter filter = WildCardTreeFilter.create(args[argi++]); + walk.setFilter(filter); + } + if (argi + 1 == args.length) + throw die("usage: [-r] treename [pattern]"); + else if (argi + 1 < args.length) + throw die("too many arguments"); + while (walk.next()) { final FileMode mode = walk.getFileMode(1); if (mode == FileMode.TREE) -- 1.5.5.1.178.g1f811 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html