{"thread":{"id":"22725","subject":"[BUG] girocco + git-svn: trunk is not propagated to master","startedAt":"2010-02-19T13:22:07Z","lastAt":"2010-05-06T08:32:04Z","messageCount":12,"participants":["Kirill Smelkov","Miklos Vajna","Petr Baudis"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"135076","messageId":"20100219132206.GA13734@tugrik.mns.mnsspb.ru","threadId":"22725","inReplyTo":null,"subject":"[BUG] girocco + git-svn: trunk is not propagated to master","fromName":"Kirill Smelkov","fromEmail":"kirr@mns.spb.ru","sentAt":"2010-02-19T13:22:07Z","receivedAt":"2010-02-19T13:22:07Z","isPatch":false,"sender":{"key":"kirr@navytux.spb.ru","avatar":"https://gravatar.com/avatar/cf3445fdad1849941e17ab25bf1ee7c5ea1be2deb444be25ff5f36b0e50a985f?d=mp&s=160"},"body":"Hello Petr, Miklos, All,\n\nRecently I've setup an svn mirror on repo.or.cz for docutils projects[1].\nAutomatic regular updates by `git svn fetch` seem to work, so first\nthanks for the service.\n\nHowever master is not updated at all, and also refs/heads/* are not\npopulated from refs/remotes/* it seems.\n\nIn Girocco's taskd/clone.sh[2] and jobd/update.sh[3], I see there is a\nnice setup for master to be bound to trunk and also refs/remotes/heads/*\nto be propagates to refs/remotes/*:\n\n---- taskd/clone.sh ----\nsvn://*)\n    GIT_DIR=. git svn fetch\n    # Neat Trick suggested by Miklos Vajna\n    GIT_DIR=. git config remote.origin.url .\n    GIT_DIR=. git config remote.origin.fetch +refs/remotes/heads/*:refs/heads/*\n    GIT_DIR=. git config remote.origin.fetch +refs/remotes/trunk:refs/heads/master\n    GIT_DIR=. git config remote.origin.fetch +refs/remotes/tags/*:refs/tags/*\n    GIT_DIR=. git fetch\n\n---- jobd/update.sh ----\nsvn://*)\n        GIT_DIR=. bang git svn fetch\n        GIT_DIR=. bang git fetch\n\n\nBut it seems it does not work. First I see there is a need for quoting,\nso e.g. \n\n-   GIT_DIR=. git config remote.origin.fetch +refs/remotes/heads/*:refs/heads/*\n+   GIT_DIR=. git config remote.origin.fetch '+refs/remotes/heads/*:refs/heads/*'\n\nbut I'm not sure it will fix the problem.\n\nCan we do something about it please?\n\n\nThanks beforehand,\nKirill\n\n\n[1] http://repo.or.cz/w/docutils.git\n[2] http://repo.or.cz/w/girocco.git/blob/HEAD:/taskd/clone.sh#l25\n[3] http://repo.or.cz/w/girocco.git/blob/HEAD:/jobd/update.sh#l41\n"},{"id":"135203","messageId":"20100220234200.GS12429@genesis.frugalware.org","threadId":"22725","inReplyTo":"20100219132206.GA13734@tugrik.mns.mnsspb.ru","subject":"Re: [BUG] girocco + git-svn: trunk is not propagated to master","fromName":"Miklos Vajna","fromEmail":"vmiklos@frugalware.org","sentAt":"2010-02-20T23:42:00Z","receivedAt":"2010-02-20T23:42:00Z","isPatch":false,"sender":{"key":"vmiklos@frugalware.org","avatar":"https://gravatar.com/avatar/401c1cbbb3a5d13e650c691a2c71d6fd0b80df1a01bc74d9f1972675dd58f2bd?d=mp&s=160"},"body":"On Fri, Feb 19, 2010 at 04:22:07PM +0300, Kirill Smelkov <kirr@mns.spb.ru> wrote:\n> ---- taskd/clone.sh ----\n> svn://*)\n>     GIT_DIR=. git svn fetch\n>     # Neat Trick suggested by Miklos Vajna\n>     GIT_DIR=. git config remote.origin.url .\n>     GIT_DIR=. git config remote.origin.fetch +refs/remotes/heads/*:refs/heads/*\n>     GIT_DIR=. git config remote.origin.fetch +refs/remotes/trunk:refs/heads/master\n>     GIT_DIR=. git config remote.origin.fetch +refs/remotes/tags/*:refs/tags/*\n>     GIT_DIR=. git fetch\n\nHere is the original blog post:\n\nhttp://vmiklos.hu/blog/svn-ggit-conversion-using-git-svn\n\n> ---- jobd/update.sh ----\n> svn://*)\n>         GIT_DIR=. bang git svn fetch\n>         GIT_DIR=. bang git fetch\n> \n> \n> But it seems it does not work. First I see there is a need for quoting,\n> so e.g. \n> \n> -   GIT_DIR=. git config remote.origin.fetch +refs/remotes/heads/*:refs/heads/*\n> +   GIT_DIR=. git config remote.origin.fetch '+refs/remotes/heads/*:refs/heads/*'\n> \n> but I'm not sure it will fix the problem.\n\nWhen I tried this technique in ooo-build, I did not need quoting. Though\nit won't hurt, sure.\n\n> Can we do something about it please?\n\nDid you get any error message?\n"},{"id":"299150","messageId":"20100221171939.GA10166@landau.phys.spbu.ru","threadId":"22725","inReplyTo":"20100220234200.GS12429@genesis.frugalware.org","subject":"Re: [BUG] girocco + git-svn: trunk is not propagated to master","fromName":"Kirill Smelkov","fromEmail":"kirr@landau.phys.spbu.ru","sentAt":"2010-02-21T17:19:40Z","receivedAt":"2010-02-21T17:19:40Z","isPatch":false,"sender":{"key":"kirr@navytux.spb.ru","avatar":"https://gravatar.com/avatar/cf3445fdad1849941e17ab25bf1ee7c5ea1be2deb444be25ff5f36b0e50a985f?d=mp&s=160"},"body":"On Sun, Feb 21, 2010 at 12:42:00AM +0100, Miklos Vajna wrote:\n> On Fri, Feb 19, 2010 at 04:22:07PM +0300, Kirill Smelkov <kirr@mns.spb.ru> wrote:\n> > ---- taskd/clone.sh ----\n> > svn://*)\n> >     GIT_DIR=. git svn fetch\n> >     # Neat Trick suggested by Miklos Vajna\n> >     GIT_DIR=. git config remote.origin.url .\n> >     GIT_DIR=. git config remote.origin.fetch +refs/remotes/heads/*:refs/heads/*\n> >     GIT_DIR=. git config remote.origin.fetch +refs/remotes/trunk:refs/heads/master\n> >     GIT_DIR=. git config remote.origin.fetch +refs/remotes/tags/*:refs/tags/*\n> >     GIT_DIR=. git fetch\n> \n> Here is the original blog post:\n> \n> http://vmiklos.hu/blog/svn-ggit-conversion-using-git-svn\n\nThanks\n\n> > ---- jobd/update.sh ----\n> > svn://*)\n> >         GIT_DIR=. bang git svn fetch\n> >         GIT_DIR=. bang git fetch\n> > \n> > \n> > But it seems it does not work. First I see there is a need for quoting,\n> > so e.g. \n> > \n> > -   GIT_DIR=. git config remote.origin.fetch +refs/remotes/heads/*:refs/heads/*\n> > +   GIT_DIR=. git config remote.origin.fetch '+refs/remotes/heads/*:refs/heads/*'\n> > \n> > but I'm not sure it will fix the problem.\n> \n> When I tried this technique in ooo-build, I did not need quoting. Though\n> it won't hurt, sure.\n\nYes it should work as is, but quoting wildcards is defensive. Just in\ncase.\n\n> > Can we do something about it please?\n> \n> Did you get any error message?\n\nNo, it sent me an email that cloning was ok and that was it...\n\n\n... I think I've found the problem -- it's that we need to use\n`git config --add` in order to setup multivars. Please find patches below.\nPetr, if everything is ok with them, could you please apply it? Thanks.\n\n\nFrom fd625c71d1f6ec88bd58faaca24da29c1fb8b5b3 Mon Sep 17 00:00:00 2001\nFrom: Kirill Smelkov <kirr@mns.spb.ru>\nDate: Sun, 21 Feb 2010 20:02:00 +0300\nSubject: [PATCH 1/2] taskd/clone: Don't forget to use 'git config --add' for multivars setup\n\nNeat Trick suggested by Miklos Vajna setups origin remote as '.' and\nalso setups 3 refspecs for remotes.origin.fetch.\n\nThe trick is nice indeed, but in order to setup config multivar, one\nhave to use explicit --add option for `git config' (*) or else old var\nvalue is just replaced.\n\nThe problem showed in svn-mirror repositories with stale master (was not\nupdating from trunk) and also as lack of branches -- that's\nunderstandable -- we had '+refs/remotes/tags/*:refs/tags/*' config last,\nand tags were working OK.\n\nFix it.\n\n(*) explicit --add was needed since 89c4afe0 (Add --add option to\n    git-repo-config) in git.git, which dates to git v1.4.4.2-225-g89c4afe\n---\n taskd/clone.sh |    4 ++--\n 1 files changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/taskd/clone.sh b/taskd/clone.sh\nindex 962c526..0f5d6fa 100755\n--- a/taskd/clone.sh\n+++ b/taskd/clone.sh\n@@ -28,8 +28,8 @@ case \"$url\" in\n \t\t# Neat Trick suggested by Miklos Vajna\n \t\tGIT_DIR=. git config remote.origin.url .\n \t\tGIT_DIR=. git config remote.origin.fetch +refs/remotes/heads/*:refs/heads/*\n-\t\tGIT_DIR=. git config remote.origin.fetch +refs/remotes/trunk:refs/heads/master\n-\t\tGIT_DIR=. git config remote.origin.fetch +refs/remotes/tags/*:refs/tags/*\n+\t\tGIT_DIR=. git config --add remote.origin.fetch +refs/remotes/trunk:refs/heads/master\n+\t\tGIT_DIR=. git config --add remote.origin.fetch +refs/remotes/tags/*:refs/tags/*\n \t\tGIT_DIR=. git fetch\n \t\t;;\n \tdarcs://*)\n-- \n1.7.0.50.g50c1\n\n\n\nFrom 79477bd2cdc60574eb4a07d2dc2c97d9fa663e27 Mon Sep 17 00:00:00 2001\nFrom: Kirill Smelkov <kirr@mns.spb.ru>\nDate: Sun, 21 Feb 2010 20:11:09 +0300\nSubject: [PATCH 2/2] taskd/clone: quote shell metacharacters where appropriate\n\nAt present this involves svn mirror setup -- refspec mappings contain\nshell wildcards. Quote them just in case.\n---\n taskd/clone.sh |    6 +++---\n 1 files changed, 3 insertions(+), 3 deletions(-)\n\ndiff --git a/taskd/clone.sh b/taskd/clone.sh\nindex 0f5d6fa..cfcb3b1 100755\n--- a/taskd/clone.sh\n+++ b/taskd/clone.sh\n@@ -27,9 +27,9 @@ case \"$url\" in\n \t\tGIT_DIR=. git svn fetch\n \t\t# Neat Trick suggested by Miklos Vajna\n \t\tGIT_DIR=. git config remote.origin.url .\n-\t\tGIT_DIR=. git config remote.origin.fetch +refs/remotes/heads/*:refs/heads/*\n-\t\tGIT_DIR=. git config --add remote.origin.fetch +refs/remotes/trunk:refs/heads/master\n-\t\tGIT_DIR=. git config --add remote.origin.fetch +refs/remotes/tags/*:refs/tags/*\n+\t\tGIT_DIR=. git config remote.origin.fetch '+refs/remotes/heads/*:refs/heads/*'\n+\t\tGIT_DIR=. git config --add remote.origin.fetch '+refs/remotes/trunk:refs/heads/master'\n+\t\tGIT_DIR=. git config --add remote.origin.fetch '+refs/remotes/tags/*:refs/tags/*'\n \t\tGIT_DIR=. git fetch\n \t\t;;\n \tdarcs://*)\n-- \n1.7.0.50.g50c1\n\n"},{"id":"135279","messageId":"20100222085029.GA28744@landau.phys.spbu.ru","threadId":"22725","inReplyTo":"20100221171939.GA10166@landau.phys.spbu.ru","subject":"[PATCH] Teach Girocco to mirror http:// style SVN repos","fromName":"Kirill Smelkov","fromEmail":"kirr@landau.phys.spbu.ru","sentAt":"2010-02-22T08:50:29Z","receivedAt":"2010-02-22T08:50:29Z","isPatch":true,"sender":{"key":"kirr@navytux.spb.ru","avatar":"https://gravatar.com/avatar/cf3445fdad1849941e17ab25bf1ee7c5ea1be2deb444be25ff5f36b0e50a985f?d=mp&s=160"},"body":"On Sun, Feb 21, 2010 at 08:19:39PM +0300, Kirill Smelkov wrote:\n> ... I think I've found the problem -- it's that we need to use\n> `git config --add` in order to setup multivars. Please find patches below.\n> Petr, if everything is ok with them, could you please apply it? Thanks.\n\nAnd also, while at it, I was always dreaming about http:// style svn\nmirroring support at repo.or.cz . Petr, they say dreams always come\ntrue. Could you please apply it?\n\n\n>From 7cb7218b23c7ab89609a812137e1d621603aabc6 Mon Sep 17 00:00:00 2001\nFrom: Kirill Smelkov <kirr@mns.spb.ru>\nDate: Mon, 22 Feb 2010 11:37:35 +0300\nSubject: [PATCH] Teach Girocco to mirror http:// style SVN repos\n\nCurrently we can mirror svn:// repos, but http:// is assumed to be used\nfor Git. Teach the tool to use svn+http:// style urls for http:// svn\nrepositories.\n\nThis is very needed, because most SVN hosting services only provide\nhttp:// style access to their services. e.g. google code, python.org,\netc...\n\nThis has not been tested on full Girocco installation - just partly. But\nif it works, let's also add svn+https later.\n---\n Girocco/Util.pm |    2 +-\n jobd/update.sh  |    2 +-\n taskd/clone.sh  |    6 ++++--\n 3 files changed, 6 insertions(+), 4 deletions(-)\n\ndiff --git a/Girocco/Util.pm b/Girocco/Util.pm\nindex e2f7854..969cb3c 100644\n--- a/Girocco/Util.pm\n+++ b/Girocco/Util.pm\n@@ -111,7 +111,7 @@ sub valid_web_url {\n }\n sub valid_repo_url {\n \t$_ = $_[0];\n-\t/^(http|git|svn|darcs|bzr):\\/\\/[a-zA-Z0-9-.:]+(\\/[_\\%a-zA-Z0-9.\\/~-]*)?$/;\n+\t/^(http|git|svn(\\+http)?|darcs|bzr):\\/\\/[a-zA-Z0-9-.:]+(\\/[_\\%a-zA-Z0-9.\\/~-]*)?$/;\n }\n \n \ndiff --git a/jobd/update.sh b/jobd/update.sh\nindex e09ef95..65e0455 100755\n--- a/jobd/update.sh\n+++ b/jobd/update.sh\n@@ -38,7 +38,7 @@ mail=\"$(config_get owner)\"\n bang git for-each-ref --format '%(refname)\t%(objectname)' >.refs-before\n \n case \"$url\" in\n-\tsvn://*)\n+\tsvn://* | svn+http://*)\n \t\tGIT_DIR=. bang git svn fetch\n \t\tGIT_DIR=. bang git fetch\n \t\t;;\ndiff --git a/taskd/clone.sh b/taskd/clone.sh\nindex cfcb3b1..e634388 100755\n--- a/taskd/clone.sh\n+++ b/taskd/clone.sh\n@@ -22,8 +22,10 @@ mail=\"$(config_get owner)\"\n # Initial mirror\n echo \"Initiating mirroring...\"\n case \"$url\" in\n-\tsvn://*)\n-\t\tGIT_DIR=. git svn init -s \"$url\"\n+\tsvn://* | svn+http://*)\n+\t\t# we just remote svn+ here, so svn+http://... becomes http://...\n+\t\tsvnurl=\"${url#svn+}\"\n+\t\tGIT_DIR=. git svn init -s \"$svnurl\"\n \t\tGIT_DIR=. git svn fetch\n \t\t# Neat Trick suggested by Miklos Vajna\n \t\tGIT_DIR=. git config remote.origin.url .\n-- \n1.7.0.50.g50c1\n"},{"id":"137536","messageId":"cover.1269255835.git.kirr@mns.spb.ru","threadId":"22725","inReplyTo":"20100222085029.GA28744@landau.phys.spbu.ru","subject":"[PATCH 0/3] girocco + git-svn: trunk is not propagated to master + more... (resend)","fromName":"Kirill Smelkov","fromEmail":"kirr@mns.spb.ru","sentAt":"2010-03-22T11:07:58Z","receivedAt":"2010-03-22T11:07:58Z","isPatch":true,"sender":{"key":"kirr@navytux.spb.ru","avatar":"https://gravatar.com/avatar/cf3445fdad1849941e17ab25bf1ee7c5ea1be2deb444be25ff5f36b0e50a985f?d=mp&s=160"},"body":"On Mon, Feb 22, 2010 at 11:50:29AM +0300, Kirill Smelkov wrote:\n> On Sun, Feb 21, 2010 at 08:19:39PM +0300, Kirill Smelkov wrote:\n> > ... I think I've found the problem -- it's that we need to use\n> > `git config --add` in order to setup multivars. Please find patches below.\n> > Petr, if everything is ok with them, could you please apply it? Thanks.\n>\n> And also, while at it, I was always dreaming about http:// style svn\n> mirroring support at repo.or.cz . Petr, they say dreams always come\n> true. Could you please apply it?\n\nPetr,\n\nSince I was once recognized as russian spam in Junio's inbox, and it's\nalready one month since I originally posted, I'd like\nto \"resend\" this stuff. Could you please ACK/NAK?\n\nThanks beforehand,\nKirill\n\n\nhttp://marc.info/?l=git&m=126677421607801&w=2\nhttp://marc.info/?l=git&m=126682864619850&w=2\n\n\nKirill Smelkov (3):\n  taskd/clone: Don't forget to use 'git config --add' for multivars\n    setup\n  taskd/clone: quote shell metacharacters where appropriate\n  Teach Girocco to mirror http:// style SVN repos\n\n Girocco/Util.pm |    2 +-\n jobd/update.sh  |    2 +-\n taskd/clone.sh  |   12 +++++++-----\n 3 files changed, 9 insertions(+), 7 deletions(-)\n"},{"id":"137537","messageId":"9e5d5b9ade49b4b2aa14f67d337961a73b35ae33.1269255835.git.kirr@mns.spb.ru","threadId":"22725","inReplyTo":"20100222085029.GA28744@landau.phys.spbu.ru","subject":"[PATCH 1/3] taskd/clone: Don't forget to use 'git config --add' for multivars setup","fromName":"Kirill Smelkov","fromEmail":"kirr@mns.spb.ru","sentAt":"2010-03-22T11:07:59Z","receivedAt":"2010-03-22T11:07:59Z","isPatch":true,"sender":{"key":"kirr@navytux.spb.ru","avatar":"https://gravatar.com/avatar/cf3445fdad1849941e17ab25bf1ee7c5ea1be2deb444be25ff5f36b0e50a985f?d=mp&s=160"},"body":"Neat Trick suggested by Miklos Vajna setups origin remote as '.' and\nalso setups 3 refspecs for remotes.origin.fetch.\n\nThe trick is nice indeed, but in order to setup config multivar, one\nhave to use explicit --add option for `git config' (*) or else old var\nvalue is just replaced.\n\nThe problem showed in svn-mirror repositories with stale master (was not\nupdating from trunk) and also as lack of branches -- that's\nunderstandable -- we had '+refs/remotes/tags/*:refs/tags/*' config last,\nand tags were working OK.\n\nFix it.\n\n(*) explicit --add was needed since 89c4afe0 (Add --add option to\n    git-repo-config) in git.git, which dates to git v1.4.4.2-225-g89c4afe\n---\n taskd/clone.sh |    4 ++--\n 1 files changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/taskd/clone.sh b/taskd/clone.sh\nindex 962c526..0f5d6fa 100755\n--- a/taskd/clone.sh\n+++ b/taskd/clone.sh\n@@ -28,8 +28,8 @@ case \"$url\" in\n \t\t# Neat Trick suggested by Miklos Vajna\n \t\tGIT_DIR=. git config remote.origin.url .\n \t\tGIT_DIR=. git config remote.origin.fetch +refs/remotes/heads/*:refs/heads/*\n-\t\tGIT_DIR=. git config remote.origin.fetch +refs/remotes/trunk:refs/heads/master\n-\t\tGIT_DIR=. git config remote.origin.fetch +refs/remotes/tags/*:refs/tags/*\n+\t\tGIT_DIR=. git config --add remote.origin.fetch +refs/remotes/trunk:refs/heads/master\n+\t\tGIT_DIR=. git config --add remote.origin.fetch +refs/remotes/tags/*:refs/tags/*\n \t\tGIT_DIR=. git fetch\n \t\t;;\n \tdarcs://*)\n-- \n1.7.0.2.284.gafe27d\n"},{"id":"137538","messageId":"31fb9f4ece8be1e91aca8f05e78a8e3df986741d.1269255835.git.kirr@mns.spb.ru","threadId":"22725","inReplyTo":"20100222085029.GA28744@landau.phys.spbu.ru","subject":"[PATCH 2/3] taskd/clone: quote shell metacharacters where appropriate","fromName":"Kirill Smelkov","fromEmail":"kirr@mns.spb.ru","sentAt":"2010-03-22T11:08:00Z","receivedAt":"2010-03-22T11:08:00Z","isPatch":true,"sender":{"key":"kirr@navytux.spb.ru","avatar":"https://gravatar.com/avatar/cf3445fdad1849941e17ab25bf1ee7c5ea1be2deb444be25ff5f36b0e50a985f?d=mp&s=160"},"body":"At present this involves svn mirror setup -- refspec mappings contain\nshell wildcards. Quote them just in case.\n---\n taskd/clone.sh |    6 +++---\n 1 files changed, 3 insertions(+), 3 deletions(-)\n\ndiff --git a/taskd/clone.sh b/taskd/clone.sh\nindex 0f5d6fa..cfcb3b1 100755\n--- a/taskd/clone.sh\n+++ b/taskd/clone.sh\n@@ -27,9 +27,9 @@ case \"$url\" in\n \t\tGIT_DIR=. git svn fetch\n \t\t# Neat Trick suggested by Miklos Vajna\n \t\tGIT_DIR=. git config remote.origin.url .\n-\t\tGIT_DIR=. git config remote.origin.fetch +refs/remotes/heads/*:refs/heads/*\n-\t\tGIT_DIR=. git config --add remote.origin.fetch +refs/remotes/trunk:refs/heads/master\n-\t\tGIT_DIR=. git config --add remote.origin.fetch +refs/remotes/tags/*:refs/tags/*\n+\t\tGIT_DIR=. git config remote.origin.fetch '+refs/remotes/heads/*:refs/heads/*'\n+\t\tGIT_DIR=. git config --add remote.origin.fetch '+refs/remotes/trunk:refs/heads/master'\n+\t\tGIT_DIR=. git config --add remote.origin.fetch '+refs/remotes/tags/*:refs/tags/*'\n \t\tGIT_DIR=. git fetch\n \t\t;;\n \tdarcs://*)\n-- \n1.7.0.2.284.gafe27d\n"},{"id":"137539","messageId":"b7d25a4325c26bed2351257521878109b71ad771.1269255835.git.kirr@mns.spb.ru","threadId":"22725","inReplyTo":"20100222085029.GA28744@landau.phys.spbu.ru","subject":"[PATCH 3/3] Teach Girocco to mirror http:// style SVN repos","fromName":"Kirill Smelkov","fromEmail":"kirr@mns.spb.ru","sentAt":"2010-03-22T11:08:01Z","receivedAt":"2010-03-22T11:08:01Z","isPatch":true,"sender":{"key":"kirr@navytux.spb.ru","avatar":"https://gravatar.com/avatar/cf3445fdad1849941e17ab25bf1ee7c5ea1be2deb444be25ff5f36b0e50a985f?d=mp&s=160"},"body":"From: Kirill Smelkov <kirr@landau.phys.spbu.ru>\n\nCurrently we can mirror svn:// repos, but http:// is assumed to be used\nfor Git. Teach the tool to use svn+http:// style urls for http:// svn\nrepositories.\n\nThis is very needed, because most SVN hosting services only provide\nhttp:// style access to their services. e.g. google code, python.org,\netc...\n\nThis has not been tested on full Girocco installation - just partly. But\nif it works, let's also add svn+https later.\n---\n Girocco/Util.pm |    2 +-\n jobd/update.sh  |    2 +-\n taskd/clone.sh  |    6 ++++--\n 3 files changed, 6 insertions(+), 4 deletions(-)\n\ndiff --git a/Girocco/Util.pm b/Girocco/Util.pm\nindex e2f7854..969cb3c 100644\n--- a/Girocco/Util.pm\n+++ b/Girocco/Util.pm\n@@ -111,7 +111,7 @@ sub valid_web_url {\n }\n sub valid_repo_url {\n \t$_ = $_[0];\n-\t/^(http|git|svn|darcs|bzr):\\/\\/[a-zA-Z0-9-.:]+(\\/[_\\%a-zA-Z0-9.\\/~-]*)?$/;\n+\t/^(http|git|svn(\\+http)?|darcs|bzr):\\/\\/[a-zA-Z0-9-.:]+(\\/[_\\%a-zA-Z0-9.\\/~-]*)?$/;\n }\n \n \ndiff --git a/jobd/update.sh b/jobd/update.sh\nindex e09ef95..65e0455 100755\n--- a/jobd/update.sh\n+++ b/jobd/update.sh\n@@ -38,7 +38,7 @@ mail=\"$(config_get owner)\"\n bang git for-each-ref --format '%(refname)\t%(objectname)' >.refs-before\n \n case \"$url\" in\n-\tsvn://*)\n+\tsvn://* | svn+http://*)\n \t\tGIT_DIR=. bang git svn fetch\n \t\tGIT_DIR=. bang git fetch\n \t\t;;\ndiff --git a/taskd/clone.sh b/taskd/clone.sh\nindex cfcb3b1..e634388 100755\n--- a/taskd/clone.sh\n+++ b/taskd/clone.sh\n@@ -22,8 +22,10 @@ mail=\"$(config_get owner)\"\n # Initial mirror\n echo \"Initiating mirroring...\"\n case \"$url\" in\n-\tsvn://*)\n-\t\tGIT_DIR=. git svn init -s \"$url\"\n+\tsvn://* | svn+http://*)\n+\t\t# we just remote svn+ here, so svn+http://... becomes http://...\n+\t\tsvnurl=\"${url#svn+}\"\n+\t\tGIT_DIR=. git svn init -s \"$svnurl\"\n \t\tGIT_DIR=. git svn fetch\n \t\t# Neat Trick suggested by Miklos Vajna\n \t\tGIT_DIR=. git config remote.origin.url .\n-- \n1.7.0.2.284.gafe27d\n"},{"id":"141003","messageId":"20100505185409.GV11185@machine.or.cz","threadId":"22725","inReplyTo":"b7d25a4325c26bed2351257521878109b71ad771.1269255835.git.kirr@mns.spb.ru","subject":"Re: [PATCH 3/3] Teach Girocco to mirror http:// style SVN repos","fromName":"Petr Baudis","fromEmail":"pasky@suse.cz","sentAt":"2010-05-05T18:54:09Z","receivedAt":"2010-05-05T18:54:09Z","isPatch":true,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"On Mon, Mar 22, 2010 at 02:08:01PM +0300, Kirill Smelkov wrote:\n> From: Kirill Smelkov <kirr@landau.phys.spbu.ru>\n> \n> Currently we can mirror svn:// repos, but http:// is assumed to be used\n> for Git. Teach the tool to use svn+http:// style urls for http:// svn\n> repositories.\n> \n> This is very needed, because most SVN hosting services only provide\n> http:// style access to their services. e.g. google code, python.org,\n> etc...\n> \n> This has not been tested on full Girocco installation - just partly. But\n> if it works, let's also add svn+https later.\n\nThanks, applied.\n\n(BTW, it would be much better if you sent patches to admin@repo.or.cz\ninstead. At least in theory - if anyone is interested helping out with\nvarious rather badly needed repo.or.cz tasks\n[http://repo.or.cz/w/girocco.git/blob/rorcz:/TODO], please let me know\nand I will give you some admin permissions.)\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nWhen I feel like exercising, I just lie down until the feeling\ngoes away.  -- xed_over\n"},{"id":"141043","messageId":"20100506071842.GA3436@tugrik.mns.mnsspb.ru","threadId":"22725","inReplyTo":"20100505185409.GV11185@machine.or.cz","subject":"Re: [PATCH 3/3] Teach Girocco to mirror http:// style SVN repos","fromName":"Kirill Smelkov","fromEmail":"kirr@mns.spb.ru","sentAt":"2010-05-06T07:18:42Z","receivedAt":"2010-05-06T07:18:42Z","isPatch":true,"sender":{"key":"kirr@navytux.spb.ru","avatar":"https://gravatar.com/avatar/cf3445fdad1849941e17ab25bf1ee7c5ea1be2deb444be25ff5f36b0e50a985f?d=mp&s=160"},"body":"On Wed, May 05, 2010 at 08:54:09PM +0200, Petr Baudis wrote:\n> On Mon, Mar 22, 2010 at 02:08:01PM +0300, Kirill Smelkov wrote:\n> > From: Kirill Smelkov <kirr@landau.phys.spbu.ru>\n> > \n> > Currently we can mirror svn:// repos, but http:// is assumed to be used\n> > for Git. Teach the tool to use svn+http:// style urls for http:// svn\n> > repositories.\n> > \n> > This is very needed, because most SVN hosting services only provide\n> > http:// style access to their services. e.g. google code, python.org,\n> > etc...\n> > \n> > This has not been tested on full Girocco installation - just partly. But\n> > if it works, let's also add svn+https later.\n> \n> Thanks, applied.\n> \n> (BTW, it would be much better if you sent patches to admin@repo.or.cz\n> instead.\n\nI see, and thanks for applying this one finally.\n\nBtw, would you please also apply those two important (one of them) fixes\nto svn mirroring setup?\n\n*Please*\n\n\n>From bdb55d014374c0f594ab70d7b22617fc61201d81 Mon Sep 17 00:00:00 2001\nFrom: Kirill Smelkov <kirr@mns.spb.ru>\nDate: Sun, 21 Feb 2010 20:02:00 +0300\nSubject: [PATCH 1/2] taskd/clone: Don't forget to use 'git config --add' for multivars setup\n\nNeat Trick suggested by Miklos Vajna setups origin remote as '.' and\nalso setups 3 refspecs for remotes.origin.fetch.\n\nThe trick is nice indeed, but in order to setup config multivar, one\nhave to use explicit --add option for `git config' (*) or else old var\nvalue is just replaced.\n\nThe problem showed in svn-mirror repositories with stale master (was not\nupdating from trunk) and also as lack of branches -- that's\nunderstandable -- we had '+refs/remotes/tags/*:refs/tags/*' config last,\nand tags were working OK.\n\nFix it.\n\n(*) explicit --add was needed since 89c4afe0 (Add --add option to\n    git-repo-config) in git.git, which dates to git v1.4.4.2-225-g89c4afe\n---\n taskd/clone.sh |    4 ++--\n 1 files changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/taskd/clone.sh b/taskd/clone.sh\nindex f99d046..270626c 100755\n--- a/taskd/clone.sh\n+++ b/taskd/clone.sh\n@@ -30,8 +30,8 @@ case \"$url\" in\n \t\t# Neat Trick suggested by Miklos Vajna\n \t\tGIT_DIR=. git config remote.origin.url .\n \t\tGIT_DIR=. git config remote.origin.fetch +refs/remotes/heads/*:refs/heads/*\n-\t\tGIT_DIR=. git config remote.origin.fetch +refs/remotes/trunk:refs/heads/master\n-\t\tGIT_DIR=. git config remote.origin.fetch +refs/remotes/tags/*:refs/tags/*\n+\t\tGIT_DIR=. git config --add remote.origin.fetch +refs/remotes/trunk:refs/heads/master\n+\t\tGIT_DIR=. git config --add remote.origin.fetch +refs/remotes/tags/*:refs/tags/*\n \t\tGIT_DIR=. git fetch\n \t\t;;\n \tdarcs://*)\n-- \n1.7.1.16.g5dc5\n\n\n\n>From 0db9ccc033ac6b82ff3026fa89846616a9b74f9e Mon Sep 17 00:00:00 2001\nFrom: Kirill Smelkov <kirr@mns.spb.ru>\nDate: Sun, 21 Feb 2010 20:11:09 +0300\nSubject: [PATCH 2/2] taskd/clone: quote shell metacharacters where appropriate\n\nAt present this involves svn mirror setup -- refspec mappings contain\nshell wildcards. Quote them just in case.\n---\n taskd/clone.sh |    6 +++---\n 1 files changed, 3 insertions(+), 3 deletions(-)\n\ndiff --git a/taskd/clone.sh b/taskd/clone.sh\nindex 270626c..e634388 100755\n--- a/taskd/clone.sh\n+++ b/taskd/clone.sh\n@@ -29,9 +29,9 @@ case \"$url\" in\n \t\tGIT_DIR=. git svn fetch\n \t\t# Neat Trick suggested by Miklos Vajna\n \t\tGIT_DIR=. git config remote.origin.url .\n-\t\tGIT_DIR=. git config remote.origin.fetch +refs/remotes/heads/*:refs/heads/*\n-\t\tGIT_DIR=. git config --add remote.origin.fetch +refs/remotes/trunk:refs/heads/master\n-\t\tGIT_DIR=. git config --add remote.origin.fetch +refs/remotes/tags/*:refs/tags/*\n+\t\tGIT_DIR=. git config remote.origin.fetch '+refs/remotes/heads/*:refs/heads/*'\n+\t\tGIT_DIR=. git config --add remote.origin.fetch '+refs/remotes/trunk:refs/heads/master'\n+\t\tGIT_DIR=. git config --add remote.origin.fetch '+refs/remotes/tags/*:refs/tags/*'\n \t\tGIT_DIR=. git fetch\n \t\t;;\n \tdarcs://*)\n-- \n1.7.1.16.g5dc5\n\n\n\n\n> At least in theory - if anyone is interested helping out with\n> various rather badly needed repo.or.cz tasks\n> [http://repo.or.cz/w/girocco.git/blob/rorcz:/TODO], please let me know\n> and I will give you some admin permissions.)\n\nThanks for the offer. Unfortunately I can't commit to this task :(\n\n\nThanks,\nKirill\n"},{"id":"141044","messageId":"20100506073647.GS11185@machine.or.cz","threadId":"22725","inReplyTo":"20100506071842.GA3436@tugrik.mns.mnsspb.ru","subject":"Re: [PATCH 3/3] Teach Girocco to mirror http:// style SVN repos","fromName":"Petr Baudis","fromEmail":"pasky@suse.cz","sentAt":"2010-05-06T07:36:47Z","receivedAt":"2010-05-06T07:36:47Z","isPatch":true,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"On Thu, May 06, 2010 at 11:18:42AM +0400, Kirill Smelkov wrote:\n> Btw, would you please also apply those two important (one of them) fixes\n> to svn mirroring setup?\n> \n> *Please*\n\nApplied, thanks.\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nWhen I feel like exercising, I just lie down until the feeling\ngoes away.  -- xed_over\n"},{"id":"141047","messageId":"20100506083204.GA5247@tugrik.mns.mnsspb.ru","threadId":"22725","inReplyTo":"20100506073647.GS11185@machine.or.cz","subject":"Re: [PATCH 3/3] Teach Girocco to mirror http:// style SVN repos","fromName":"Kirill Smelkov","fromEmail":"kirr@mns.spb.ru","sentAt":"2010-05-06T08:32:04Z","receivedAt":"2010-05-06T08:32:04Z","isPatch":true,"sender":{"key":"kirr@navytux.spb.ru","avatar":"https://gravatar.com/avatar/cf3445fdad1849941e17ab25bf1ee7c5ea1be2deb444be25ff5f36b0e50a985f?d=mp&s=160"},"body":"On Thu, May 06, 2010 at 09:36:47AM +0200, Petr Baudis wrote:\n> On Thu, May 06, 2010 at 11:18:42AM +0400, Kirill Smelkov wrote:\n> > Btw, would you please also apply those two important (one of them) fixes\n> > to svn mirroring setup?\n> > \n> > *Please*\n> \n> Applied, thanks.\n\nThanks!\n"}]}