3KRGVQFUWFHPOGZOXVTJYNCM4XBRVYITAEOVPKBSAZ5GZIUO5KVQC
Hi! I finally found the time to fix this. The attached change is fairly large, because we now need to call output_repository_no_pending
multiple times and we don’t want to output the same file multiple times, so the interface to output_repository_no_pending
now needs to take an extra argument to remember that (that argument, a hash table, was previously allocated by the function itself).
Thanks again for the report!
This doesn’t seem to be fixed. On a fresh clone, after pijul fork test
, running pijul channel switch test
/pijul channel switch main
updates the mtime of every file.
Oh right, this was fixed only for pull, not for reset. Thanks for testing!
Oh right, this was fixed only for pull, not for reset. Thanks for testing!
I’ve just updated reset
and record
to:
record
, avoid diffing files that haven’t changed since the last diff or output.reset
, avoid outputting files that haven’t changed since the last diff or output.
pijul channel switch
andpijul reset
appear to update the mtime of (or entirely rewrite?) every file in the repository. This interacts poorly with external tools, e.g. causing rustc to do unnecessary work scanning and relinking unchanged crates, and causing direnv to reload the environment. Pijul should instead only rewrite files that are actually changed by a given operation.