J'utilise SVN. J'ai deux branches et sur les deux ont été effectuées beaucoup de changements. En plus de l'une des branches, beaucoup de fichiers ont été renommés, alors maintenant SVN ne peut pas m'aider à fusionner des modifications dans ces fichiers (bien connaître la limitation SVN). P>
merci p>
3 Réponses :
Ceci ne peut résoudre que deux têtes à l'aide d'un algorithme de fusion à 3 voies. mais Pour des raisons de simplicité et d'interopérer avec un système moins capable (SVN), il est recommandé que tous les utilisateurs code> git svn code> se clonent directement à partir du serveur SVN et évitent tout Clone / Tire / Fusionner / Poussez les opérations entre référentiels GIT et branches. L'exécution de la fusion GIT ou de la poitrine GIT n'est pas recommandée sur une succursale que vous envisagez de dcommant. Subversion ne représente pas de fusion de manière raisonnable ou utile; Les utilisateurs utilisant Subversion ne peuvent voir aucune fusion que vous avez faite. En outre, si vous fusionnez ou tirez d'une branche GIT, un miroir d'une branche SVN, DCommit peut s'engager à la mauvaise branche. P>
Si vous fusionnez, notez la règle suivante: Git SVN DCommit tentera de s'engager sur le SVN commet nommé dans p>
blockQuote> Vous devez donc vous assurer que la plus récente commit de la succursale que vous souhaitez dommage est le premier parent de la fusion. Le chaos s'ensuivra autrement, surtout si le premier parent est un commit plus ancien sur la même branche SVN. Strong> p>
blockQuote> p> git fusion code> < / a> devrait être capable de détecter (jusqu'à un certain point) renorme.
récursif code> p>
De plus, cela peut détecter et gérer des fantasmes impliquant des renommés.
Ceci est la stratégie de fusion par défaut lors du tirage ou de la fusion d'une branche. P>
blockQquote> git-svn code>
peut seulement importer / exporter de / vers svn, ne pas faire la fusion.
Et la fusion est délicate: p>
La méthode recommandée d'échange de code entre les branches GIT et les utilisateurs est le format GIT-PATCH et GIT AM, ou simplement «DCOMMIT'ing» dans le référentiel SVN. P>
J'ai eu une fois le même problème dans un projet au collège. Ce que j'ai fait était le suivant: p>
git svn clone -s -s https: // ... code>) li>
- Fusionner les branches avec git (
Git Checkout Master; Branche de git Fusionne Code>) Li>
- Checkout Le coffre avec svn (
svn co https: // ... / coffre code>) li>
- copie sur les fichiers fusionnés de git li>
- Supprimer des fichiers et des répertoires à gauche avec svn (
svn rm code>) li>
- commettre avec svn (
svn ci code>) li>
- récupérez le nouveau commit dans GIT LI>
ul>
Merci pour le résumé utile. Le git fusion a-t-il été facile, plus facile qui le fait par SVN? (J'essaye de trouver une réponse à ceci: Stackoverflow.com/Questtions/2945842/... )
Une autre chose, avez-vous essayé de remédier à SVN? Si oui, quelles problèmes vous obtenez / attendiez-vous?
@inger, non, je vous ai commis avec SVN pour vous assurer que je ne finirez pas de pousser à moitié cuit à demi-cuité que seul Git comprendrait.
Vous pourriez utiliser --Squash pour piloter la fusion dans un commettre. Il devrait donc être plus sûr de repousser cela dans SVN (sinon vous pouvez finir par dupliquer beaucoup de commissions précédentes) Link: ryansch.blogspot.co.uk/2009/09/git-svn-and-squash.html
Utilisez les fonctionnalités SVN Fusionner pour fusionner les branches SVN, ce sera plus rapide. L'utilisation de GIT pour ces problèmes est assez complexe, cela crée trop de conflits ... p>
Voir cette réponse: Stackoverflow.com/Questtions/2945842/...
Voir