The final comparison should be between the old commit and HEAD, not
between the old commit and its parent.
-const diffReferences = async (hash) => {
+const diffReferences = async (hash, againstHead = false) => {
const diff = new Deno.Command("git", {
args: [
"diff-tree",
const diff = new Deno.Command("git", {
args: [
"diff-tree",
"--name-only",
"--no-renames",
"--diff-filter=AM",
"--name-only",
"--no-renames",
"--diff-filter=AM",
+ ...(againstHead ? [hash, "HEAD"] : [hash]),
],
stdout: "piped",
stderr: "piped",
],
stdout: "piped",
stderr: "piped",
]).then(logErrorsAndCollectResults);
const refs = [];
current = hash;
]).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 {
if (seen.has(ref)) {
/* do nothing */
} else {
- results[recency] = { dateTime, humanReadable, refs };
+ results[recency] = { dateTime, hash, humanReadable, refs };
} while (recency-- > 0 && current && current != commit);
return results;
})(),
} while (recency-- > 0 && current && current != commit);
return results;
})(),