Future of conflict API resp. possibility to extract in non-empty directories
It seems that currently, none of the gnome-autoar clients use conflict
signal and always extract the archive in the unique folder. The signal seems is not optimal to handle conflicts anyway. It just carries GFile
for the file which causes the conflict, but it should also carry GFileInfo
for the new file, so the client knows file type, size etc. Also, it is not obvious whether the conflict was caused just by files from the archive, or because of some preexisting files. If it was a preexisting file, it would be better to skip by default, however, in the opposite case, it would be better to overwrite by default. Because e.g. tar can contain multiple versions of some file with the same name and the last one is usually the most recent. Also, it would good to check that hard links are created only for files, which were extracted from the archives. Also, I was thinking about the possibility to rewrite extractor code to use libarchive as much as possible, so use their write disk API mainly for security reasons. However, the existence of conflict
API just complicates fixes for the mentioned issues. Do we really need it when nobody uses it? Or it is used somewhere? What was the original purpose of it?
I would suggest dropping the conflict API and always rewrite existing files and perhaps also suggest unique dir (with ([number])
suffix) over decide-destination
unless the output-is-dest
property is set. What do you think?