Adds a 4th independent git-sync rewrite which has the same general strategy of v2 and v3 where clone directories are kept r/w for notebook execution but files/notebooks are locked down as readonly to discourage direct use for development. Major aspects of the rewrite are to switch to Python, add unit tests, and to attempt to differentiate between user-owned/modified files and git-owned files to avoid altering user files, even file perms. Also attempts to directly communicate with users using a SYNC-INSTRUCTIONS.md file to explain intended usage, and provides an opt-out mechanism for e.g. TIKE users who don't care about updates. Also stops using default repo names and moves all clones to a references/ directory. Affects all missions, all post-start-hooks updated with the intent that most failures cannot block logins, with EFS quota violations being the one failure I recall that can block logins. Also adds a gs4.fail.log file to the repo directory, assuming the repo dir exists but the sync failed hard for some reason; deleted for successful syncs.
Adds a 4th independent git-sync rewrite which has the same general strategy of v2 and v3 where clone directories are kept r/w for notebook execution but files/notebooks are locked down as readonly to discourage direct use for development. Major aspects of the rewrite are to switch to Python, add unit tests, and to attempt to differentiate between user-owned/modified files and git-owned files to avoid altering user files, even file perms. Also attempts to directly communicate with users using a SYNC-INSTRUCTIONS.md file to explain intended usage, and provides an opt-out mechanism for e.g. TIKE users who don't care about updates. Also stops using default repo names and moves all clones to a references/ directory. Affects all missions, all post-start-hooks updated with the intent that most failures cannot block logins, with EFS quota violations being the one failure I recall that can block logins. Also adds a gs4.fail.log file to the repo directory, assuming the repo dir exists but the sync failed hard for some reason; deleted for successful syncs.