Question

Comment puis-je changer (délocaliser) une url subversion que je suis entré lors de la création d'un dépôt miroir à l'aide « svnsync init » (exemple de #https://whatever à svn://whatever)?

essayé de courir à nouveau avec svnsync initialisation nouvelle URL, mais

svnsync init file:///<path_to_mirror> http:///<new_url>
svnsync: Destination repository is already synchronizing from 'http:///<old_url>'
Était-ce utile?

La solution

La synchronisation d'URL est stockée en tant que revprop dans le dépôt du miroir. Si la machine avec le dépôt miroir (ma situation), utilisez le svnlook outil pour regarder et svnadmin pour le changement:

user@q.r[~]$ svnlook pg --revprop -r0 /path/to/mirror/repo svn:sync-from-url
svn+ssh://svn.abc.com:1234/svn/foo

Vous verrez l'URL du repo auquel votre miroir est en cours de synchronisation. Dans l'exemple ci-dessus, l'URL repo maître se termine par ... / foo . Il ne peut pas avoir une nouvelle ligne à la fin, de sorte que votre invite du shell peut suivre. Maintenant, vous devez intégrer cela dans un fichier que svnadmin utilise un fichier pour l'entrée à revprops de changement.

user@q.r[~]$ svnlook pg --revprop -r0 /path/to/mirror/repo svn:sync-from-url > t.txt

modifier t.txt pour modifier l'URL du repo maître. Cela peut provoquer un saut de ligne apparaisse à la fin de t.txt et le résultat dans les messages d'erreur obscure / sans signification de svnsync. Alors se débarrasser:

user@q.r[~]$ cat t.txt | tr -d '\n' > t2.txt

Notez que nous avons maintenant t2.txt qui est le fichier aseptisé. Ensuite, utilisez svnadmin pour changer la revprop au contenu du fichier juste édité et aseptisé:

user@q.r[~]$ svnadmin setrevprop /path/to/mirror/repo -r0 svn:sync-from-url t2.txt

Notez que t2.txt est utilisé non t.txt Enfin, vérifiez vos modifications.

user@q.r[~]$ svnlook pg --revprop -r0 /path/to/mirror/repo svn:sync-from-url
svn+ssh://svn.def.com:5678/svn/foo

Vous devriez voir votre nouvelle URL repo immédiatement suivie par l'invite du shell, sans retour à la ligne. Dans l'exemple ci-dessus les extrémités d'URL dans foo et est immédiatement suivi par le shell user@q.r rapide [~] $.

Autres conseils

Si vous utilisez le compte que vous utilisez pour exécuter svnsync vous pouvez simplement utiliser:

svn propset --revprop -r 0 svn:sync-from-url http://my.new/url url://to.my.repo

Si vous avez suivi les instructions du manuel et a ajouté un crochet pré-rev-accessoires qui dénie tout le monde, mais l'utilisateur svnsync pour modifier le rev props cela devrait fonctionner.

SVNSync stocke l'URL à distance en dépôt les propriétés de révision de la première révision du miroir référentiel. Ainsi, vous pouvez vue la actuellement configuré URL du référentiel sur votre miroir local comme celui-ci:

$ svn pg --revprop -r0 svn:sync-from-url file:///path/to/svn-mirror

Cela signifie que pour changer l'URL à distance référentiel que vous avez juste à changer propriété de révision. Par exemple:

$ svn ps --revprop -r0 svn:sync-from-url https://svn.example.org/repo \
         file:///path/to/svn-mirror/

sortie Exemple:

property 'svn:sync-from-url' set on repository revision 0
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top