The sound distributed version control system

#593 diff works much slower after fork

Closed on January 4, 2022
tankf33der on December 14, 2021

Real thriller:

$ pijul init p1
$ cd p1
$ cp -Rp /bin/[a-m]* .
$ pijul add -r .
$ pijul record -am"."
Hash: IAK5TSHQTEFPWBFRU6SCQ4WZLJDA3SWKPCIYC4PYTRLLK6WOCTIAC
# FAST
$ time pijul diff -su

real	0m0,405s
user	0m0,256s
sys	0m0,216s
$ pijul fork m1
$ pijul channel switch m1
$ pijul channel switch main
$ time pijul diff -su

real	1m24,844s
user	1m18,244s
sys	0m6,580s
$ time pijul diff -su

real	1m24,829s
user	1m18,060s
sys	0m6,622s
$
pmeunier added a change on December 17, 2021
BHFLDCFR6ZOUVAZUOYUSYACWDVY52GAXR6Q4TR4WMCHHFGECXQ3AC
main
tankf33der on December 17, 2021

Still reproducible.

pmeunier added a change on December 17, 2021
K2W4ZPQWK5KCEMR6RWH6AM4K2YEFS6GUZVNP4HXJWSIIZYJTMXRQC
main
pmeunier on December 17, 2021

There were two issues indeed, I believe they’re now fixed.

pmeunier closed this discussion on December 17, 2021
tankf33der on December 18, 2021

Can you explain why second diff works so long?

$ pijul init p1
$ cd p1
$ cp -Rp /bin/[a-m]* .
$ pijul add -r .
$ pijul record -am"."
Hash: AYQ3ZXDKXWXQ7RUAYKSGVJBMAMN7WXLYAIPSVNDJJ2PFA62JNBIAC
$ time pijul diff -su

real	0m0,296s
user	0m0,079s
sys	0m0,122s
$ touch *
$ time pijul diff -su

real	1m0,151s
user	0m55,230s
sys	0m4,855s
$ time pijul diff -su

real	1m0,423s
user	0m55,592s
sys	0m4,802s
$ 
tankf33der reopened this discussion on December 18, 2021
pmeunier added a change on January 4, 2022
RAS4PCNUEODS72Q5LEPVE54AUYWX656ZHTAERRVG2AJ6IHKO4WRAC
main
pmeunier on January 4, 2022

Indeed, pijul diff was read-only (or rather, it didn’t commit the transaction). Now it touches the channel in that specific case, and commits.

pmeunier closed this discussion on January 4, 2022
tankf33der on January 4, 2022

Confirmed as fixed.