2010-11-09 6 views
2

La fusion SVN (branche vers trunk) m'a causé beaucoup de problèmes. Maintenant je ne suis pas un expert et cela fait partie du problème (là encore je ne devrais pas être un expert en la matière ... comme c'est le point, ça devrait rendre ma vie plus facile). Quoi qu'il en soit, j'ai un framework en développement rapide et plusieurs fois les dossiers/fichiers sont supprimés/renommés. Supprimer/renommer lui-même n'est pas intuitif dans SVN (par tortue de toute façon) mais je vais laisser cette diapositive.Suppression de fichiers lors de la fusion manuelle dans SVN

Un problème se produit lorsque je fusionne. Si j'ai supprimé/renommé un fichier ou un répertoire, j'ai des conflits d'arborescence. Parfois, la fusion échoue à ajouter un fichier au tronc qui a été ajouté à une branche et continue à me dire que la fusion est réussie (et aucun fichier n'est ajouté). J'ai maintenant eu recours à la fusion manuelle de ces branches de problème.

La fusion manuelle est très simple, sauf en cas de renommage ou de suppression. Je vais aussi le renommer en tant que suppression, car à la fin c'est ce que c'est vraiment. Y at-il un moyen de supprimer automatiquement les dossiers et les fichiers qui restent dans le coffre quand je fais une fusion manuelle?

Voilà comment je fais un manuel de fusion

  1. exporter tous les fichiers modifiés depuis la branche
  2. Passer au tronc, sur-écriture tous les fichiers existants tout en ajoutant de nouveaux dossiers/fichiers ainsi
  3. Commit

réitérer, la façon difficile de supprimer les fichiers renomme/supprime/dossiers est de faire une comparaison. Y a-t-il un moyen plus facile?

Merci!

P.S: Je pense passer à mercurial, car la fusion n'est pas une tâche ardue que dans SVN, or so I have heard ... est-il du poids à cette affirmation?

Répondre

0

Quand je fais ce genre de fusion manuelle (par exemple lorsque les sources réimportation de certains projets externes à plusieurs reprises lorsque ce projet n'a pas de contrôle de version publique), je l'habitude d'écrire un script qui fait un arbre comparer. Il va lister tous les fichiers dans les deux arbres, et comparer ces listes. Un tel script fourni avec subversion est svn_load_dirs. En ce qui concerne votre observation, la fusion automatique des ajouts et des suppressions échoue: si vous voulez obtenir de l'aide à ce sujet, postez-la comme une question distincte. Il se peut que vous fassiez quelque chose de mal - c'est supposé fonctionner.

+0

Nous vous remercions de votre suggestion. J'ai effectué une extraction du tronc et de la branche en question et j'ai parcouru manuellement tous les dossiers/fichiers et supprimé les anciens fichiers/dossiers, puis effectué un commit. J'ai ensuite fait un arbre comparer avec la tortue svn pour m'assurer que la branche et le tronc étaient les mêmes. La comparaison que cela me donne était confuse. Il présentait toujours des différences alors qu'en réalité ils étaient maintenant les mêmes. – Samaursa

Questions connexes