Je suis actuellement en train de restructurer mon référentiel Subversion local en ajoutant de nouveaux projets et en fusionnant du code et des données hérités de quelques anciens dépôts. Lorsque je l'ai fait par le passé, j'ai généralement placé le code existant dans un dossier "legacy" dédié, afin de ne pas "perturber" le nouvel arbre de code "bien structuré". Cependant, dans l'esprit du refactoring, je pense que c'est un peu faux. En théorie, le code existant sera refaçonné au fil du temps et déplacé vers son nouvel emplacement, mais dans la pratique, cela arrive rarement.Comment traitez-vous le code (et les données) hérités?
Comment traitez-vous votre ancien code? Autant je suis tenté de ranger les vieux péchés dans le dossier «héritage», de ne plus jamais le regarder, mais j'espère qu'en le forçant à vivre parmi les habitants les plus «sains» du référentiel, peut-être l'héritage code aura une meilleure chance de se rétablir un jour?
(Oui, nous savons tous we shouldn't rewrite stuff, mais ceci est mon dépôt « fun », pas mes projets d'affaires ...)
Mise à jour
Je ne suis pas inquiet sur les aspects techniques du maintien piste de différentes versions. Je sais comment utiliser les tags et les branches pour ça. C'est plus un aspect psychologique, car je préfère avoir une structure «soignée» dans le référentiel, ce qui rend la navigation beaucoup plus facile pour les humains.
Cela varie. Certains sont: «Je devrais refactoriser ceci le plus tôt possible, mais c'est ennuyeux, alors je le remets à plus tard» et d'autres «J'ai écrit cela il y a dix ans et j'aimerais le garder au cas où je devrais refaire quelque chose ou je me sens juste nostalgique et je veux regarder l'ancien code ". –
... et il y en a qui sont «une fois dans le futur, quand j'ai beaucoup de temps libre, je voudrais reprendre ce projet, mais je ne suis pas vraiment sûr quand, ou même si, ça arrivera , mais je veux garder le code, juste au cas où ". –