subversion-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ivan Zhakov <i...@visualsvn.com>
Subject Improving svn commit progress notification
Date Tue, 17 Jun 2014 14:40:43 GMT
Hi,

I'm looking to improving svn commit progress notification. I want to
add notification between "Transmitting deltas" and final "Committed
revision X". The final stage may take significant amount of time,
especially if we implement automatic packing someday. It's better to
explicitly tell user that we finalizing commit and do not stuck on
"transmitting deltas".

Anyone have any ideas on the UI in svn command line. I've prepared
several versions:1.

[[[
$ svn ci wc -m "log msg"
Sending        wc\foo
Transmitting file data .
Finalizing commit ...
Committed revision 5.
]]]


[[[
$ svn ci wc -m "log msg"
Sending        wc\foo
Transmitting file data .
Finalizing commit: Committed revision 5.
]]]


[[[
$ svn ci wc -m "log msg"
Sending        wc\foo
Transmitting file data .
Committing: Committed revision 5.
]]]

[[[
$ svn ci wc -m "log msg"
Sending        wc\foo
Transmitting file data .
Finalizing: Committed revision 5.
]]]

Any other ideas?

The code changes are pretty simple. Working in progress patch attached
if anyone want to play with it.

[[[
Add new libsvn_client notification between transmitting deltas and
finalizing commit. The final stage of commit may consume significant
amount of time, especially if we have automatic packing someday.

* subversion/include/svn_wc.h
  (svn_wc_notify_action_t): Add svn_wc_notify_commit_finalizing.

* subversion/libsvn_client/add.c
* subversion/libsvn_client/commit_util.c
* subversion/libsvn_client/copy.c
* subversion/libsvn_client/delete.c
* subversion/libsvn_client/mtcc.c
* subversion/libsvn_client/prop_commands.c
  (mkdir_urls, svn_client__do_commit, repos_to_repos_copy,
   single_repos_delete, svn_client_mtcc_commit, propset_on_url): Send
   svn_wc_notify_commit_finalizing notification before closing edit.
* subversion/libsvn_client/import.c
  (import): Add URL argument and send svn_wc_notify_commit_finalizing
   notification before closing edit.
  (svn_client_import5): Update caller.

* subversion/svn/notify.c
  (notify): Handle svn_wc_notify_commit_finalizing notification.
* subversion/svn/util.c
  (svn_cl__print_commit_info): Do not print leading new line, to have
   pre-commit and commit message on the same line.
* subversion/tests/cmdline/svntest/wc.py
  (State.from_commit): Ignore 'Finalizing commit' output.
]]]

-- 
Ivan Zhakov
CTO | VisualSVN | http://www.visualsvn.com

Mime
View raw message