2008-09-23 6 views
1

Je me demande si la nécessité de modifier l'indentation du code pour ajuster l'imbrication a des effets négatifs sur la fusion des changements dans un système comme SVN.Dans quelle mesure la dépendance des espaces de Python interagit-elle avec le contrôle de la source en ce qui concerne la fusion?

Ceci est une question très ouverte. Je suis en train de pêcher pour des informations/anecdotes ici.

Editer: Merci à tous! J'accepterais une réponse mais laquelle? Je les ai modifiés tous.

Répondre

1

Cela fonctionne bien tant que tout le monde sur le projet a accepté d'utiliser le même style d'espaces (espaces ou tabulations).

Mais j'ai vu des cas où un développeur a converti un fichier entier d'espaces en onglets (je pense que Eclipse avait cela comme caractéristique, lié à Ctrl + Tab!), Ce qui rend les diffs presque impossibles.

2

J'ai utilisé python avec SVN et Mercurial, et je n'ai pas de problème de fusion. Tout dépend de la façon dont la différence est faite - et je soupçonne que c'est caractère par caractère, qui remarquerait la différence entre un niveau d'indentation et un autre.

+0

C'est ce que je cherche, merci – BCS

+0

Une très bonne fusion remarquerait une modification d'un côté et une tabulation de l'autre et faire les deux ... – BCS

1

En général, les systèmes de contrôle de source se fondent sur une base ligne par ligne par défaut. J'ai trouvé que la fusion du code Python n'est pas différente de la fusion de tout autre code source raisonnablement indenté. Si un programmeur enveloppe un bloc de code dans une instruction if (indentant le bloc entier) et qu'un autre programmeur modifie quelque chose à l'intérieur du bloc, il y aura un conflit de fusion. Heureusement, le conflit dans ce cas est super facile à résoudre.

Si vous utilisez un outil de fusion externe, votre outil peut prendre en charge des algorithmes de fusion textuelle plus détaillés qui prennent automatiquement en compte le scénario ci-dessus.

Questions connexes