Examples of DiffStat


Examples of com.gitblit.utils.DiffUtils.DiffStat

      if (ticket != null) {
        if (ticket.hasPatchsets()) {
          Repository r = repositoryManager.getRepository(repository.name);
          try {
            Patchset patchset = ticket.getCurrentPatchset();
            DiffStat diffStat = DiffUtils.getDiffStat(r, patchset.base, patchset.tip);
            // diffstat could be null if we have ticket data without the
            // commit objects.  e.g. ticket replication without repo
            // mirroring
            if (diffStat != null) {
              ticket.insertions = diffStat.getInsertions();
              ticket.deletions = diffStat.getDeletions();
            }
          } finally {
            r.close();
          }
        }
View Full Code Here

Examples of com.gitblit.utils.DiffUtils.DiffStat

    StringBuilder sb = new StringBuilder();
    boolean newTicket = lastChange.isStatusChange() && Status.New == lastChange.getStatus();
    boolean isFastForward = true;
    List<RevCommit> commits = null;
    DiffStat diffstat = null;

    String pattern;
    if (lastChange.hasPatchset()) {
      // patchset uploaded
      Patchset patchset = lastChange.patchset;
      String base = "";
      // determine the changed paths
      Repository repo = null;
      try {
        repo = repositoryManager.getRepository(ticket.repository);
        if (patchset.isFF() && (patchset.rev > 1)) {
          // fast-forward update, just show the new data
          isFastForward = true;
          Patchset prev = ticket.getPatchset(patchset.number, patchset.rev - 1);
          base = prev.tip;
        } else {
          // proposal OR non-fast-forward update
          isFastForward = false;
          base = patchset.base;
        }

        diffstat = DiffUtils.getDiffStat(repo, base, patchset.tip);
        commits = JGitUtils.getRevLog(repo, base, patchset.tip);
      } catch (Exception e) {
        Logger.getLogger(getClass()).error("failed to get changed paths", e);
      } finally {
        if (repo != null) {
          repo.close();
        }
      }

      String compareUrl = ticketService.getCompareUrl(ticket, base, patchset.tip);

      if (newTicket) {
        // new proposal
        pattern = "**{0}** is proposing a change.";
        sb.append(MessageFormat.format(pattern, user.getDisplayName()));
        fieldExclusions.add(Field.status);
        fieldExclusions.add(Field.title);
        fieldExclusions.add(Field.body);
      } else {
        // describe the patchset
        if (patchset.isFF()) {
          pattern = "**{0}** added {1} {2} to patchset {3}.";
          sb.append(MessageFormat.format(pattern, user.getDisplayName(), patchset.added, patchset.added == 1 ? "commit" : "commits", patchset.number));
        } else {
          pattern = "**{0}** uploaded patchset {1}. *({2})*";
          sb.append(MessageFormat.format(pattern, user.getDisplayName(), patchset.number, patchset.type.toString().toUpperCase()));
        }
      }
      sb.append(HARD_BRK);

      sb.append(MessageFormat.format("{0} {1}, {2} {3}, <span style=\"color:darkgreen;\">+{4} insertions</span>, <span style=\"color:darkred;\">-{5} deletions</span> from {6}. [compare]({7})",
          commits.size(), commits.size() == 1 ? "commit" : "commits",
          diffstat.paths.size(),
          diffstat.paths.size() == 1 ? "file" : "files",
          diffstat.getInsertions(),
          diffstat.getDeletions(),
          isFastForward ? "previous revision" : "merge base",
          compareUrl));

      // note commit additions on a rebase,if any
      switch (lastChange.patchset.type) {
View Full Code Here

Examples of com.gitblit.utils.DiffUtils.DiffStat

      newPatchset.number = 1;
      newPatchset.rev = 1;
      newPatchset.type = PatchsetType.Proposal;

      // diffstat from merge base
      DiffStat diffStat = DiffUtils.getDiffStat(getRepository(), mergeBase, tip);
      newPatchset.insertions = diffStat.getInsertions();
      newPatchset.deletions = diffStat.getDeletions();
    } else {
      /*
       * PATCHSET UPDATE
       */
      int added = totalCommits - currPatchset.commits;
      boolean ff = JGitUtils.isMergedInto(getRepository(), currPatchset.tip, tip);
      boolean squash = added < 0;
      boolean rebase = !currPatchset.base.equals(mergeBase);

      // determine type, number and rev of the patchset
      if (ff) {
        /*
         * FAST-FORWARD
         * patchset number preserved, rev incremented
         */

        boolean merged = JGitUtils.isMergedInto(getRepository(), currPatchset.tip, ticket.mergeTo);
        if (merged) {
          // current patchset was already merged
          // new patchset, mark as rebase
          newPatchset.type = PatchsetType.Rebase;
          newPatchset.number = currPatchset.number + 1;
          newPatchset.rev = 1;

          // diffstat from parent
          DiffStat diffStat = DiffUtils.getDiffStat(getRepository(), mergeBase, tip);
          newPatchset.insertions = diffStat.getInsertions();
          newPatchset.deletions = diffStat.getDeletions();
        } else {
          // FF update to patchset
          newPatchset.type = PatchsetType.FastForward;
          newPatchset.number = currPatchset.number;
          newPatchset.rev = currPatchset.rev + 1;
          newPatchset.parent = currPatchset.tip;

          // diffstat from parent
          DiffStat diffStat = DiffUtils.getDiffStat(getRepository(), currPatchset.tip, tip);
          newPatchset.insertions = diffStat.getInsertions();
          newPatchset.deletions = diffStat.getDeletions();
        }
      } else {
        /*
         * NON-FAST-FORWARD
         * new patchset, rev 1
         */
        if (rebase && squash) {
          newPatchset.type = PatchsetType.Rebase_Squash;
          newPatchset.number = currPatchset.number + 1;
          newPatchset.rev = 1;
        } else if (squash) {
          newPatchset.type = PatchsetType.Squash;
          newPatchset.number = currPatchset.number + 1;
          newPatchset.rev = 1;
        } else if (rebase) {
          newPatchset.type = PatchsetType.Rebase;
          newPatchset.number = currPatchset.number + 1;
          newPatchset.rev = 1;
        } else {
          newPatchset.type = PatchsetType.Amend;
          newPatchset.number = currPatchset.number + 1;
          newPatchset.rev = 1;
        }

        // diffstat from merge base
        DiffStat diffStat = DiffUtils.getDiffStat(getRepository(), mergeBase, tip);
        newPatchset.insertions = diffStat.getInsertions();
        newPatchset.deletions = diffStat.getDeletions();
      }

      if (added > 0) {
        // ignore squash (negative add)
        newPatchset.added = added;
View Full Code Here

Examples of com.gitblit.utils.DiffUtils.DiffStat

  private PathChangeModel path;

  public DiffStatFormatter(String commitId) {
    super(NullOutputStream.INSTANCE);
    diffStat = new DiffStat(commitId);
  }
View Full Code Here

Examples of com.gitblit.utils.DiffUtils.DiffStat

      newPatchset.number = 1;
      newPatchset.rev = 1;
      newPatchset.type = PatchsetType.Proposal;

      // diffstat from merge base
      DiffStat diffStat = DiffUtils.getDiffStat(getRepository(), mergeBase, tip);
      newPatchset.insertions = diffStat.getInsertions();
      newPatchset.deletions = diffStat.getDeletions();
    } else {
      /*
       * PATCHSET UPDATE
       */
      int added = totalCommits - currPatchset.commits;
      boolean ff = JGitUtils.isMergedInto(getRepository(), currPatchset.tip, tip);
      boolean squash = added < 0;
      boolean rebase = !currPatchset.base.equals(mergeBase);

      // determine type, number and rev of the patchset
      if (ff) {
        /*
         * FAST-FORWARD
         * patchset number preserved, rev incremented
         */

        boolean merged = JGitUtils.isMergedInto(getRepository(), currPatchset.tip, ticket.mergeTo);
        if (merged) {
          // current patchset was already merged
          // new patchset, mark as rebase
          newPatchset.type = PatchsetType.Rebase;
          newPatchset.number = currPatchset.number + 1;
          newPatchset.rev = 1;

          // diffstat from parent
          DiffStat diffStat = DiffUtils.getDiffStat(getRepository(), mergeBase, tip);
          newPatchset.insertions = diffStat.getInsertions();
          newPatchset.deletions = diffStat.getDeletions();
        } else {
          // FF update to patchset
          newPatchset.type = PatchsetType.FastForward;
          newPatchset.number = currPatchset.number;
          newPatchset.rev = currPatchset.rev + 1;
          newPatchset.parent = currPatchset.tip;

          // diffstat from parent
          DiffStat diffStat = DiffUtils.getDiffStat(getRepository(), currPatchset.tip, tip);
          newPatchset.insertions = diffStat.getInsertions();
          newPatchset.deletions = diffStat.getDeletions();
        }
      } else {
        /*
         * NON-FAST-FORWARD
         * new patchset, rev 1
         */
        if (rebase && squash) {
          newPatchset.type = PatchsetType.Rebase_Squash;
          newPatchset.number = currPatchset.number + 1;
          newPatchset.rev = 1;
        } else if (squash) {
          newPatchset.type = PatchsetType.Squash;
          newPatchset.number = currPatchset.number + 1;
          newPatchset.rev = 1;
        } else if (rebase) {
          newPatchset.type = PatchsetType.Rebase;
          newPatchset.number = currPatchset.number + 1;
          newPatchset.rev = 1;
        } else {
          newPatchset.type = PatchsetType.Amend;
          newPatchset.number = currPatchset.number + 1;
          newPatchset.rev = 1;
        }

        // diffstat from merge base
        DiffStat diffStat = DiffUtils.getDiffStat(getRepository(), mergeBase, tip);
        newPatchset.insertions = diffStat.getInsertions();
        newPatchset.deletions = diffStat.getDeletions();
      }

      if (added > 0) {
        // ignore squash (negative add)
        newPatchset.added = added;
View Full Code Here

Examples of com.gitblit.utils.DiffUtils.DiffStat

    StringBuilder sb = new StringBuilder();
    boolean newTicket = lastChange.isStatusChange() && Status.New == lastChange.getStatus();
    boolean isFastForward = true;
    List<RevCommit> commits = null;
    DiffStat diffstat = null;

    String pattern;
    if (lastChange.hasPatchset()) {
      // patchset uploaded
      Patchset patchset = lastChange.patchset;
      String base = "";
      // determine the changed paths
      Repository repo = null;
      try {
        repo = repositoryManager.getRepository(ticket.repository);
        if (patchset.isFF() && (patchset.rev > 1)) {
          // fast-forward update, just show the new data
          isFastForward = true;
          Patchset prev = ticket.getPatchset(patchset.number, patchset.rev - 1);
          base = prev.tip;
        } else {
          // proposal OR non-fast-forward update
          isFastForward = false;
          base = patchset.base;
        }

        diffstat = DiffUtils.getDiffStat(repo, base, patchset.tip);
        commits = JGitUtils.getRevLog(repo, base, patchset.tip);
      } catch (Exception e) {
        Logger.getLogger(getClass()).error("failed to get changed paths", e);
      } finally {
        if (repo != null) {
          repo.close();
        }
      }

      String compareUrl = ticketService.getCompareUrl(ticket, base, patchset.tip);

      if (newTicket) {
        // new proposal
        pattern = "**{0}** is proposing a change.";
        sb.append(MessageFormat.format(pattern, user.getDisplayName()));
        fieldExclusions.add(Field.status);
        fieldExclusions.add(Field.title);
        fieldExclusions.add(Field.body);
      } else {
        // describe the patchset
        if (patchset.isFF()) {
          pattern = "**{0}** added {1} {2} to patchset {3}.";
          sb.append(MessageFormat.format(pattern, user.getDisplayName(), patchset.added, patchset.added == 1 ? "commit" : "commits", patchset.number));
        } else {
          pattern = "**{0}** uploaded patchset {1}. *({2})*";
          sb.append(MessageFormat.format(pattern, user.getDisplayName(), patchset.number, patchset.type.toString().toUpperCase()));
        }
      }
      sb.append(HARD_BRK);

      sb.append(MessageFormat.format("{0} {1}, {2} {3}, <span style=\"color:darkgreen;\">+{4} insertions</span>, <span style=\"color:darkred;\">-{5} deletions</span> from {6}. [compare]({7})",
          commits.size(), commits.size() == 1 ? "commit" : "commits",
          diffstat.paths.size(),
          diffstat.paths.size() == 1 ? "file" : "files",
          diffstat.getInsertions(),
          diffstat.getDeletions(),
          isFastForward ? "previous revision" : "merge base",
          compareUrl));

      // note commit additions on a rebase,if any
      switch (lastChange.patchset.type) {
View Full Code Here

Examples of com.gitblit.utils.DiffUtils.DiffStat

      if (ticket != null) {
        if (ticket.hasPatchsets() && updateDiffstats) {
          Repository r = repositoryManager.getRepository(repository.name);
          try {
            Patchset patchset = ticket.getCurrentPatchset();
            DiffStat diffStat = DiffUtils.getDiffStat(r, patchset.base, patchset.tip);
            // diffstat could be null if we have ticket data without the
            // commit objects.  e.g. ticket replication without repo
            // mirroring
            if (diffStat != null) {
              ticket.insertions = diffStat.getInsertions();
              ticket.deletions = diffStat.getDeletions();
            }
          } finally {
            r.close();
          }
        }
View Full Code Here

Examples of com.gitblit.utils.DiffUtils.DiffStat

  private int left, right;

  public GitBlitDiffFormatter(OutputStream os, String commitId) {
    super(os);
    this.os = os;
    this.diffStat = new DiffStat(commitId);
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.