code: private void createNewBranch(String prefix, String basename, boolean empty, Logger log) throws Exception {
      String currentBranch = clonedRemote.getBranchName();
      String newBranchName = (StringUtils.isNotBlank(prefix)?prefix.trim()+"-":"")+basename.trim();
      String oldBranchName = (StringUtils.isNotBlank(prefix)?prefix.trim()+"-":"")+currentBranch;
      try {
        if(!empty) {
          log.info("Switching to {}", oldBranchName);
          clonedRemote.switchBranch(oldBranchName);
          log.info("Creating new branch {}", newBranchName);
          clonedRemote.newRemoteBranch(newBranchName);
        } else {
          log.info("Creating new empty branch {}", newBranchName);
          clonedRemote.newEmtpyRemoteBranch(newBranchName);
        }
      } finally {
        if(!empty) {
          log.info("Switching back to {}", currentBranch);
          clonedRemote.switchBranch(currentBranch);
        }
      }
    }
docs: Creates a new branch with the name formatted as <i>prefix</i>-<i>basename</i>
  if prefix is null then just the basename is used. If empty is true then the
  new branch will be empty otherwise it will created from a branch with the same
  formatted name but a basename of master.
  
  @param prefix
  @param basename
  @param empty
  @param log
  @throws Exception