File: mergeall-products/unzipped/test/test-symlinks/mergeall-diffall-results.txt
#========================================================================================== # Test/demo mergeall and diffall 3.0 symlinks support: # # -Run on Mac OS X 10.11, Python 3.5 (python.org), mergeall 3.0; # # -Later tests also add a fifo file (not shown by Finder) to verify it is skipped # # -Results are also the same for mergeall's 3.5+ optimized comparison variant, # though only comparison phase differs (resolution phase code is identical) #========================================================================================== #****************************************************************************************** # 1) Main tests: AFTER deleting test1+test2 and unzipping them from the save file here #****************************************************************************************** # # INITIAL test-folders state # /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../mergeall.py test1 test2 -report -skipcruft Starting. ------------------------------------------------------------------------------- *Collecting tree differences Skipping system cruft (metadata) files in both FROM and TO comparing [test1] [test2] comparing [test1/dir] [test2/dir] Phase runtime: 0.0016189650050364435 ------------------------------------------------------------------------------- *Reporting tree differences ------------------------------------------------------------------------------- SAMEFILE DIFFERENCES: (name, dirfrom, dirto, why) **These items will be replaced in dirto by automatic resolution** [('dirlink', 'test1', 'test2', 'linkpaths')] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRTO: (names, dirfrom, dirto) **These items will be deleted from dirto by automatic resolution** [(['extralink'], 'test1', 'test2')] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRFROM: (names, dirfrom, dirto) **These items will be copied over to dirto by automatic resolution** [(['filelink'], 'test1', 'test2')] ------------------------------------------------------------------------------- MIXED MODE NAMES: (name, dirfrom, dirto) **These items will be replaced in dirto by automatic resolution** [] ------------------------------------------------------------------------------- *Summary Compared => files: 2, folders: 2 Differences => samefile: 1, uniqueto: 1, uniquefrom: 1, mixedmode: 0 Changed: files => created: 0, deleted: 0, replaced: 0 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished. /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../diffall.py test1 test2 -skipcruft -------------------- Comparing test1 to test2 *UNIQUE items in test1: ... filelink *UNIQUE items in test2: ... extralink Comparing contents *DIFFER: dirlink file matches nestedfilelink matches -------------------- Comparing test1/dir to test2/dir Directory lists are identical Comparing contents nestedfile matches ================================================================================ Runtime hrs:mins:secs = 0:0:0.00 Dirs checked 2, Files checked: 4, Files skipped: 0 System metadata (cruft) files were skipped Diffs found: 2 - items UNIQUE at [test1] - [test2] - links DIFFER at [test1/dirlink] - [test2/dirlink] End of report. # # MIRROR test1 to test2, links and all (except cruft) # /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../mergeall.py test1 test2 -auto -backup -skipcruft Starting. ------------------------------------------------------------------------------- *Collecting tree differences Skipping system cruft (metadata) files in both FROM and TO comparing [test1] [test2] comparing [test1/dir] [test2/dir] Phase runtime: 0.001686704985331744 ------------------------------------------------------------------------------- *Reporting tree differences ------------------------------------------------------------------------------- SAMEFILE DIFFERENCES: (name, dirfrom, dirto, why) **These items will be replaced in dirto by automatic resolution** [('dirlink', 'test1', 'test2', 'linkpaths')] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRTO: (names, dirfrom, dirto) **These items will be deleted from dirto by automatic resolution** [(['extralink'], 'test1', 'test2')] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRFROM: (names, dirfrom, dirto) **These items will be copied over to dirto by automatic resolution** [(['filelink'], 'test1', 'test2')] ------------------------------------------------------------------------------- MIXED MODE NAMES: (name, dirfrom, dirto) **These items will be replaced in dirto by automatic resolution** [] ------------------------------------------------------------------------------- *Resolving tree differences Skipping system cruft (metadata) files in FROM folders ....backing up dirlink to test2/__bkp__/date170203-time122457/dirlink propagating symlink test2/dirlink propagating symlink test1/dirlink replaced same file, using FROM test1/dirlink ....backing up extralink to test2/__bkp__/date170203-time122457/extralink propagating symlink test2/extralink removed old TO file, test2/extralink propagating symlink test1/filelink copied new FROM file, test1/filelink Phase runtime: 0.0016694979858584702 ------------------------------------------------------------------------------- *Summary Compared => files: 2, folders: 2 Differences => samefile: 1, uniqueto: 1, uniquefrom: 1, mixedmode: 0 Changed: files => created: 1, deleted: 1, replaced: 1 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished. # # VERIFY results: test1 == test2 # /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../mergeall.py test1 test2 -report -skipcruft Starting. ------------------------------------------------------------------------------- *Collecting tree differences Skipping system cruft (metadata) files in both FROM and TO comparing [test1] [test2] comparing [test1/dir] [test2/dir] Phase runtime: 0.001792532973922789 ------------------------------------------------------------------------------- *Reporting tree differences ------------------------------------------------------------------------------- SAMEFILE DIFFERENCES: (name, dirfrom, dirto, why) **These items will be replaced in dirto by automatic resolution** [] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRTO: (names, dirfrom, dirto) **These items will be deleted from dirto by automatic resolution** [] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRFROM: (names, dirfrom, dirto) **These items will be copied over to dirto by automatic resolution** [] ------------------------------------------------------------------------------- MIXED MODE NAMES: (name, dirfrom, dirto) **These items will be replaced in dirto by automatic resolution** [] ------------------------------------------------------------------------------- *Summary Compared => files: 2, folders: 2 Differences => samefile: 0, uniqueto: 0, uniquefrom: 0, mixedmode: 0 Changed: files => created: 0, deleted: 0, replaced: 0 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished. /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../diffall.py test1 test2 -skipcruft -------------------- Comparing test1 to test2 *UNIQUE items in test2: ... __bkp__ Comparing contents dirlink matches file matches filelink matches nestedfilelink matches -------------------- Comparing test1/dir to test2/dir Directory lists are identical Comparing contents nestedfile matches ================================================================================ Runtime hrs:mins:secs = 0:0:0.00 Dirs checked 2, Files checked: 5, Files skipped: 0 System metadata (cruft) files were skipped Diffs found: 1 - items UNIQUE at [test1] - [test2] End of report. # # ROLLBACK prior mergeall run to restore test2 # /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../rollback.py test2 **Warning** This script builds and runs a command to automatically restore the tree, whose root path is given on the command line or interactively, to its state prior to its most recent mergeall synch. It assumes that the tree has not been changed since this synch, and further assumes that the latest synch was run with backups enabled. This rollback cannot be undone automatically. Are you sure you want to do this (y=yes)? y Running rollback command: .... /Library/Frameworks/Python.framework/Versions/3.5/bin/python3 /MY-STUFF/Code/mergeall/mergeall.py test2/__bkp__/date170307-time154207 test2 -auto -restore Starting. ------------------------------------------------------------------------------- *Collecting tree differences comparing [test2/__bkp__/date170307-time154207] [test2] excluding test2/__bkp__ Phase runtime: 0.00016733695520088077 ------------------------------------------------------------------------------- *Reporting tree differences ------------------------------------------------------------------------------- SAMEFILE DIFFERENCES: (name, dirfrom, dirto, why) **These items will be replaced in dirto by automatic resolution** [('dirlink', 'test2/__bkp__/date170307-time154207', 'test2', 'linkpaths')] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRTO: (names, dirfrom, dirto) **These items will be deleted from dirto by automatic resolution** [(['.DS_Store', 'dir', 'file', 'filelink', 'nestedfilelink'], 'test2/__bkp__/date170307-time154207', 'test2')] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRFROM: (names, dirfrom, dirto) **These items will be copied over to dirto by automatic resolution** [(['__added__.txt', 'extralink'], 'test2/__bkp__/date170307-time154207', 'test2')] ------------------------------------------------------------------------------- MIXED MODE NAMES: (name, dirfrom, dirto) **These items will be replaced in dirto by automatic resolution** [] ------------------------------------------------------------------------------- *Resolving tree differences ....removed added file: test2/filelink ....prior file/dir additions removed: 1/0 propagating symlink test2/__bkp__/date170307-time154207/dirlink replaced same file, using FROM test2/__bkp__/date170307-time154207/dirlink ....retained unique item in TO tree: [test2/.DS_Store] ....retained unique item in TO tree: [test2/dir] ....retained unique item in TO tree: [test2/file] ....retained unique item in TO tree: [test2/filelink] ....retained unique item in TO tree: [test2/nestedfilelink] copied new FROM file, test2/__bkp__/date170307-time154207/__added__.txt propagating symlink test2/__bkp__/date170307-time154207/extralink copied new FROM file, test2/__bkp__/date170307-time154207/extralink ....removed __added__.txt file from TO tree root Phase runtime: 0.0020472289761528373 ------------------------------------------------------------------------------- *Summary Compared => files: 0, folders: 1 Differences => samefile: 1, uniqueto: 5, uniquefrom: 2, mixedmode: 0 Changed: files => created: 1, deleted: 1, replaced: 1 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished. Press Enter to exit. # # VERIFY test2 same as original in unzipped save folder again # /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../mergeall.py test2 save-test1-test2/test2 -report -skipcruft Starting. ------------------------------------------------------------------------------- *Collecting tree differences Skipping system cruft (metadata) files in both FROM and TO comparing [test2] [save-test1-test2/test2] excluding test2/__bkp__ comparing [test2/dir] [save-test1-test2/test2/dir] Phase runtime: 0.002943596977274865 ------------------------------------------------------------------------------- *Reporting tree differences ------------------------------------------------------------------------------- SAMEFILE DIFFERENCES: (name, dirfrom, dirto, why) **These items will be replaced in dirto by automatic resolution** [] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRTO: (names, dirfrom, dirto) **These items will be deleted from dirto by automatic resolution** [] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRFROM: (names, dirfrom, dirto) **These items will be copied over to dirto by automatic resolution** [] ------------------------------------------------------------------------------- MIXED MODE NAMES: (name, dirfrom, dirto) **These items will be replaced in dirto by automatic resolution** [] ------------------------------------------------------------------------------- *Summary Compared => files: 2, folders: 2 Differences => samefile: 0, uniqueto: 0, uniquefrom: 0, mixedmode: 0 Changed: files => created: 0, deleted: 0, replaced: 0 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished. /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../diffall.py test2 save-test1-test2/test2 -skipcruft -------------------- Comparing test2 to save-test1-test2/test2 *UNIQUE items in test2: ... __bkp__ Comparing contents dirlink matches extralink matches file matches nestedfilelink matches -------------------- Comparing test2/dir to save-test1-test2/test2/dir Directory lists are identical Comparing contents nestedfile matches ================================================================================ Runtime hrs:mins:secs = 0:0:0.00 Dirs checked 2, Files checked: 5, Files skipped: 0 System metadata (cruft) files were skipped Diffs found: 1 - items UNIQUE at [test2] - [save-test1-test2/test2] End of report. #****************************************************************************************** # 2) More tests: AFTER delete+unzip test1/test2 to reset #****************************************************************************************** /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 >>> import os # unique from >>> os.mkfifo('test1/fifo') # unique from >>> os.readlink('test1/filelink') 'file' >>> os.readlink('test2/filelink') FileNotFoundError: [Errno 2] No such file or directory: 'test2/filelink' # unique to >>> os.readlink('test2/extralink') 'file' >>> os.readlink('test1/extralink') FileNotFoundError: [Errno 2] No such file or directory: 'test1/extralink' # differs >>> os.readlink('test1/dirlink') 'dir' >>> os.readlink('test2/dirlink') 'file' # same >>> os.readlink('test1/nestedfilelink') 'dir/nestedfile' >>> os.readlink('test2/nestedfilelink') 'dir/nestedfile' >>> ^D /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../mergeall.py test1 test2 -report -skipcruft Starting. ------------------------------------------------------------------------------- *Collecting tree differences Skipping system cruft (metadata) files in both FROM and TO comparing [test1] [test2] comparing [test1/dir] [test2/dir] Phase runtime: 0.003340727009344846 ------------------------------------------------------------------------------- *Reporting tree differences ------------------------------------------------------------------------------- SAMEFILE DIFFERENCES: (name, dirfrom, dirto, why) **These items will be replaced in dirto by automatic resolution** [('dirlink', 'test1', 'test2', 'linkpaths')] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRTO: (names, dirfrom, dirto) **These items will be deleted from dirto by automatic resolution** [(['extralink'], 'test1', 'test2')] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRFROM: (names, dirfrom, dirto) **These items will be copied over to dirto by automatic resolution** [(['fifo', 'filelink'], 'test1', 'test2')] ------------------------------------------------------------------------------- MIXED MODE NAMES: (name, dirfrom, dirto) **These items will be replaced in dirto by automatic resolution** [] ------------------------------------------------------------------------------- *Summary Compared => files: 2, folders: 2 Differences => samefile: 1, uniqueto: 1, uniquefrom: 2, mixedmode: 0 Changed: files => created: 0, deleted: 0, replaced: 0 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished. /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../diffall.py test1 test2 -skipcruft -------------------- Comparing test1 to test2 *UNIQUE items in test1: ... fifo ... filelink *UNIQUE items in test2: ... extralink Comparing contents *DIFFER: dirlink file matches nestedfilelink matches -------------------- Comparing test1/dir to test2/dir Directory lists are identical Comparing contents nestedfile matches ================================================================================ Runtime hrs:mins:secs = 0:0:0.00 Dirs checked 2, Files checked: 4, Files skipped: 0 System metadata (cruft) files were skipped Diffs found: 2 - items UNIQUE at [test1] - [test2] - links DIFFER at [test1/dirlink] - [test2/dirlink] End of report. /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../mergeall.py test1 test2 -auto -backup -skipcruft Starting. ------------------------------------------------------------------------------- *Collecting tree differences Skipping system cruft (metadata) files in both FROM and TO comparing [test1] [test2] comparing [test1/dir] [test2/dir] Phase runtime: 0.0017882630345411599 ------------------------------------------------------------------------------- *Reporting tree differences ------------------------------------------------------------------------------- SAMEFILE DIFFERENCES: (name, dirfrom, dirto, why) **These items will be replaced in dirto by automatic resolution** [('dirlink', 'test1', 'test2', 'linkpaths')] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRTO: (names, dirfrom, dirto) **These items will be deleted from dirto by automatic resolution** [(['extralink'], 'test1', 'test2')] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRFROM: (names, dirfrom, dirto) **These items will be copied over to dirto by automatic resolution** [(['fifo', 'filelink'], 'test1', 'test2')] ------------------------------------------------------------------------------- MIXED MODE NAMES: (name, dirfrom, dirto) **These items will be replaced in dirto by automatic resolution** [] ------------------------------------------------------------------------------- *Resolving tree differences Skipping system cruft (metadata) files in FROM folders ....backing up dirlink to test2/__bkp__/date170202-time110027/dirlink propagating symlink test2/dirlink propagating symlink test1/dirlink replaced same file, using FROM test1/dirlink ....backing up extralink to test2/__bkp__/date170202-time110027/extralink propagating symlink test2/extralink removed old TO file, test2/extralink ignored unknown type, FROM: test1/fifo propagating symlink test1/filelink copied new FROM file, test1/filelink Phase runtime: 0.002961701015010476 ------------------------------------------------------------------------------- *Summary Compared => files: 2, folders: 2 Differences => samefile: 1, uniqueto: 1, uniquefrom: 2, mixedmode: 0 Changed: files => created: 1, deleted: 1, replaced: 1 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished. /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../mergeall.py test1 test2 -report -skipcruft Starting. ------------------------------------------------------------------------------- *Collecting tree differences Skipping system cruft (metadata) files in both FROM and TO comparing [test1] [test2] excluding test2/__bkp__ comparing [test1/dir] [test2/dir] Phase runtime: 0.0019892219570465386 ------------------------------------------------------------------------------- *Reporting tree differences ------------------------------------------------------------------------------- SAMEFILE DIFFERENCES: (name, dirfrom, dirto, why) **These items will be replaced in dirto by automatic resolution** [] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRTO: (names, dirfrom, dirto) **These items will be deleted from dirto by automatic resolution** [] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRFROM: (names, dirfrom, dirto) **These items will be copied over to dirto by automatic resolution** [(['fifo'], 'test1', 'test2')] ------------------------------------------------------------------------------- MIXED MODE NAMES: (name, dirfrom, dirto) **These items will be replaced in dirto by automatic resolution** [] ------------------------------------------------------------------------------- *Summary Compared => files: 2, folders: 2 Differences => samefile: 0, uniqueto: 0, uniquefrom: 1, mixedmode: 0 Changed: files => created: 0, deleted: 0, replaced: 0 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished. /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../diffall.py test1 test2 -skipcruft -------------------- Comparing test1 to test2 *UNIQUE items in test1: ... fifo *UNIQUE items in test2: ... __bkp__ Comparing contents dirlink matches file matches filelink matches nestedfilelink matches -------------------- Comparing test1/dir to test2/dir Directory lists are identical Comparing contents nestedfile matches ================================================================================ Runtime hrs:mins:secs = 0:0:0.01 Dirs checked 2, Files checked: 5, Files skipped: 0 System metadata (cruft) files were skipped Diffs found: 1 - items UNIQUE at [test1] - [test2] End of report. /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 >>> import os # copied new >>> os.readlink('test1/filelink') 'file' >>> os.readlink('test2/filelink') 'file' # replaced >>> os.readlink('test1/dirlink') 'dir' >>> os.readlink('test2/dirlink') 'dir' # backed up >>> os.readlink('test2/__bkp__/date170202-time110027/dirlink') 'file' # removed >>> os.readlink('test2/extralink') FileNotFoundError: [Errno 2] No such file or directory: 'test2/extralink' # backed up >>> os.readlink('test2/__bkp__/date170202-time110027/extralink') 'file' # fifo igored >>> os.listdir('test1') ['.DS_Store', 'dir', 'dirlink', 'fifo', 'file', 'filelink', 'nestedfilelink'] >>> os.listdir('test2') ['.DS_Store', '__bkp__', 'dir', 'dirlink', 'file', 'filelink', 'nestedfilelink'] # leaves fifo unresolved /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../mergeall.py test1 test2 -auto -backup -skipcruft Using Python 3.5+ os.scandir() optimized variant. Starting. ------------------------------------------------------------------------------- *Collecting tree differences Skipping system cruft (metadata) files in both FROM and TO comparing [test1] [test2] excluding test2/__bkp__ comparing [test1/dir] [test2/dir] Phase runtime: 0.0018067510100081563 ------------------------------------------------------------------------------- *Reporting tree differences ------------------------------------------------------------------------------- SAMEFILE DIFFERENCES: (name, dirfrom, dirto, why) **These items will be replaced in dirto by automatic resolution** [] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRTO: (names, dirfrom, dirto) **These items will be deleted from dirto by automatic resolution** [] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRFROM: (names, dirfrom, dirto) **These items will be copied over to dirto by automatic resolution** [(['fifo'], 'test1', 'test2')] ------------------------------------------------------------------------------- MIXED MODE NAMES: (name, dirfrom, dirto) **These items will be replaced in dirto by automatic resolution** [] ------------------------------------------------------------------------------- *Resolving tree differences Skipping system cruft (metadata) files in FROM folders ignored unknown type, FROM: test1/fifo Phase runtime: 8.372199954465032e-05 ------------------------------------------------------------------------------- *Summary Compared => files: 2, folders: 2 Differences => samefile: 0, uniqueto: 0, uniquefrom: 1, mixedmode: 0 Changed: files => created: 0, deleted: 0, replaced: 0 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished. #****************************************************************************************** # 3) More FIFO cases - test folders NOT changed #****************************************************************************************** /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 >>> import os >>> # in FROM but not TO (test1/fifo created above) >>> os.mkfifo('test2/fifo2') # in TO but not FROM >>> os.mkfifo('test1/fifo3') # in BOTH >>> os.mkfifo('test2/fifo3') >>> >>> os.listdir('test1') ['.DS_Store', 'dir', 'dirlink', 'fifo', 'fifo3', 'file', 'filelink', 'nestedfilelink'] >>> os.listdir('test2') ['.DS_Store', '__bkp__', 'dir', 'dirlink', 'fifo2', 'fifo3', 'file', 'filelink', 'nestedfilelink'] >>> ^D /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../mergeall.py test1 test2 -auto -backup -skipcruft Starting. ------------------------------------------------------------------------------- *Collecting tree differences Skipping system cruft (metadata) files in both FROM and TO comparing [test1] [test2] excluding test2/__bkp__ comparing [test1/dir] [test2/dir] Phase runtime: 0.0023478370276279747 ------------------------------------------------------------------------------- *Reporting tree differences ------------------------------------------------------------------------------- SAMEFILE DIFFERENCES: (name, dirfrom, dirto, why) **These items will be replaced in dirto by automatic resolution** [] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRTO: (names, dirfrom, dirto) **These items will be deleted from dirto by automatic resolution** [(['fifo2'], 'test1', 'test2')] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRFROM: (names, dirfrom, dirto) **These items will be copied over to dirto by automatic resolution** [(['fifo'], 'test1', 'test2')] ------------------------------------------------------------------------------- MIXED MODE NAMES: (name, dirfrom, dirto) **These items will be replaced in dirto by automatic resolution** [('fifo3', 'test1', 'test2')] ------------------------------------------------------------------------------- *Resolving tree differences Skipping system cruft (metadata) files in FROM folders ignored unknown type, TO: test2/fifo2 ignored unknown type, FROM: test1/fifo ignored unknown types, FROM: test1/fifo3 TO: test2/fifo3 Phase runtime: 0.00014492403715848923 ------------------------------------------------------------------------------- *Summary Compared => files: 2, folders: 2 Differences => samefile: 0, uniqueto: 1, uniquefrom: 1, mixedmode: 1 Changed: files => created: 0, deleted: 0, replaced: 0 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished. /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../diffall.py test1 test2 -skipcruft -------------------- Comparing test1 to test2 *UNIQUE items in test1: ... fifo *UNIQUE items in test2: ... __bkp__ ... fifo2 Comparing contents dirlink matches file matches filelink matches nestedfilelink matches *MISSED: fifo3 -------------------- Comparing test1/dir to test2/dir Directory lists are identical Comparing contents nestedfile matches ================================================================================ Runtime hrs:mins:secs = 0:0:0.00 Dirs checked 2, Files checked: 5, Files skipped: 0 System metadata (cruft) files were skipped Diffs found: 2 - items UNIQUE at [test1] - [test2] - items MISSED at [test1] - [test2]: [fifo3] End of report. #****************************************************************************************** # 4) More FIFO cases - mixed with links (only) -- harsher, but reasonable and rare #****************************************************************************************** # continue without changing test folders /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 >>> import os >>> os.remove('test1/fifo3') >>> os.remove('test2/fifo3') >>> >>> os.mkfifo('test1/fifo3') # FROM=fifo, TO=link >>> os.symlink('file', 'test2/fifo3') >>> ^D # error reported in other+link code: TO link backed up and removed but not replaced /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../mergeall.py test1 test2 -auto -backup -skipcruft Starting. ------------------------------------------------------------------------------- *Collecting tree differences Skipping system cruft (metadata) files in both FROM and TO comparing [test1] [test2] excluding test2/__bkp__ comparing [test1/dir] [test2/dir] Phase runtime: 0.001887249993160367 ------------------------------------------------------------------------------- *Reporting tree differences ------------------------------------------------------------------------------- SAMEFILE DIFFERENCES: (name, dirfrom, dirto, why) **These items will be replaced in dirto by automatic resolution** [] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRTO: (names, dirfrom, dirto) **These items will be deleted from dirto by automatic resolution** [(['fifo2'], 'test1', 'test2')] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRFROM: (names, dirfrom, dirto) **These items will be copied over to dirto by automatic resolution** [(['fifo'], 'test1', 'test2')] ------------------------------------------------------------------------------- MIXED MODE NAMES: (name, dirfrom, dirto) **These items will be replaced in dirto by automatic resolution** [('fifo3', 'test1', 'test2')] ------------------------------------------------------------------------------- *Resolving tree differences Skipping system cruft (metadata) files in FROM folders ignored unknown type, TO: test2/fifo2 ignored unknown type, FROM: test1/fifo ....backing up fifo3 to test2/__bkp__/date170203-time155439/fifo3 propagating symlink test2/fifo3 **Error replacing item with FROM item: skipped test1/fifo3 <class 'OSError'> Unknown FROM not copied Phase runtime: 0.0014321600319817662 ------------------------------------------------------------------------------- *Summary Compared => files: 2, folders: 2 Differences => samefile: 0, uniqueto: 1, uniquefrom: 1, mixedmode: 1 Changed: files => created: 0, deleted: 0, replaced: 0 folders => created: 0, deleted: 0, replaced: 0 **There are error messages in the log file above: see "**Error" ------------------------------------------------------------------------------- Finished. /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 >>> import os >>> os.remove('test1/fifo3') >>> os.remove('test2/fifo3') FileNotFoundError: [Errno 2] No such file or directory: 'test2/fifo3' # but link backed up before removed >>> os.readlink('test2/__bkp__/date170203-time155439/fifo3') 'file' >>> os.mkfifo('test2/fifo3') >>> os.symlink('file', 'test1/fifo3') # FROM=link, TO=fifo >>> ^D # rule out in link+other code (doesn't reach FIFO backup code) # same net effect as fifo+fifo case above, but different code /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../mergeall.py test1 test2 -auto -backup -skipcruft Starting. ------------------------------------------------------------------------------- *Collecting tree differences Skipping system cruft (metadata) files in both FROM and TO comparing [test1] [test2] excluding test2/__bkp__ comparing [test1/dir] [test2/dir] Phase runtime: 0.001885197008959949 ------------------------------------------------------------------------------- *Reporting tree differences ------------------------------------------------------------------------------- SAMEFILE DIFFERENCES: (name, dirfrom, dirto, why) **These items will be replaced in dirto by automatic resolution** [] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRTO: (names, dirfrom, dirto) **These items will be deleted from dirto by automatic resolution** [(['fifo2'], 'test1', 'test2')] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRFROM: (names, dirfrom, dirto) **These items will be copied over to dirto by automatic resolution** [(['fifo'], 'test1', 'test2')] ------------------------------------------------------------------------------- MIXED MODE NAMES: (name, dirfrom, dirto) **These items will be replaced in dirto by automatic resolution** [('fifo3', 'test1', 'test2')] ------------------------------------------------------------------------------- *Resolving tree differences Skipping system cruft (metadata) files in FROM folders ignored unknown type, TO: test2/fifo2 ignored unknown type, FROM: test1/fifo ignored unknown types, FROM: test1/fifo3 TO: test2/fifo3 Phase runtime: 0.00022685900330543518 ------------------------------------------------------------------------------- *Summary Compared => files: 2, folders: 2 Differences => samefile: 0, uniqueto: 1, uniquefrom: 1, mixedmode: 1 Changed: files => created: 0, deleted: 0, replaced: 0 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished. /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../diffall.py test1 test2 -skipcruft -------------------- Comparing test1 to test2 *UNIQUE items in test1: ... fifo *UNIQUE items in test2: ... __bkp__ ... fifo2 Comparing contents dirlink matches *MISSED: fifo3 file matches filelink matches nestedfilelink matches -------------------- Comparing test1/dir to test2/dir Directory lists are identical Comparing contents nestedfile matches ================================================================================ Runtime hrs:mins:secs = 0:0:0.00 Dirs checked 2, Files checked: 5, Files skipped: 0 System metadata (cruft) files were skipped Diffs found: 2 - items UNIQUE at [test1] - [test2] - items MISSED at [test1] - [test2]: [fifo3] End of report. #****************************************************************************************** # 5) More FIFO cases - mixed with simple file or dir (original cases code) #****************************************************************************************** # continue without changing test folders /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 >>> import os >>> os.remove('test1/fifo3') >>> os.remove('test2/fifo3') >>> open('test1/fifo3', 'w').write('spam') # FROM=fifo, TO=file 4 >>> os.mkfifo('test2/fifo3') >>> open('test2/fifo4', 'w').write('spam') # FROM=file, TO=fifo 4 >>> os.mkfifo('test1/fifo4') >>> ^D /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../mergeall.py test1 test2 -auto -backup -skipcruft Starting. ------------------------------------------------------------------------------- *Collecting tree differences Skipping system cruft (metadata) files in both FROM and TO comparing [test1] [test2] excluding test2/__bkp__ comparing [test1/dir] [test2/dir] Phase runtime: 0.0018778110388666391 ------------------------------------------------------------------------------- *Reporting tree differences ------------------------------------------------------------------------------- SAMEFILE DIFFERENCES: (name, dirfrom, dirto, why) **These items will be replaced in dirto by automatic resolution** [] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRTO: (names, dirfrom, dirto) **These items will be deleted from dirto by automatic resolution** [(['fifo2'], 'test1', 'test2')] ------------------------------------------------------------------------------- UNIQUE ITEMS IN DIRFROM: (names, dirfrom, dirto) **These items will be copied over to dirto by automatic resolution** [(['fifo'], 'test1', 'test2')] ------------------------------------------------------------------------------- MIXED MODE NAMES: (name, dirfrom, dirto) **These items will be replaced in dirto by automatic resolution** [('fifo3', 'test1', 'test2'), ('fifo4', 'test1', 'test2')] ------------------------------------------------------------------------------- *Resolving tree differences Skipping system cruft (metadata) files in FROM folders ignored unknown type, TO: test2/fifo2 ignored unknown type, FROM: test1/fifo ignored unknown types, FROM: test1/fifo3 TO: test2/fifo3 ignored unknown types, FROM: test1/fifo4 TO: test2/fifo4 Phase runtime: 0.00023341801716014743 ------------------------------------------------------------------------------- *Summary Compared => files: 2, folders: 2 Differences => samefile: 0, uniqueto: 1, uniquefrom: 1, mixedmode: 2 Changed: files => created: 0, deleted: 0, replaced: 0 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished. /MY-STUFF/Code/mergeall/test/test-symlinks$ py3 ../../diffall.py test1 test2 -skipcruft -------------------- Comparing test1 to test2 *UNIQUE items in test1: ... fifo *UNIQUE items in test2: ... __bkp__ ... fifo2 Comparing contents dirlink matches file matches filelink matches nestedfilelink matches *MISSED: fifo3 *MISSED: fifo4 -------------------- Comparing test1/dir to test2/dir Directory lists are identical Comparing contents nestedfile matches ================================================================================ Runtime hrs:mins:secs = 0:0:0.00 Dirs checked 2, Files checked: 5, Files skipped: 0 System metadata (cruft) files were skipped Diffs found: 3 - items UNIQUE at [test1] - [test2] - items MISSED at [test1] - [test2]: [fifo3] - items MISSED at [test1] - [test2]: [fifo4] End of report.