),
});
-const diffReferences = async (hash) => {
+const diffReferences = async (hash, againstHead = false) => {
const diff = new Deno.Command("git", {
args: [
"diff-tree",
"--name-only",
"--no-renames",
"--diff-filter=AM",
- hash,
+ ...(againstHead ? [hash, "HEAD"] : [hash]),
],
stdout: "piped",
stderr: "piped",
]).then(logErrorsAndCollectResults);
const refs = [];
current = hash;
- for (const ref of (await diffReferences(current))) {
+ for (
+ const ref of (await diffReferences(current, !recency))
+ ) {
if (seen.has(ref)) {
/* do nothing */
} else {
seen.add(ref);
}
}
- results[recency] = { dateTime, humanReadable, refs };
+ results[recency] = { dateTime, hash, humanReadable, refs };
} while (recency-- > 0 && current && current != commit);
return results;
})(),