code: public void execute() throws Exception {
      String site1 = getSecureBaseUrl(sites.get(0));
      String site2 = getSecureBaseUrl(sites.get(1));
      if(site1.equalsIgnoreCase(site2)) {
        System.err.println("Cannot clone a site into itself.");
        System.exit(1);
      }
      
      try{
        System.out.println("Getting status of ["+site1+"]");
        Status site1Status = StatusCommand.getSiteStatus(site1, token);
        
        System.out.println("Getting status of ["+site2+"]");
        Status site2Status = StatusCommand.getSiteStatus(site2, token);
        if(site1Status != null && site2Status != null) {
          
          String repo = site1Status.getRepo();
          String revision = site1Status.getRevision();
          String branch = site1Status.getBranch();
          
          if(site2Status.getRepo().equals(repo) && site2Status.getBranch().equals(branch) && site2Status.getRevision().equals(revision)) {
            System.err.println("Source [" + site1 + "] is on the same content repo, branch, and revision as the target [" + site2 + "].");
            checkSendUpdateConfigMessage(site1, site2, site1Status, site2Status);
            System.exit(1);
          }
          
          System.out.println("Sending update message to ["+site2+"]");
          UpdateCommand.sendUpdateMessage(site2, repo, branch, revision, "Cloned from ["+site1+"]: " + comment, token);
          checkSendUpdateConfigMessage(site1, site2, site1Status, site2Status);
        } else {
          System.err.println("Failed to get status from source and/or target.");
          System.exit(1);
        }
      } catch(Exception e) {
        e.printStackTrace();
        System.err.println("Failed to clone ["+site1+"] to ["+site2+"]: "+e.getMessage());
      }
    }
docs: Called to execute this command.