You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When two files for a message that matches 'NOT tag:inbox' exist, one in main/INBOX and the other in main/INBOX.archive, afew --move-mail fails with the following stack trace:
File "/usr/local/bin/afew", line 11, in
sys.exit(main())
File "/usr/local/lib/python3.6/site-packages/afew/commands.py", line 159, in main
inner_main(args, database, query_string)
File "/usr/local/lib/python3.6/site-packages/afew/main.py", line 33, in main
mover.move(maildir, rules)
File "/usr/local/lib/python3.6/site-packages/afew/MailMover.py", line 75, in move
shutil.copy2(fname, self.get_new_name(fname, destination))
File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/shutil.py", line 257, in copy2
copyfile(src, dst, follow_symlinks=follow_symlinks)
File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/shutil.py", line 104, in copyfile
raise SameFileError("{!r} and {!r} are the same file".format(src, dst))
shutil.SameFileError: '.../main/INBOX.archive/cur/1523257381_0.1544....' and '.../main/INBOX.archive/cur/1523257381_0.1544....' are the same file
This is I think because selecting the file in the specified maildir is done using "if maildir in name". Around line 63 in method move() in MailMover.py, to_move_fnames is defined as:
to_move_fnames = [name for name in all_message_fnames if maildir in name]
If you replace "maildir in name" is with "maildir + '/cur' in name", the problem is gone, though I do not know if that is a correct fix.
The text was updated successfully, but these errors were encountered:
Hello,
Move-mail function can abort when mailboxes have overwrapping path names.
I have entries something like the following:
[MailMover]
folders = main/INBOX main/INBOX.archive
main/INBOX = 'NOT tag:inbox':main/INBOX.archive
main/INBOX.archive = 'tag:deleted':main/INBOX.Trash
When two files for a message that matches 'NOT tag:inbox' exist, one in main/INBOX and the other in main/INBOX.archive, afew --move-mail fails with the following stack trace:
File "/usr/local/bin/afew", line 11, in
sys.exit(main())
File "/usr/local/lib/python3.6/site-packages/afew/commands.py", line 159, in main
inner_main(args, database, query_string)
File "/usr/local/lib/python3.6/site-packages/afew/main.py", line 33, in main
mover.move(maildir, rules)
File "/usr/local/lib/python3.6/site-packages/afew/MailMover.py", line 75, in move
shutil.copy2(fname, self.get_new_name(fname, destination))
File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/shutil.py", line 257, in copy2
copyfile(src, dst, follow_symlinks=follow_symlinks)
File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/shutil.py", line 104, in copyfile
raise SameFileError("{!r} and {!r} are the same file".format(src, dst))
shutil.SameFileError: '.../main/INBOX.archive/cur/1523257381_0.1544....' and '.../main/INBOX.archive/cur/1523257381_0.1544....' are the same file
This is I think because selecting the file in the specified maildir is done using "if maildir in name". Around line 63 in method move() in MailMover.py, to_move_fnames is defined as:
to_move_fnames = [name for name in all_message_fnames if maildir in name]
If you replace "maildir in name" is with "maildir + '/cur' in name", the problem is gone, though I do not know if that is a correct fix.
The text was updated successfully, but these errors were encountered: