You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2013/06/20 12:31:54 UTC
svn commit: r1494913 - /subversion/trunk/subversion/libsvn_fs_fs/tree.c
Author: stefan2
Date: Thu Jun 20 10:31:53 2013
New Revision: 1494913
URL: http://svn.apache.org/r1494913
Log:
Fix a severe performance regression in 'svn log': The new log code
will run svn_client__repos_location_segments even if we log on the
root folder. That triggered a long-standing performance issue in
fs_node_origin_rev. This patch fixes the latter.
* subversion/libsvn_fs_fs/tree.c
(fs_node_origin_rev): special case root node IDs instead of walking
Modified:
subversion/trunk/subversion/libsvn_fs_fs/tree.c
Modified: subversion/trunk/subversion/libsvn_fs_fs/tree.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/tree.c?rev=1494913&r1=1494912&r2=1494913&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/tree.c (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/tree.c Thu Jun 20 10:31:53 2013
@@ -3375,6 +3375,14 @@ fs_node_origin_rev(svn_revnum_t *revisio
return SVN_NO_ERROR;
}
+ /* The root node always has ID 0, created in revision 0 and will never
+ use the new-style ID format. */
+ if (strcmp(node_id, "0") == 0)
+ {
+ *revision = 0;
+ return SVN_NO_ERROR;
+ }
+
/* OK, it's an old-style ID? Maybe it's cached. */
SVN_ERR(svn_fs_fs__get_node_origin(&cached_origin_id,
fs,
Re: svn commit: r1494913 - /subversion/trunk/subversion/libsvn_fs_fs/tree.c
Posted by Stefan Fuhrmann <st...@wandisco.com>.
On Thu, Jun 20, 2013 at 2:31 PM, C. Michael Pilato <cm...@collab.net>wrote:
> On 06/20/2013 06:31 AM, stefan2@apache.org wrote:
> > Author: stefan2
> > Date: Thu Jun 20 10:31:53 2013
> > New Revision: 1494913
> >
> > URL: http://svn.apache.org/r1494913
> > Log:
> > Fix a severe performance regression in 'svn log': The new log code
> > will run svn_client__repos_location_segments even if we log on the
> > root folder. That triggered a long-standing performance issue in
> > fs_node_origin_rev. This patch fixes the latter.
> >
> > * subversion/libsvn_fs_fs/tree.c
> > (fs_node_origin_rev): special case root node IDs instead of walking
>
> Make the same change in the BDB backend? base_node_origin_rev() looks to
> be
> the spot.
>
r1494967 should do the trick.
-- Stefan^2.
Re: svn commit: r1494913 - /subversion/trunk/subversion/libsvn_fs_fs/tree.c
Posted by "C. Michael Pilato" <cm...@collab.net>.
On 06/20/2013 06:31 AM, stefan2@apache.org wrote:
> Author: stefan2
> Date: Thu Jun 20 10:31:53 2013
> New Revision: 1494913
>
> URL: http://svn.apache.org/r1494913
> Log:
> Fix a severe performance regression in 'svn log': The new log code
> will run svn_client__repos_location_segments even if we log on the
> root folder. That triggered a long-standing performance issue in
> fs_node_origin_rev. This patch fixes the latter.
>
> * subversion/libsvn_fs_fs/tree.c
> (fs_node_origin_rev): special case root node IDs instead of walking
Make the same change in the BDB backend? base_node_origin_rev() looks to be
the spot.
--
C. Michael Pilato <cm...@collab.net>
CollabNet <> www.collab.net <> Enterprise Cloud Development