code: @Override
      protected File cloneRepository(File dest) {
          // build url
          String url = getUrl();
          String branch = getBranch();
          String tag = getTag();
          StringBuilder urlBuilder = new StringBuilder();
          urlBuilder.append(url);
          if (StringUtils.isNotBlank(branch)) {
              if (branch.equalsIgnoreCase(TRUNK)) {
                  if (!url.endsWith(TRUNK)) {
                      urlBuilder.append(URL_TRUNK);
                  }
              } else {
                  urlBuilder.append(URL_BRANCHES);
                  urlBuilder.append(branch);
              }
          } else if (StringUtils.isNotBlank(tag)) {
              urlBuilder.append(URL_TAGS);
              urlBuilder.append(tag);
          }
  
          // setup svn client
          SVNClientManager clientManager = SVNClientManager.newInstance(SVNWCUtil.createDefaultOptions(true), getUsername(), getPassword());
          SVNUpdateClient updateClient = clientManager.getUpdateClient();
          updateClient.setIgnoreExternals(false);
  
          final SvnOperationFactory svnOperationFactory = new SvnOperationFactory();
          try {
              final SvnCheckout checkout = svnOperationFactory.createCheckout();
              checkout.setSingleTarget(SvnTarget.fromFile(dest));
              checkout.setSource(SvnTarget.fromURL(SVNURL.parseURIEncoded(urlBuilder.toString())));
              checkout.setRevision(SVNRevision.HEAD);
              checkout.run();
          } catch (SVNException e) {
              logger.error("error during checkout: {}", e.getMessage());
          } finally {
              svnOperationFactory.dispose();
          }
  
          return dest;
      }
docs: /* --- Overridden methods ---