On Tue, Oct 27, 2015 at 9:03 AM, Fredrik Orderud <[email protected]> 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
