{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":9464946,"defaultBranch":"master","name":"duperemove","ownerLogin":"markfasheh","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-04-16T05:24:14.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/2341925?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1701527707.0","currentOid":""},"activityList":{"items":[{"before":"a53e8c5f956a4f74d02476db61e7abea56dc30f1","after":"cad18392f2c13ca48584ab0cfb5a0a8e700bd48c","ref":"refs/heads/master","pushedAt":"2024-03-29T17:56:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"file_scan: match all paths as regular strings\n\nThis let us exclude files recursively\n\nFixes https://github.com/markfasheh/duperemove/issues/338\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"file_scan: match all paths as regular strings"}},{"before":"ed80c8b19ba6f654d04f9f1a2a67d2faf633cfcc","after":"a53e8c5f956a4f74d02476db61e7abea56dc30f1","ref":"refs/heads/master","pushedAt":"2023-12-09T16:34:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"file_scan: output more details during scan phase\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"file_scan: output more details during scan phase"}},{"before":"9f270dacbfb8f94fa7699fcbcb12e30c06c02b9d","after":"ed80c8b19ba6f654d04f9f1a2a67d2faf633cfcc","ref":"refs/heads/master","pushedAt":"2023-12-06T17:17:22.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"hide error messages behind a macro\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"hide error messages behind a macro"}},{"before":"17b7079e001857cc6c77cf5358e07331ca584fff","after":"9f270dacbfb8f94fa7699fcbcb12e30c06c02b9d","ref":"refs/heads/master","pushedAt":"2023-12-05T19:42:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"file_scan: prevent a bad close(2) on early error\n\nWithout this change, fd is initiated as 0.\nIf an error occurs before we open(2) the file,\nthe cleanup code will try to close that unrelated file descriptor.\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"file_scan: prevent a bad close(2) on early error"}},{"before":"d3a8510d5a13419b70f4663faa9a6dbade0541c3","after":"17b7079e001857cc6c77cf5358e07331ca584fff","ref":"refs/heads/master","pushedAt":"2023-12-03T15:41:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"file_scan: a file that did not exist is not renamed\n\nThis prevents useless sql updates\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"file_scan: a file that did not exist is not renamed"}},{"before":"269d6ada5b6919e9573763f82eee509d6668ef7a","after":"d3a8510d5a13419b70f4663faa9a6dbade0541c3","ref":"refs/heads/master","pushedAt":"2023-12-03T15:35:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"dbfile: rename: remove the existing file on conflict\n\nWe have file1 with some hashes and file2 with some hashes\nOn the filesystem, file2 has been renamed to file1, which is\neffectively removed\nThis change implements this behavior: if it exists, the existing file\nis removed with all its hashes\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"dbfile: rename: remove the existing file on conflict"}},{"before":"da1940ce09a4c1af33b891a7d869752daa08a2d1","after":"269d6ada5b6919e9573763f82eee509d6668ef7a","ref":"refs/heads/master","pushedAt":"2023-12-03T15:18:45.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"filerec: use fileid instead of ino/subvolid\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"filerec: use fileid instead of ino/subvolid"}},{"before":"44da04dece762cd4baa745cafeb112d355ea4ce9","after":"da1940ce09a4c1af33b891a7d869752daa08a2d1","ref":"refs/heads/master","pushedAt":"2023-12-02T14:37:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"update Changelog\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"update Changelog"}},{"before":"4f907360fa9b1ae29c2eb5b4d9cc09422f0a24ef","after":null,"ref":"refs/heads/v0.11.1-testing","pushedAt":"2023-12-02T14:35:07.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"}},{"before":"a454e771b988cdccad29137493f9acc8f666ba20","after":null,"ref":"refs/heads/issue#164","pushedAt":"2023-12-02T14:34:59.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"}},{"before":"cb570b060d5e5e352be6478bbc39aff1ebdb4002","after":null,"ref":"refs/heads/issue#220","pushedAt":"2023-12-02T14:34:33.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"}},{"before":"692db45e8383780b3f6a1e0586026b827e8e2705","after":null,"ref":"refs/heads/manpage","pushedAt":"2023-12-02T14:33:54.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"}},{"before":"3fe0d89acfd6cb941f87c0239ab468f9e7981426","after":null,"ref":"refs/heads/rename","pushedAt":"2023-12-02T14:33:05.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"}},{"before":"a100fc05fa7fbde7cf550e1ade1f68f0edbb5c78","after":"44da04dece762cd4baa745cafeb112d355ea4ce9","ref":"refs/heads/master","pushedAt":"2023-12-02T14:33:01.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"file_scan: replace lstat(2) by statx(2)\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"file_scan: replace lstat(2) by statx(2)"}},{"before":"4f068c3b86504b3e5493b5effa647cfc9aaa135f","after":"3fe0d89acfd6cb941f87c0239ab468f9e7981426","ref":"refs/heads/rename","pushedAt":"2023-12-02T12:04:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"file_scan: do not invalidate a file renamed since the last run\n\nPath are stored in the hashfile because we need to open(2) it for\ndeduplication.\nHowever, during the scan file, path is not really used: we identify\nthe files based on their inode number (and subvolume id for btrfs).\n\nBetween runs, a file may be renamed: in this case, its ino won't change,\nnor its content, so the scan phase used to do nothing.\nYet later, the dedupe would try to open the old path, fails and\nconclude that the file were removed.\n\nThis patch improve the scan phase to detect the rename and update\nthe hashfile accordingly.\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"file_scan: do not invalidate a file renamed since the last run"}},{"before":"a2f1871f5bcafba103fab49655c899c98cca1bef","after":"4f068c3b86504b3e5493b5effa647cfc9aaa135f","ref":"refs/heads/rename","pushedAt":"2023-12-02T12:03:38.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"file_scan: do not invalidate a file renamed since the last run\n\nPath are stored in the hashfile because we need to open(2) it for\ndeduplication.\nHowever, during the scan file, path is not really used: we identify\nthe files based on their inode number (and subvolume id for btrfs).\n\nBetween runs, a file may be renamed: in this case, its ino won't change,\nnor its content, so the scan phase used to do nothing.\nYet later, the dedupe would try to open the old path, fails and\nconclude that the file were removed.\n\nThis patch improve the scan phase to detect the rename and update\nthe hashfile accordingly.\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"file_scan: do not invalidate a file renamed since the last run"}},{"before":"acd881be8265724ed640ce30b6f49ef7dd68fc14","after":"a100fc05fa7fbde7cf550e1ade1f68f0edbb5c78","ref":"refs/heads/master","pushedAt":"2023-11-24T21:58:41.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"Merge pull request #281 from VorpalBlade/feature/zsh-completion\n\nAdd zsh completion for main duperemove command.","shortMessageHtmlLink":"Merge pull request #281 from VorpalBlade/feature/zsh-completion"}},{"before":null,"after":"d3ebdeb986b0a10270f50722136f788d44d049b9","ref":"refs/heads/ugly_progress_bar","pushedAt":"2023-11-24T21:23:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"ugly progress bar\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"ugly progress bar"}},{"before":"062cfe172880b25f3c59a47153b236e181892931","after":"acd881be8265724ed640ce30b6f49ef7dd68fc14","ref":"refs/heads/master","pushedAt":"2023-11-24T16:13:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"file_scan: __scan_file: raise a fatal error if we were unable to push into the queue\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"file_scan: __scan_file: raise a fatal error if we were unable to push…"}},{"before":"9912c03c16af67e33b5dc36052e8faed9a17749d","after":"062cfe172880b25f3c59a47153b236e181892931","ref":"refs/heads/master","pushedAt":"2023-11-24T13:51:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"filerec: move timespec_to_nano near its users\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"filerec: move timespec_to_nano near its users"}},{"before":"eeeddca9f8820594d872366f74a4c01fc9377d9c","after":null,"ref":"refs/heads/fix-issue-329","pushedAt":"2023-11-24T11:12:04.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"}},{"before":null,"after":"a2f1871f5bcafba103fab49655c899c98cca1bef","ref":"refs/heads/rename","pushedAt":"2023-11-24T11:11:47.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"file_scan: do not invalidate a file renamed since the last run\n\nPath are stored in the hashfile because we need to open(2) it for\ndeduplication.\nHowever, during the scan file, path is not really used: we identify\nthe files based on their inode number (and subvolume id for btrfs).\n\nBetween runs, a file may be renamed: in this case, its ino won't change,\nnor its content, so the scan phase used to do nothing.\nYet later, the dedupe would try to open the old path, fails and\nconclude that the file were removed.\n\nThis patch improve the scan phase to detect the rename and update\nthe hashfile accordingly.\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"file_scan: do not invalidate a file renamed since the last run"}},{"before":"e7e01b946fe2856cb4d4bf35992612ab36da9e75","after":"9912c03c16af67e33b5dc36052e8faed9a17749d","ref":"refs/heads/master","pushedAt":"2023-11-24T10:10:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"filerec: fiemap_scan_extent: fix typo: we must check the return from get_extent\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"filerec: fiemap_scan_extent: fix typo: we must check the return from …"}},{"before":"9fb8801a0504b5bd1a9ea828b8c84af88a84cf1c","after":"e7e01b946fe2856cb4d4bf35992612ab36da9e75","ref":"refs/heads/master","pushedAt":"2023-11-24T09:34:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"dbfile: get_duplicate_files: exclude inlined files before looking for duplicates\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"dbfile: get_duplicate_files: exclude inlined files before looking for…"}},{"before":null,"after":"eeeddca9f8820594d872366f74a4c01fc9377d9c","ref":"refs/heads/fix-issue-329","pushedAt":"2023-11-24T00:21:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"dbfile: get_duplicate_files: exclude inlined files before looking for duplicates\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"dbfile: get_duplicate_files: exclude inlined files before looking for…"}},{"before":"296d43a208be82e3ae2473ba51d15f6e025f0c80","after":"9fb8801a0504b5bd1a9ea828b8c84af88a84cf1c","ref":"refs/heads/master","pushedAt":"2023-11-20T21:43:14.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"Merge pull request #328 from trofi/fix-format-security\n\nutil.c: make debug helper `-Wformat-security`-clean","shortMessageHtmlLink":"Merge pull request #328 from trofi/fix-format-security"}},{"before":"1b1edc5b779cfab1badd9c2375bd45b4c7c2b1ca","after":"296d43a208be82e3ae2473ba51d15f6e025f0c80","ref":"refs/heads/master","pushedAt":"2023-11-20T20:53:25.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"Merge pull request #326 from autumnontape/cfi-icall\n\nfile_scan: satisfy clang CFI","shortMessageHtmlLink":"Merge pull request #326 from autumnontape/cfi-icall"}},{"before":"aa545af6c2b2e893e9d9701e9385d6263ff15fda","after":"1b1edc5b779cfab1badd9c2375bd45b4c7c2b1ca","ref":"refs/heads/master","pushedAt":"2023-11-20T19:03:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"file_scan: walk_dir: improve rootfs support\n\nWhen walk_dir() is called with / as an argument, it\nused to concat \"/\" with \"/\"\nThis lead to a double-slashed output: \"//\"\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"file_scan: walk_dir: improve rootfs support"}},{"before":"ebc8c1f0db110f0dde84274cdf036f4d7451674c","after":"aa545af6c2b2e893e9d9701e9385d6263ff15fda","ref":"refs/heads/master","pushedAt":"2023-11-20T18:54:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"},"commit":{"message":"file_scan: improve some error messages\n\nSigned-off-by: Alexandre Bruyelles ","shortMessageHtmlLink":"file_scan: improve some error messages"}},{"before":"5278903ffd86185741d1e6cec44a5c9a160edcbe","after":null,"ref":"refs/tags/v0.14","pushedAt":"2023-11-20T18:49:20.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"JackSlateur","name":"jack","path":"/JackSlateur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1293082?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEIt8L7AA","startCursor":null,"endCursor":null}},"title":"Activity · markfasheh/duperemove"}