示例#1
0
  static void carryFlags(RevCommit c, final int carry) {
    for (; ; ) {
      final RevCommit[] pList = c.parents;
      if (pList == null) return;
      final int n = pList.length;
      if (n == 0) return;

      for (int i = 1; i < n; i++) {
        final RevCommit p = pList[i];
        if ((p.flags & carry) == carry) continue;
        p.flags |= carry;
        carryFlags(p, carry);
      }

      c = pList[0];
      if ((c.flags & carry) == carry) return;
      c.flags |= carry;
    }
  }