On 20 June 2014 18:38, Julian Foad <julianf...@btopenworld.com> wrote:
>
> Ivan Zhakov wrote:
> >> [[[
> >> $ svn ci wc -m "log msg"
> >> Sending        wc\foo
> >> Transmitting file data ............done
> >> Committing transaction...
> >> Committed revision 5.
> >> ]]]
> >>
> >> Also consider the out-of-date case:
> >
> > Committed in r1603388 and r1604179. I'm going to implement showing
> > percentage of deltas transmitted so far later.
>
> I like this, basically.
>
> A few small concerns...
>
> Index: subversion/include/svn_wc.h
> +  /** Finalizing commit.
> +   * @since New in 1.9. */
> +  svn_wc_notify_commit_finalizing
>  } svn_wc_notify_action_t;
>
> This is a public API. We should document what other fields the notification 
> receiver will receive: in this case, it's the "url" field.
>
> I know we haven't done that in other cases, but we should.
>
It's already documented that every svn_wc_notify_t structure instance
must have PATH field initialized and URL field should be also
initialized if operation performed on URL. I agree that it would nice
to document svn_wc_notify_t fields for different action types, I just
didn't find good way to document other structure values in enum
declaration. Do you have any ideas?

> Index: subversion/svn/notify.c
> +       case svn_wc_notify_commit_finalizing:
> +      if (nb->sent_first_txdelta)
> +        {
> +          SVN_ERR(svn_cmdline_printf(pool, _("done\n")));
>
> I understand we don't want to print "done" if we did not print 
> "Sending.......",
>
> +          SVN_ERR(svn_cmdline_printf(pool, _("Committing transaction...")));
>
> but I think it is inconsistent to not print "Committing transaction..." for a 
> commit that only
> performed tree changes. Part of your rationale for the change was to let the 
> user know
> that all of the relevant changes have been transmitted and now we are waiting 
> for the
> server to finalize the txn. This rationale applies equally well for a commit 
> that did not include text deltas.
>
> Certain operations such as "svn propset p v URL" can only perform one change 
> (one prop change in this case).
> With a one-change operation, we could consider that this extra line is ugly 
> -- it's just noise really -- one line
> of notification is enough. If that was your reasoning, we should implement 
> that.
>
Good point. I forgot about commits with tree only changes.

The problem that currently Subversion command line doesn't print
progress notifications for URL operations. For example:
[[
$ svn mkdir http://example.org/svn/foo http://example.org/svn/bar

Committed revision 1.
]]

So if Subversion will "Committing transaction" progress for tree only
commits output will be like this:
[[
$ svn mkdir http://example.org/svn/foo http://example.org/svn/bar
Committing transaction...
Committed revision 1.
]]

Which is probably fine.

Another option to always print detailed progress notifiction for every
kind of operation that changes repository. I mean:
[[
$ svn mkdir http://example.org/svn/foo http://example.org/svn/bar
Adding    http://example.org/svn/foo
Adding    http://example.org/svn/bar
Committing transaction...
Committed revision 1.
]]

And in more interesting svn move case:
[[[
$ svn move http://example.org/svn/foo http://example.org/svn/bar
Adding        http://example.org/svn/foo
Deleting      http://example.org/svn/bar
Committing transaction...
Committed revision 1.
]]]

The current output is just:
[[[
$ svn move http://example.org/svn/foo http://example.org/svn/bar
Committed revision 1.
]]]

Which is inconsistent with WC to WC moves:
[[[
$ svn move foo bar
A      foo
D      bar
]]]

What do you think?

> +      }
>
> (nit: Wonky indentation on that closing brace.)
>
Fixed in r1604334. Thanks!

-- 
Ivan Zhakov

Reply via email to