[pgm] Add option --heads for ls-remote

TODO: find a way to use option -h which is already captured by
TextBuiltin's option --help which also uses the alias -h.

Bug: 444072
Change-Id: Ie66584c2fc7fc224014a43cf928547703dd9d213
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
Matthias Sohn 2014-11-24 00:41:39 +01:00
parent 816de9e9fa
commit 490660a7c6
3 changed files with 16 additions and 1 deletions

View File

@ -93,4 +93,15 @@ public void testLsRemote() throws Exception {
"d0b1ef2b3dea02bb2ca824445c04e6def012c32c refs/tags/tag3^{}",
"" }, result.toArray());
}
@Test
public void testLsRemoteHeads() throws Exception {
final List<String> result = CLIGitCommand.execute(
"git ls-remote --heads "
+ db.getDirectory(), db);
assertArrayEquals(new String[] {
"d0b1ef2b3dea02bb2ca824445c04e6def012c32c refs/heads/master",
"d0b1ef2b3dea02bb2ca824445c04e6def012c32c refs/heads/test",
"" }, result.toArray());
}
}

View File

@ -203,6 +203,7 @@ usage_Gc=Cleanup unnecessary files and optimize the local repository
usage_Glog=View commit history as a graph
usage_IndexPack=Build pack index file for an existing packed archive
usage_LsRemote=List references in a remote repository
usage_lsRemoteHeads=Show only refs starting with refs/heads
usage_LsTree=List the contents of a tree object
usage_MakeCacheTree=Show the current cache tree structure
usage_MergeBase=Find as good common ancestors as possible for a merge

View File

@ -58,6 +58,9 @@
@Command(common = true, usage = "usage_LsRemote")
class LsRemote extends TextBuiltin {
@Option(name = "--heads", usage = "usage_lsRemoteHeads")
private boolean heads;
@Option(name = "--timeout", metaVar = "metaVar_service", usage = "usage_abortConnectionIfNoActivity")
int timeout = -1;
@ -67,7 +70,7 @@ class LsRemote extends TextBuiltin {
@Override
protected void run() throws Exception {
LsRemoteCommand command = Git.lsRemoteRepository().setRemote(remote)
.setTimeout(timeout);
.setTimeout(timeout).setHeads(heads);
TreeSet<Ref> refs = new TreeSet<Ref>(new Comparator<Ref>() {
public int compare(Ref r1, Ref r2) {