[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: RFC: Log Message Templates via new hook.

From: <kfogel_at_collab.net>
Date: 2005-05-27 20:23:35 CEST

SteveKing <steveking@gmx.ch> writes:
> > Did you not see my proposal for a third way, that would allow TSVN to
> > solve this without requiring any special properties? It's in:
> > http://subversion.tigris.org/servlets/ReadMsg?list=dev&msgNo=100709
>
> Yes I did. But this solution would even require *two* network turnarounds!

Don't think "network turnaround" automatically equals "bad thing"! :-)

The classic problem with a network turnaround is that it introduces
user-visible latency. However, in this case the second turnaround
would happen outside user time, because TSVN would have already popped
up the log message box earlier. Thus, there is no problem.

In fact, you can make *both* network turnarounds irrelevant:

   1. Pop up the log message window right away.

   2. Then in the background, fetch the no-files-list template. Also,
      in the background start the wc crawl.

   3. If you got a template in step (2), present it to the user in
      some way, so that they know that the log message they're
      currently writing may need to be updated to use the template.

      And, if the user has not yet started typing anything, just
      insert the fetched template into the editor directly. That way
      users can do the intuitive thing (i.e., wait) if they know a
      template is coming.

   4. When the wc crawl finishes, fetch the with-files-list template.
      If it does not match the no-files-list template, then notify the
      user of this, again in some interface-specific way. And as with
      step (3), if they haven't started typing yet, then just insert
      the template into the editing window directly.

Frankly, I think this is a pretty intuitive interface, it Does The
Right Thing, and it requires no local template storage and no special
support from Subversion (other than the new RA function of course).

> > By the way, a wc crawl would not be noticeably faster than a
> > no-files-list round trip to the server in most cases, I believe. One
> > network turnaround can happen quite quickly.
>
> It *can* happen quickly. But depending on what authentication module
> you're using and of course your internet connection, this can take up
> to several seconds. Even if you're on a LAN, if you use mod_auth_sspi
> to authenticate against a windows domain (which many users do on
> windows!) then the authentication alone takes about a second.

Okay, under some circumstances it can take a second. But the question
is, is that a good enough reason to design an entire local-storage
system for log message templates? That would add a huge complexity
burden to Subversion, to solve just this one case.

> >>both options won't make our users very happy. Especially if you think
> >>about the hook script won't be used by much repo admins (considering
> >>they have to update their server first), also many projects will be
> >>happy with static templates and don't need the magic hook script.
> > Are you sure? Consider the 'pre-revprop-change' hook. I think most
> > repositories set that up, so people can change commit messages, and
> > yet it is *not* enabled by default.
>
> The 'pre-revprop-change' hook isn't something that is called by the
> client *before* the actual commit. So the authentication has to be
> done only once (see my timing considerations above), and it has to be
> done anyway so the added time isn't even noticed by the user.

I was responding to your assertion that admins would not set up the
template hook, by demonstrating that they have set up other hooks
under similar circumstances.

> >>So, I'd like to have the admin decide if TSVN (or other GUI clients)
> >>can allow the user to start typing the log message, if typing isn't
> >>allowed at all until the filelist is known, or if typing is allowed
> >>but the hook script still has to be used (with the --no-file-list
> >>option).
> > Again, the third-way solution solves this.
>
> Sure, but it would be slow - sometimes *very* slow. And for users of
> GUI's even a second where the GUI doesn't 'respond' is annoying.

Agreed. My solution above is intended to make it so there's no delay.

> That would be great! May I suggest:
> name: svn:log-message-template-hook
> values: none (no server round trip)
> static (ask server, but without file list)
> full (ask server with full file list)

It's too early to decide this anyway, but just FYI: we shouldn't have
the "-hook" on the end. That's an implementation detail. The client
doesn't know or care whether the server uses a hook, a shovel, or a
bacterium to produce the log message template. Something like
"svn:log-message-template-method" would be the way to go.

-Karl

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri May 27 21:02:11 2005

This is an archived mail posted to the Subversion Dev mailing list.