debinstall #63984 ldi publish crash if the destination file exist [validation pending]

When usgin ldi publish, if a destination file exists, ldi just crahs with a traceback like:

Traceback (most recent call last):
 File "/usr/bin/ldi", line 4, in <module>
   ldi.run()
 File "/usr/lib/pymodules/python2.6/debinstall/ldi.py", line 70, in run
   LDI.run(sys.argv[1:])
 File "/usr/lib/pymodules/python2.6/logilab/common/clcommands.py", line 128, in run
   sys.exit(command.main_run(args, rcfile))
 File "/usr/lib/pymodules/python2.6/logilab/common/clcommands.py", line 257, in main_run
   self.run(args)
 File "/usr/lib/pymodules/python2.6/debinstall/ldi.py", line 352, in run
   self.config.publish_group, rm=True)
 File "/usr/lib/pymodules/python2.6/debinstall/ldi.py", line 291, in process_changes_file
   move_(filename, distribdir)
 File "/usr/lib/pymodules/python2.6/logilab/common/shellutils.py", line 133, in cp
   mv(source, destination, _action=shutil.copy)
 File "/usr/lib/pymodules/python2.6/logilab/common/shellutils.py", line 116, in mv
   source, destination, ex))
OSError: Unable to move u'/home/logilab/repositories/extranet/incoming/lenny/package_0.23.1.orig.tar.gz' to u'/home/logilab/repositories/extranet/dists/lenny/cpackage_0.23.1.orig.tar.gz'  ([Errno 1] Operation not permitted: '/home/logilab/repositories/extrane/dists/lenny/package_0.23.1.orig.tar.gz')

The fact that ldi do not silently overwrite the destination file is a good thing, but it should warn the user instead of crashing with a traceback.

prioritynormal
typebug
done in2.5.0
load0.100
load left0.000
closed by#d6cc3ff77873 publish: add a force option to overwrite existing files (closes #63984, #63985)