J'utilise 'git svn' pour cloner la source à partir de svn repository. Et utilisez une branche pour créer de nouvelles fonctionnalités. Le graphique du journal git commeMise à jour de ma branche git suivie des modifications du référentiel svn dans git-svn
S1-S2+S3-S4-S5-S6-S7 (master)
+B1-B2-...-B9 (new-feature)
La nouvelle version svn est 'S7' et la dernière branche locale est 'B9'. Je veux que le graphique soit rebasées comme
S1-S2+S3-S4-S5-S6-S7+ (master)
+B2-B9 (new-feature)
Mes commandes opération:
git checkout master
git svn rebase # it updated master to S7
git checkout new-feature
git rebase master
Il va se produit de nombreux conflits d'espace, comme je sais que ce que B1, B3 ... B8 ont déjà enregistré svn par d'autres personnes. Y a-t-il une méthode plus intelligente pour me laisser garder mes patchs, ce qui n'est pas seulement un conflit spatial? Ici les B2, B9 ne sont que des exemples. En fait, je ne sais pas quels correctifs doivent être remplacés, fusionnés ou ignorés à l'avance. Je sais juste que certaines des vérifications svn sont en double avec certains correctifs de Bx.
J'ai édité ma question, le problème est que je ne sais pas quel correctif dois-je remplacer ou ignorer à l'avance. –
Eh bien, ils ne sont pas ** dupliqués, sinon le commit serait vide sur rebase et donc automatiquement ignoré. Les espaces blancs différents ne sont pas des doublons. Alors, quand/comment voulez-vous déterminer/savoir quels commits sauter? Cela ne peut certainement pas être fait automatiquement s'il y a des différences. Git est un traqueur de contenu stupide. Les espaces peuvent être significatifs, donc Git devrait connaître le format du fichier pour "savoir" que la différence d'espace n'est pas significative. Et même si ce n'est pas techniquement significatif, cela pourrait être significatif pour un œil humain. – Vampire