{"action":"created","issue":{"url":"https://api.github.com/repos/perlundq/yajsync/issues/34","labels_url":"https://api.github.com/repos/perlundq/yajsync/issues/34/labels{/name}","comments_url":"https://api.github.com/repos/perlundq/yajsync/issues/34/comments","events_url":"https://api.github.com/repos/perlundq/yajsync/issues/34/events","html_url":"https://github.com/perlundq/yajsync/issues/34","id":124728483,"number":34,"title":"rsync compatibility and special characters in path names","user":{"login":"usrflo","id":1812146,"avatar_url":"https://avatars.githubusercontent.com/u/1812146?v=3","gravatar_id":"","url":"https://api.github.com/users/usrflo","html_url":"https://github.com/usrflo","followers_url":"https://api.github.com/users/usrflo/followers","following_url":"https://api.github.com/users/usrflo/following{/other_user}","gists_url":"https://api.github.com/users/usrflo/gists{/gist_id}","starred_url":"https://api.github.com/users/usrflo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/usrflo/subscriptions","organizations_url":"https://api.github.com/users/usrflo/orgs","repos_url":"https://api.github.com/users/usrflo/repos","events_url":"https://api.github.com/users/usrflo/events{/privacy}","received_events_url":"https://api.github.com/users/usrflo/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-01-04T10:03:23Z","updated_at":"2016-01-05T07:18:15Z","closed_at":null,"body":"I added https://github.com/usrflo/yajsync/commit/42425a37247d8e3886e887dc4b424274cf456031 to run the same system tests with a yajsync or rsync client for simplified rsync compatibility checks.\r\n\r\nWith the following test I experienced unexpected behaviour with the rsync client. These problems do not exist with the yajsync client.\r\n\r\n    @Test\r\n    public void testClientDirCopyDotted() throws IOException\r\n    {\r\n        Path src = _tempDir.newFolder().toPath();\r\n        Path dst = Paths.get(src.toString() + \".dst\");\r\n\r\n        Path srcDir1 = src.resolve(\"dir\");\r\n        Path srcDir2 = src.resolve(\"dir.2\");\r\n        Path srcFile1 = srcDir1.resolve(\"file1\");\r\n        Path srcFile2 = srcDir2.resolve(\"file2\");\r\n        Files.createDirectory(srcDir1);\r\n        Files.createDirectory(srcDir2);\r\n        FileUtil.writeToFiles(7, srcFile1);\r\n        FileUtil.writeToFiles(8, srcFile2);\r\n\r\n        Files.createDirectory(dst);\r\n\r\n        ReturnStatus status = fileCopy(src, dst, \"--recursive\");\r\n\r\n        assertTrue(status.rc == 0);\r\n    }\r\n\r\nWith srcDir2 set on \"dir.2\" or \"dir-2\" the path inclusion check inside \r\ncom.github.perlundq.yajsync.filelist.Filelist.SegmentBuilder.add(FileInfo) reports an error:\r\n```\r\n/tmp/junit2086544845478406680/junit7751461368613446554.dst/junit7751461368613446554/dir should be a path prefix to: /tmp/junit2086544845478406680/junit7751461368613446554.dst/junit7751461368613446554/dir.2/file2\r\n```\r\nOR\r\n```\r\n/tmp/junit5154228388051712892/junit3843589390619568255.dst/junit3843589390619568255/dir should be a path prefix to: /tmp/junit5154228388051712892/junit3843589390619568255.dst/junit3843589390619568255/dir-2/file2\r\n```\r\n\r\nWith srcDir2 set to other values like \"dir2\" or \"dir_2\" **everything is ok**.\r\n\r\nThere seems to be a special handling of directory names in rsync? Does this have to be addressed in YajSync? (please be aware I am working on a branch that I last merged in November)"},"comment":{"url":"https://api.github.com/repos/perlundq/yajsync/issues/comments/168921556","html_url":"https://github.com/perlundq/yajsync/issues/34#issuecomment-168921556","issue_url":"https://api.github.com/repos/perlundq/yajsync/issues/34","id":168921556,"user":{"login":"usrflo","id":1812146,"avatar_url":"https://avatars.githubusercontent.com/u/1812146?v=3","gravatar_id":"","url":"https://api.github.com/users/usrflo","html_url":"https://github.com/usrflo","followers_url":"https://api.github.com/users/usrflo/followers","following_url":"https://api.github.com/users/usrflo/following{/other_user}","gists_url":"https://api.github.com/users/usrflo/gists{/gist_id}","starred_url":"https://api.github.com/users/usrflo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/usrflo/subscriptions","organizations_url":"https://api.github.com/users/usrflo/orgs","repos_url":"https://api.github.com/users/usrflo/repos","events_url":"https://api.github.com/users/usrflo/events{/privacy}","received_events_url":"https://api.github.com/users/usrflo/received_events","type":"User","site_admin":false},"created_at":"2016-01-05T07:18:15Z","updated_at":"2016-01-05T07:18:15Z","body":"> I assume you mean it the other way around, i.e. that yajsync client does not work as expected but rsync does, right?\r\n\r\nNo, the rsync client behaves unexpectedly: I tested with rsync version 3.1.0 with --protocol=30.\r\n\r\n> The file names affects the sorting order in the file list if they are sorted the slightest wrong you'll end up with strange things\r\n\r\nOk. So I will re-run my tests after upgrading to your latest checkin (this may take some time) and post the results here.\r\n"}}