private static void _GenerateDeps(VersionControlServer vcs, ItemMap deps, IntList intTreap) { /* walk through the changeset list. */ for (IntList.iterator it = intTreap.begin(); it != intTreap.end(); ++it) { /* grab the changeset. */ Changeset cs = vcs.GetChangeset(it.item()); foreach (Change cng in cs.Changes) { /* now dump each item in the changeset into the dependency list. */ ItemMap.iterator imit = deps.find(cng.Item); if (imit == deps.end()) { /* new one. */ IntList changesetlist = new IntList(); changesetlist.insert(cs.ChangesetId); deps.insert(cng.Item, changesetlist); } else { /* hey, it already exists, so find it and dump the changeset in there. */ IntList.iterator csit = imit.value().find(cs.ChangesetId); if (csit == imit.value().end()) { imit.value().insert(cs.ChangesetId); } } } } }
/// <summary> /// print dependencies. /// </summary> /// <param name="wr">place to pretty-print them to</param> /// <param name="deps">the map of item->changeset list</param> /// <param name="keyChangesets">the changeset->item map for the changesets we are interested in</param> private static void _PrintDeps(System.IO.TextWriter wr, ItemMap deps, CSItemMap keyChangesets) { /* print out only our changesets, * details: * the dependices they have on other changesets, * what file is the dependency. */ for (CSItemMap.iterator it = keyChangesets.begin(); it != keyChangesets.end(); ++it) { wr.WriteLine("changeset {0}", it.item()); foreach (Item item in it.value()) { ItemMap.iterator imit = deps.find(item); if (imit != deps.end()) { if (imit.value().size() > 1) { wr.WriteLine(imit.item().ServerItem); foreach (int csID in imit.value()) { wr.WriteLine(csID); } wr.WriteLine(); } } } wr.WriteLine(); } }