You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TransportListCommand.java 1.0KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package org.eclipse.jgit.integrate.remotehelper.internal;
  2. import org.eclipse.jgit.integrate.remotehelper.RemoteHelperCommand;
  3. import org.eclipse.jgit.lib.Ref;
  4. import java.util.List;
  5. import java.util.Map;
  6. public class TransportListCommand extends RemoteHelperCommand {
  7. private final RemoteHelperTransport provider;
  8. public TransportListCommand(RemoteHelperTransport provider) {
  9. super(provider.getContext());
  10. this.provider = provider;
  11. }
  12. @Override
  13. public void handle(List<String> arguments) throws Exception {
  14. Map<String, Ref> refs = provider.getFetchConnection().getRefsMap();
  15. for (String key : refs.keySet()) {
  16. Ref ref = refs.get(key);
  17. StringBuilder builder = new StringBuilder();
  18. if (ref.isSymbolic()) {
  19. builder.append('@').append(ref.getTarget().getName());
  20. } else if (ref.getObjectId() != null) {
  21. builder.append(ref.getObjectId().name());
  22. } else {
  23. builder.append('?');
  24. }
  25. builder.append(' ').append(key);
  26. getContext().reply(builder.toString());
  27. }
  28. getContext().complete();
  29. }
  30. }