Thanks for the tips Nico.
I am well aware that git-svn sync can be troublesome and best avoided if
possible. The planned syncing will be one-way, against a read-only svn
mirror repo maintained for "corporate policy" reasons.
GitHub have already been contacted regarding the issue, but I thought it
also made sense to investigate opportunities for fixes from the svn side.
In my view, empty revprops should not cause svnsync to fail this way.
Best regards,
Fredrik
On Tuesday, October 27, 2015, Nico Kadel-Garcia <nkadel_at_gmail.com> wrote:
> On Tue, Oct 27, 2015 at 9:03 AM, Fredrik Orderud <forderud_at_gmail.com
> <javascript:;>> 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
> > '/svn/mirror_repo/!svn/bln/0':
> > 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 15:18:13 CET