I think having gitfs export writable working directories is worth pursuing. Here are some suggestions:
1. gitfs provides in a "status" file its idea of "the expected future" of a working directory, kind of like /proc/*/ns: add foo.c add foo.8 modify mkfile # no details, just the fact 2. The user can provide guidance/settings, e.g., % echo ignore foo.8 > ctl means that "status" will no longer contain the "add foo.8" line, but will now include "ignore foo.8". These "settings" are as sticky as they should be, whatever that means. 3. At any point you can "cp status ctl" if you like what you see. 4. One command is "log _filename_" which says where to find the next commit message. Like "ignore", it doesn't "do anything" except stick around as a setting. 5. When you want to commit, "echo commit > ctl". This could be set to fail if the log file hasn't been declared or doesn't exist. Also, maybe it should fail if the "status" file contains pending "add" commands (this protects you against checking in a broken build, where somebody expects foo.c to exist but you forgot to add it). If it's possible for "ignore" commands to be implemented in terms of whatever git's ignore settings are, then presumably they will be sticky across commits. If the "status" file is sorted a little (e.g., add then modify then ignore), most of the time all you need to do as a user is glance at the top of the file, maybe issue an ignore command or two, edit the file containing the commit message (probably the same file as last time), and do the commit. As a slight modulation, any time the declared commit file is deleted one could be synthesized based on a diff of the working directory against its parent. I don't know how naming of directories should work, but I assume once a directory has been committed a read-only version named by a hash will turn up. Anyway, when possible, "parent/" should refer to the previous commit, so "diff parent/foo.c foo.c" and "diff parent/parent/foo.c foo.c" should work. Dave Eckhardt --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Plan 9 Google Summer of Code" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/plan9-gsoc?hl=en -~----------~----~----~----~------~----~------~--~---
