2009-06-24 4 views
1

Recherche ici, je trouve que cette question était already asked, mais je pense que ma situation est pire -. (code Synchroniser avec deux référentiels de subversion

Je suis novice totale avec le développement des dépôts Internet A book Je lis contient un exemple de projet intéressant - un réseau social dans ASP.Net.L'auteur a mis le code comme un CodePlex project.J'ai essayé d'obtenir la version via VisualSVN (subversion), mais a échoué.C'est ce que j'ai fait était de télécharger le code comme un zip fichier (c'est-à-dire déconnecté du référentiel du projet), a créé mon propre référentiel local, et a commencé à modifier le code

Maintenant les définitions du CodePlex L'histoire a commencé à devenir active. Ce que je voudrais faire est de transférer en permanence les modifications du dépôt CodePlex vers mon dépôt local, et de reporter occasionnellement certaines de mes modifications au référentiel CodePlex.

Est-ce faisable?

Répondre

1

Ce que je fait réellement, au moins pour l'instant et tant que le trafic pour the CodePlex project est faible:

J'ai téléchargé la version actuelle CodePlex 22875 (comme zip). Heureusement, avant de commencer à jouer avec le projet, j'avais sauvegardé le fichier zip 16202 d'origine sur mon ordinateur (mais je pense que je pourrais aussi l'avoir obtenu avec CodePlex).

Maintenant, j'ai deux dossiers sur mon ordinateur: 22875 et 16202. Ce que j'ai fait était utiliser Total Commander pour comparer les deux arbres et savoir quels fichiers ont été modifiés. Et j'ai intégré manuellement les quelques changements dans mon code.

Je pense que Beyond Compare aurait été encore mieux avec l'intégration, mais je ne suis pas encore familier avec ce que je suis resté avec TC. Pour aller dans l'autre sens, je pense que je devrais vérifier le tronc CodePlex actuel, intégrer mes modifications manuellement, et valider les modifications.

Que puis-je dire - c'est nul. Mais mon volume de changements est tel qu'un référentiel local a beaucoup plus de sens que de travailler avec le référentiel CodePlex. Et comme CodePlex utilise SVN, j'apprécie de travailler localement avec SVN, j'ai juste bombardé $ 49 pour VisualSVN, et j'ai peur du git Unix hacker :-)

0

Non avec le SVN de base, car il considère chaque référentiel séparé et n'autorise pas la fusion entre les repos. Ensuite, vous devrez fusionner manuellement. C'est probablement une douleur.

Note: I Missed votre première ligne dans la question .. doh .. Je l'avais déjà écrit tout cela .. bah .. espère que cela aide un peu quand même .. :)

Comme vous le voyez dans les autres questions, il y a une nouvelle chose appelée DVCS (systèmes de contrôle de version distribués) qui permet l'existence de plusieurs repos et permet de faire des va-et-vient. Il existe quelques versions populaires, Git, Mercurial et Bazaar.

Git est un peu difficile à utiliser, IMO, mais il prend très bien en charge le pontage vers les référentiels svn.

Il y a quelques nouvelles choses à apprendre lorsqu'on passe à une forme distribuée, puisque le modèle de données par définition est plus complexe. Je ne sais pas si c'est pour vous, mais cela confirme ce que vous demandez. Pour appliquer cela, vous devez utiliser votre propre dépôt Git local, importer différents dépôts svn en tant que branches locales dans ce repo. Puis fusionnez les changements de ces branches dans votre branche principale de développement, changez et commettez là (localement) et enfin fusionnez vos modifications à l'une ou l'autre des branches svn, puis poussez les svn-branches dans Git vers les dépôts svn comme nouveau commet Cependant, Git est fait par et pour les pirates informatiques du noyau Linux. Être averti. :)

Mercurial est un peu plus convivial, mais svn-support est, d'après ce que j'ai entendu, pas aussi bon. Je n'ai pas essayé moi-même cependant.

+0

"Git est fait par et pour des pirates Linux" - Maintenant, c'est un avertissement sévère :-), j'ai trouvé, cependant, un git pour Windows que je peux explorer. Merci. – Avi

+0

Ouais, c'est disponible pour Windows, et ça va mieux. Je l'utilise pour certains travaux, et c'est bon pour des choses simples, mais je trouve toujours que c'est une boîte à outils très grande et effrayante. :) – Macke

0

Comme mentionné précédemment, entre les référentiels ne fonctionnera pas.

Retour au problème initial, avez-vous essayé une extraction du référentiel d'origine avec la ligne de commande svn?

A partir du répertoire que vous voulez avoir la copie de travail: svn checkout svn: // codeplex_repository

Ensuite, copiez vos modifications et synchronisent comme d'habitude avec svn en utilisant la mise à jour/validation.

Si vous n'êtes pas familier avec la ligne de commande svn, téléchargez TortoiseSVN, est gratuit et fait le travail.

+0

Merci d'avoir répondu! J'utilise visualSVN (y compris TortoiseSVN). Je pense que je peux vérifier à partir du référentiel Internet sans problème. Cependant, comment puis-je voir mes changements? Et comment puis-je les fusionner dans la copie locale du référentiel CodePlex, afin que je puisse les valider? – Avi

0

vous pouvez regarder de la solution décrite here ... je regarde dans la mise en œuvre d'une même stratégie, et après avoir lu à gauche et à droite je penche pour utiliser SVK. Heres un exemple de synchronisation utilisant svk.