Daniel Trebbien wrote on Thu, Sep 09, 2010 at 08:48:43 -0700:
> On Thu, Sep 9, 2010 at 3:48 AM, Daniel Shahaf <d.s_at_daniel.shahaf.name> wrote:
> > Daniel Trebbien wrote on Wed, Sep 08, 2010 at 18:58:06 -0700:
> >> + if (strcmp(propname, "svn:log") == 0)
> >> + {
> >
> > Should this use svn_prop_needs_translation()?
>
> Though it does not appear so, the added lines are within the check for
> `svn_prop_needs_translation`.
>
Okay. But my point was really, "shouldn't the new block you're adding
apply to any prop that svn_prop_needs_translation() returns TRUE for,
rather than only for SVN_PROP_REVISION_LOG?"
> >> 1. What is the best way to pass the `log-encoding` option of the
> >> [miscellany] section to the `svnsync_normalize_revprops` function?
> >>
> >
> > What is 'log-encoding' normally used for? Only for recoding the commit
> > message supplied by an editor, right? So I'm not sure we should use it
> > here, perhaps a new command-line option will be better. (svnsync
> > $subcommand --source-encoding=%s)
>
> I like the idea of adding a command line option, so I think that this
> is the way to go.
>
> Do other properties need to be re-encoded, potentially?
That's why I suggested svn_prop_needs_translation(). Have you read its
docstring?
[[[
/** If @a prop_name requires that its value be stored as UTF8/LF in the
* repository, then return @c TRUE. Else return @c FALSE. This is for
* users of libsvn_client or libsvn_fs, since it their responsibility
* to do this translation in both directions. (See
* svn_subst_translate_string()/svn_subst_detranslate_string() for
* help with this task.)
*/
svn_boolean_t
svn_prop_needs_translation(const char *prop_name);
]]]
> I was only
> thinking about `svn:log`, but perhaps other properties might need
> re-encoding as well. If not, then I think that the command line option
> should be more specific (e.g.: `--source-log-encoding=%s`).
>
svn:log is certainly the most common case. I think we had very few
reports on users@ of this error occurring with other props (e.g.,
svn:author and svn:externals).
> Another question: which line of code raises the "svnsync: Error while
> replaying commit" error message? I would like to try to make this more
> helpful.
If you build --enable-maintainer-mode, you should get the file-line
coordinates of where the error was raised (and most places that
returned it, too).
Failing that, there's a shortcut that works most of the time: look in
subversion/po/fr.po for "Error while replaying commit" :-)
Daniel
Received on 2010-09-09 18:07:53 CEST