On Tue, Oct 27, 2015 at 9:03 AM, Fredrik Orderud <forderud_at_gmail.com> wrote:
> I'm experiencing problems using svnsync to mirror a GitHub repo.
> GitHub exposes a SVN API, that enables SVN clients to work against the
> underlying GIT repo
> (https://help.github.com/articles/support-for-subversion-clients/). This
> mostly works great, but I'm struggling to combine it with synsync.
That's an impedance mismatch begging to happen. Why would you attempt
to keep *any* non-matching source control synced with an external
repository, except possibly for imports of third-party tags? Been
there, done that for a stock exchange years ago. I urge you not to
try: grab tags only from the third party, copy and update your old
tags to match the new import, tag that so you can report differences
between them, and move in. Don't bother to try to maintain log parity,
you'll hurt yourself.
> The problem seem to be caused by Github defining empty svn:author, svn:date
> & svn:log revision properties for rev 0. The empty svn:date revision
> property causes problems for svnsync, since empty svn:date properties are
> apparently invalid.
See above. It sounds like you need to talk to Github about making an
exception to their default settings for revision 0. A freshly
initialized git repo, with no files or property changes submitted, has
*no* valid logs, and "git log" fails with an error. A freshly
initialized svn repo, with no files or properties set, has a no logs
but has a revision "0" created at index time.
Like I just said: impedance mismatch.
> Example error when attempting to use svnsync to sync a GitHub repo to a
> separate SVN repo:
> svnsync: E175008: While handling the 'svn:date' property on
> svnsync: E175008: Wrong or unexpected property value
> Could it be possible to somehow make svn:date parsing more permissive, so
> that empty svn:date revision properties does not break svnsync?
Seems conceivable, but you might get to real work much faster by
resetting svn:date in your local repository as part of the mirroring
process from github. Or even, perhaps, using "svnadmin create" to
create an empty repository of the same version as your mirror setup,
and using a template repo/db/revprops/0/0 with a pre-set, ancient
date. This is a complete violation of the provenence of the
repository, but I think it's survivable.
> Thanks in advance,
> Fredrik Orderud
Received on 2015-10-27 14:33:39 CET