Checkout
glasser
committed
on 27 Nov 07
If a call to svn_fs_mergeinfo__update_index is ultimately going to be
a no-op, don't perform any write operations at all.

The upshot of thi… Show more
If a call to svn_fs_mergeinfo__update_index is ultimately going to be

a no-op, don't perform any write operations at all.

The upshot of this change is that commits that don't change any

svn:mergeinfo will no longer block (or be blocked by) commands that

read from the merge tracking database.

* subversion/libsvn_fs_util/mergeinfo-sqlite-index.c

 (table_has_any_rows_with_rev): New helper function.

 (clean_tables): New helper function to do the cleanup of failed

  transactions, factored out of svn_fs_mergeinfo__update_index.

 (svn_fs_mergeinfo__update_index): Factor out clean_tables.

* subversion/libsvn_fs_util/sqlite-util.c

* subversion/libsvn_fs_util/sqlite-util.h

 (svn_fs__sqlite_step): New helper for calling sqlite3_step when you

  don't know if you expect SQLITE_ROW or SQLITE_DONE.

Show less