One of my colleagues ran bisect but forgot to update back to HEAD after
finishing it.  Another forgot to run 'svn up' in the morning before starting
to edit a file, and later got conflicts

Both of these user errors might have been prevented if their client had
advised them (during the bisect, for Alice; in the morning, for Bob) that
their working copy's BASE tree differs from HEAD.  (That is, that 'svn st
-u' and 'svn diff --summarize -r HEAD' were non-empty.)

Does this sound useful?  Would library changes be needed to allow such
functionality to be developed?

I think the library changes will be straightforward: we would just need
to have a "dirty" bit, clear it upon update-to-HEAD, and set it upon
backdate and upon "Has HEAD changed?" checks initiated by the libsvn_client 
consumer.

Clients (e.g., $EDITOR plugins) could then be configured to request that
check periodically --- say, once per N hours per working copy.  Perhaps
an editor-agnostic daemon that monitors *all* working copies in one's
homedir could be developed, too.

(The "dirty" bit would be, more or less, a cache of "Last Changed Revision"
of ${local_relpath}@HEAD; it'll have to account for deletions, renames, and
replacements, though.)

Thoughts?

Reply via email to