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
-~----------~----~----~----~------~----~------~--~---

Reply via email to