Je ne vous cache pas être singulièrement déçu de trouver des choses pareilles dans prcs2svn. Bon sang, on n'a plus ce niveau-là !!! Je ne parle même de la boucle for qui peut certainement s'écrire avec un map (mais je ne connais pas assez Python pour l'instant).
Index: ChangeLog from Akim Demaille akim@epita.fr
Factor!
* prcs2svn/prcs2svn.py (Svn.changes_apply_add): New, replaces... (Svn.changes_apply_directories_add) (Svn.changes_apply_links_add) (Svn.changes_apply_files_add): these similar routines. BTW, kill some meaningless, and probably antique, comments.
Index: prcs2svn/prcs2svn.py --- prcs2svn/prcs2svn.py (revision 92) +++ prcs2svn/prcs2svn.py (working copy) @@ -601,31 +601,19 @@ f.write("Symbolic link to: " + ref + "\n") f.close()
- # Add directories. - # The destination of a renaming may be in a new directory. - def changes_apply_directories_add(self, diffs): - if len(diffs.added_dirs): - info(" > Add directories to Subversion repository") + + def changes_apply_add (self, kind, list): + "svn add the new KIND entities in LIST." + if list: + info(" > Add " + kind + " to Subversion repository") args = "" - for d in diffs.added_dirs: + for d in list: info(" * " + d) - args = args + " " + quote(d) + args += " " + quote (d) if infos.action: xsystem("svn add --non-recursive" + args)
- # Add Links. - # FIXME: bad trick to convert some projects. - def changes_apply_links_add(self, diffs): - if len(diffs.links): - info(" > Add links to Subversion repository") - args = "" - for l in diffs.links: - info(" * " + l) - args = args + " " + quote(l) - if infos.action: - xsystem("svn add --non-recursive" + args) - # Rename files. # The source always exists and so does the destination directory. def changes_apply_files_rename(self, diffs, checkin_login, version_log, \ @@ -673,18 +661,6 @@ for b in backup.keys(): xmove(backup[b], b)
- # Add files. - # Hard to explain, see movement of "Makefile.am" in oln 0_7_reconf.1.prj. - def changes_apply_files_add(self, diffs): - if len(diffs.added_files): - info(" > Add files to Subversion repository") - args = "" - for f in diffs.added_files: - info(" * " + f) - args = args + " " + quote(f) - if infos.action: - xsystem("svn add --non-recursive" + args) - # Delete directories and files. # Deleting a directory may delete a source of a renaming. def changes_apply_files_directories_delete(self, diffs): @@ -706,11 +682,11 @@ # Be careful: the order is very important! def changes_apply(self, diffs, checkin_login, version_log, checkin_time): self.changes_apply_links_replace(diffs) - self.changes_apply_directories_add(diffs) - self.changes_apply_links_add(diffs) + self.changes_apply_add ("directories", diffs.added_dirs) + self.changes_apply_add ("symlinks", diffs.links) self.changes_apply_files_rename(diffs, checkin_login, version_log, checkin_time) - self.changes_apply_files_add(diffs) + self.changes_apply_add ("files", diffs.added_files) self.changes_apply_files_directories_delete(diffs)
Akim Demaille wrote:
Je ne vous cache pas être singulièrement déçu de trouver des choses pareilles dans prcs2svn. Bon sang, on n'a plus ce niveau-là !!!
Tout à fait. C'est aussi l'occasion d'en remettre une couche sur l'intérêt de documenter régulièrement si ce n'est au fur et à mesure. Quand vous documentez votre code, vous le relisez et vous VOYEZ ces choses là.