11
votes

Comment créer une copie locale du référentiel SVN distant?

J'ai un référentiel SVN distant. Je veux le vérifier (avec l'histoire), puis utiliser dans Visual Studio comme référentiel régulier. Après un moment, je soumets (commettez des modifications) du référentiel local au référentiel à distance (et de mettre à jour les fichiers le cas échéant).

Il semble donc que j'ai juste besoin de deux copies du référentiel SVN et j'ai besoin de la possibilité de les synchroniser.

Comment faire ça?


0 commentaires

4 Réponses :


21
votes

qui va contre ce que SVN est. Ce qu'il semble que vous voulez, c'est un DVC comme git ou mercurial, pourquoi de nombreux développeurs ont déménagé à quelque chose comme ça.

J'utiliserais git; et utilisez le pont git-svn pour pouvoir communiquer sur votre serveur SVN .

GIT conserve une copie complète du référentiel lorsque vous clones de SVN (ce qui signifie que le clone initial peut prendre un temps long car il doit vérifier chaque révision unique). Vous vous engageriez ensuite localement à votre référentiel Git; et DCommit (poussez-le) Retour à votre référentiel SVN.

Je ne connais pas de façons propres de le faire avec SVN seul. Un flux de travail typique peut être: xxx


si vous êtes un magasin d'un homme; Gardez votre référentiel sur un lecteur flash USB (et assurez-vous simplement qu'il est sauvegardé d'une manière ou d'une autre en quelque sorte, vous le perdez; il devient défectueux).


5 commentaires

Je ne veux pas utiliser Git. HM Je veux juste une copie Svn du référentiel dans un autre endroit et j'ai besoin de la capacité de les syncroniser ... Est-ce vraiment si compliqué?


@javapowered pour svn; Oui, ce n'est pas simple du tout. Combien de personnes espérez-vous travailler sur cela?


Je suis le seul utilisateur de ce référentiel :)


@javapowered, vous trouverez peut-être cet article intéressant: Subversionee.blogspot.com/2007 / 04 / ...


@vcsjones Qu'en est-il de tirez & PUSH Exemples



5
votes

AS VSJONES Répondues, vous pouvez utiliser Git-SVN pour commander un référentiel Subversion, l'utiliser comme référentiel git local, puis poster à ce sujet. Vous pouvez même utiliser le Microsoft Git Source Control Fournisseur pour vous permettre Intégrer Git avec VisualStudio.

Cependant , je voudrais vous demander pourquoi vous voulez faire cela. Il semble que vous puissiez être ce que nous avons en cm Parlance appelle ramper dans votre grotte .

ramper dans votre grotte signifie qu'au lieu de travailler avec tout le monde, vous allez faire votre travail en privé sans aucune surveillance. Vous voulez que votre code soit absolument parfait. Vous voulez un chef-d'œuvre du code informatique. Ensuite, vous allez le dévoiler au monde sans méfiance qui sera semé par vos compétences de codage. Vous serez salué un génie et peut-être même avoir une chance de parler à une fille.

Bien sûr, le problème est que le codage fonctionne toujours mieux quand il est en vue du public. Les critiques de code ne sont pas seulement pour le code terminé. C'est aussi pour le code alors qu'il est écrit. Avant d'aller trop loin dans un sentier aveugle.

