Stefan Sperling wrote on Tue, May 08, 2012 at 12:56:46 +0200:
> On Thu, Apr 26, 2012 at 10:04:35PM -0000, danie...@apache.org wrote:
> > Author: danielsh
> > Date: Thu Apr 26 22:04:34 2012
> > New Revision: 1331125
> > 
> > URL: http://svn.apache.org/viewvc?rev=1331125&view=rev
> > Log:
> > Follow-up to r1331050: try to unbreak the build.
> > 
> > * subversion/libsvn_fs_fs/fs.c
> >   (fs_hotcopy): Properly open SRC_FS.  Call svn_fs__check_fs(dst_fs).
> 
> The log message lacks some substance.
> What exactly is the problem being solved by opening the source FS
> here instead of letting fs_fs.c open it?
> 
> I understand the rush involved in fixing the build, but it would
> be nice to revise this log message to make the semantic change
> that actually happened more clear.
> 

Edied the log message in light of these comments.

> One more remark below.
> 
> > 
> > Modified:
> >     subversion/trunk/subversion/libsvn_fs_fs/fs.c
> > 
> > Modified: subversion/trunk/subversion/libsvn_fs_fs/fs.c
> > URL: 
> > http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/fs.c?rev=1331125&r1=1331124&r2=1331125&view=diff
> > ==============================================================================
> > --- subversion/trunk/subversion/libsvn_fs_fs/fs.c (original)
> > +++ subversion/trunk/subversion/libsvn_fs_fs/fs.c Thu Apr 26 22:04:34 2012
> > @@ -293,10 +293,34 @@ fs_hotcopy(svn_fs_t *src_fs,
> >             void *cancel_baton,
> >             apr_pool_t *pool)
> >  {
> > -  SVN_ERR(initialize_fs_struct(src_fs));
> > -  SVN_ERR(fs_serialized_init(src_fs, pool, pool));
> > -  SVN_ERR(initialize_fs_struct(dst_fs));
> > -  SVN_ERR(fs_serialized_init(dst_fs, pool, pool));
> > +    {
> > +      svn_fs_t *fs = src_fs;
> > +      const char *path = src_path;
> > +
> > +      SVN_ERR(svn_fs__check_fs(fs, FALSE));
> > +      SVN_ERR(initialize_fs_struct(fs));
> > +      SVN_ERR(svn_fs_fs__open(fs, path, pool));
> > +      SVN_ERR(svn_fs_fs__initialize_caches(fs, pool));
> > +      SVN_ERR(fs_serialized_init(fs, pool, pool));
> > +    }
> > +
> > +    {
> > +      svn_fs_t *fs = dst_fs;
> > +      const char *path = dst_path;
> > +
> > +      SVN_ERR(svn_fs__check_fs(fs, FALSE));
> > +      SVN_ERR(initialize_fs_struct(fs));
> > +#if 0 
> 
> Did you intend to clean up this #if 0 marker or leave it in here forever?
> 
> I find it is somewhat confusing. It makes it look as if we were undecided
> about what to do here.
> 

The code is #if 0'd because I wanted it when incremental=TRUE but it
breaks the incremental=FALSE case.  We should remove that temp code and
ensure we open DST_FS and initialize its caches properly in all case.s

> > +      /* In INCREMENTAL mode, svn_fs_fs__hotcopy() will open DST_FS.
> > +         Otherwise, it's not an FS yet --- possibly just an empty dir --- 
> > so
> > +         can't be opened.
> > +       */
> > +      SVN_ERR(svn_fs_fs__open(fs, path, pool));
> > +      SVN_ERR(svn_fs_fs__initialize_caches(fs, pool));
> > +#endif
> > +      SVN_ERR(fs_serialized_init(fs, pool, pool));
> > +    }
> > +
> >    return svn_fs_fs__hotcopy(src_fs, dst_fs, src_path, dst_path,
> >                              incremental, cancel_func, cancel_baton, pool);
> >  }
> > 

Reply via email to