commit 554b91b15a7cc9f7b1e6946d04eb54a5dd2f2232 from: Stefan Sperling date: Mon Feb 04 15:55:18 2019 UTC oops, fix endless loop in diff_fileindex_dir(); code was missing somehow commit - 6bad629b50d093da48f6347e1dd806d56bf05a1e commit + 554b91b15a7cc9f7b1e6946d04eb54a5dd2f2232 blob - 0c72541adc1a32c762db1dc80b554e6cc37cc2b0 blob + 9923cab764ea6af6bd40df02195db5ae2d4241b1 --- lib/fileindex.c +++ lib/fileindex.c @@ -830,8 +830,22 @@ diff_fileindex_dir(struct got_fileindex *fileindex, err = walk_dir(&dle, fileindex, ie, dle, path, dir, repo, cb, cb_arg); } + if (err) + break; + } else if (*ie) { + next = walk_fileindex(fileindex, *ie); + err = cb->diff_old(cb_arg, *ie, path); + if (err) + break; + *ie = next; + } else if (dle) { + err = cb->diff_new(cb_arg, dle->de, path); if (err) break; + err = walk_dir(&dle, fileindex, ie, dle, path, dir, + repo, cb, cb_arg); + if (err) + break; } }