Un autre problème est une tendance aux développeurs de mordre plus que ce qu'ils ne peuvent mâcher. Si j'ai besoin de vérifier mon travail sur le même coffre que tout le monde, je suis plus susceptible de prendre des morsures de code plus petites. (Oui, j'aurais pu faire un jeu de mots sur octets , mais j'essaie d'être sérieux). Je vais faire un changement, ajouter peut-être quelques méthodes, tester et commenter. Ensuite, faites plus de changements, de test et de commis.

J'utilise pour être un administrateur ClearCase. En ClearCase, chaque développeur obtient son propre flux de développement. Vous cochez votre flux, puis fusionner votre travail dans le flux d'intégration. (Fondamentalement, tout le monde a eu sa propre branche et vous avez fusionné vos changements dans le coffre). Dans le cadre de mon travail, je soutiens les développeurs pour vérifier leurs changements. J'ai rencontré des rapports en regardant la dernière fois qu'un code fournit au développeur. Je devais constamment gérer des problèmes de fusion. Je me sentais comme un flic sur un battement.

Alors, j'ai eu un emploi où tout le monde a utilisé des CVS. En CVS, la ramification est une douleur, de sorte que tout le monde a travaillé sur la même branche. Je ne pouvais pas imaginer comment cela fonctionnerait. Comment trois douzaines de développeurs peuvent-ils travailler sur la même branche? Pourtant, au fil du temps, j'ai commencé à comprendre que tout le monde pourrait non seulement travailler sur la même branche, mais il y avait moins de problèmes. Je n'ai plus été le flic de battement et au lieu de vous assurer que tous les développeurs suivaient les règles, je pourrais faire d'autres fonctions CM que je n'ai jamais eu le temps de faire. Ma relation avec les développeurs a changé. Je n'étais plus le gars qui est venu autour et leur a dit quoi faire. Au lieu de cela, j'étais quelqu'un qui pourrait aider.

Alors, faites attention à faire votre travail dans votre propre référentiel privé, puis à livrer le produit fini à votre équipe. Si vous faites des travaux majeurs qui nécessiteront un développement à long terme qui pourraient briser la construction pendant que vous le faites, demandez votre propre branche de fonctionnalité à Subversion. De cette façon, tout le monde va voir ce que vous faites.

Cela ne veut pas dire qu'il n'y a pas de raison légitime d'utiliser Git Svn. Personnellement, j'aime vérifier mon code toutes les quelques minutes. Cela me donne la possibilité de revenir un fichier car il était cinq ou dix minutes avant de commencer à faire un gâchis. Je prends toujours de petites bouchées et je vérifie mon code quand j'ai fini. Je vais en moyenne environ 3 à 4 commettre par jour à notre référentiel principal. Moi aussi, je n'utilise pas Svn Git, mais pas pour que je puisse ramper dans ma grotte, mais j'ai donc une corde de vie que je peux utiliser pour me sortir d'une situation de codage désordonnée.

Alors, jetez un coup d'œil à Git Svn, mais s'il vous plaît n'utilisez pas l'excuse que vous avez votre propre référentiel à vous cacher du reste de votre groupe. Vous pouvez utiliser le fournisseur MS Git (ou le [fournisseur SVN de ankhsvn ).


1 commentaires

Alors que cette réponse est hors sujets et que ce commentaire sera donc, mais je voulais juste dire: +1



7
votes

Au fur et à mesure que d'autres réponses ont été déclarées, vous ne pouvez pas avoir 2 repo SVN avec synchronisation bidirectionnelle . Pour la paire SVN-SVN, vous ne pouvez construire que synchronisation à sens unique RO SVN-Miroir .

Pour un repo local pouvant échanger avec central, vous doit utiliser DVCS . Il n'y a aucun moyen de le faire avec SVN droit, sans utiliser de DVC auxiliaires. Si vous ne voulez pas de git, vous pouvez utiliser mercurial avec Hgsubversion, Bazaar ... mais de toute façon c'est SCM supplémentaire.

Pour le travail en solo (si vous devez vraiment travailler de cette façon), il serait préférable de brancher sur le serveur. N'oubliez pas de fusionner régulièrement du coffre à votre succursale; Cela vous aidera à éviter un "maux de tête fusionné".


2 commentaires

La succursale sur le serveur n'est pas une option car je souhaite fermer le serveur (c'est pourquoi je veux du référentiel local, de travailler complètement hors ligne pendant un moment)


Dump repo, charge dans NOUVEAU. Répétez l'opération pour Repo, lorsque vous le retournez en ligne



0
votes

Clone SVN Repo à un autre site SVN

Il existe un moyen de cloner un référentiel SVN à un site SVN différent avec tout ou partie partielle. C'est aussi simple que d'exécuter la commande ci-dessous dans BASH. P>

clone-svn2svn.sh <source_svn_url> <destination_svn_url>


0 commentaires