{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":7590000,"defaultBranch":"develop","name":"filesystem","ownerLogin":"boostorg","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-01-13T15:59:20.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3170529?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726522715.0","currentOid":""},"activityList":{"items":[{"before":"dc94c80f4b1426715d6dc9d761bae20431563db1","after":null,"ref":"refs/heads/feature/win_rework_canonical","pushedAt":"2024-09-16T21:38:35.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"}},{"before":"01cadd08e4dc64ad903496d170abd1d7ab39e1d8","after":"dc94c80f4b1426715d6dc9d761bae20431563db1","ref":"refs/heads/develop","pushedAt":"2024-09-16T21:38:07.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Specify _WIN32_WINNT=0x0A00 in build system scripts to target Windows 10.","shortMessageHtmlLink":"Specify _WIN32_WINNT=0x0A00 in build system scripts to target Windows…"}},{"before":"11beaba9746583d3ab8e1b03ea8b9699a89d2a8f","after":"dc94c80f4b1426715d6dc9d761bae20431563db1","ref":"refs/heads/feature/win_rework_canonical","pushedAt":"2024-09-16T20:56:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Specify _WIN32_WINNT=0x0A00 in build system scripts to target Windows 10.","shortMessageHtmlLink":"Specify _WIN32_WINNT=0x0A00 in build system scripts to target Windows…"}},{"before":null,"after":"11beaba9746583d3ab8e1b03ea8b9699a89d2a8f","ref":"refs/heads/feature/win_rework_canonical","pushedAt":"2024-09-16T18:20:29.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Reimplement canonical in terms of GetFinalPathNameByHandleW on Windows.\n\nThis moves the common part of v3 and v4 canonical() to a separate\nfunction and changes the Windows implementation to use\nGetFinalPathNameByHandleW system call. As a side effect, this converts\ndrive names to upper case, which makes paths more interoperable.\n\nAdditionally, on POSIX systems, avoid adding a trailing directory\nseparator if the input path has one (which may be the case in v4). This\nis consistent with libstdc++ and MSVC implementations of std::filesystem.\n\nFixes https://github.com/boostorg/filesystem/issues/325.","shortMessageHtmlLink":"Reimplement canonical in terms of GetFinalPathNameByHandleW on Windows."}},{"before":"c4ffb7bf47abbecf0745b1496b7de6356c9a0dbc","after":"01cadd08e4dc64ad903496d170abd1d7ab39e1d8","ref":"refs/heads/develop","pushedAt":"2024-08-26T12:16:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Added C++23 testing to MSYS2 jobs.","shortMessageHtmlLink":"Added C++23 testing to MSYS2 jobs."}},{"before":"35f348ad006191ea3946d2857a3c710e5d214fa0","after":"c4ffb7bf47abbecf0745b1496b7de6356c9a0dbc","ref":"refs/heads/develop","pushedAt":"2024-08-26T12:14:50.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Merge pull request #323 from Flamefire/function-ptr-cast\n\nAvoid -Wcast-function-type in get_proc_addr","shortMessageHtmlLink":"Merge pull request #323 from Flamefire/function-ptr-cast"}},{"before":"5dc58be3cddaa00497f9fd95deb8766bb91e2f3a","after":"35f348ad006191ea3946d2857a3c710e5d214fa0","ref":"refs/heads/develop","pushedAt":"2024-08-26T11:13:04.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Merge pull request #322 from Flamefire/mingw\n\nAdd CI jobs for MinGW32/64","shortMessageHtmlLink":"Merge pull request #322 from Flamefire/mingw"}},{"before":"bfb06365b3b5b1c83bde3ca84fe3e58c5dbd7cf1","after":"5dc58be3cddaa00497f9fd95deb8766bb91e2f3a","ref":"refs/heads/develop","pushedAt":"2024-08-25T15:12:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Changed suppression of signed/unsigned mismatch to explicit casts.\n\nTurns out, suppressing -Wsign-compare doesn't work on gcc 8 in MinGW-w64\nat least in one instance. So we have to do it the hard way and explicitly\ncast NTSTATUS values on every comparison.","shortMessageHtmlLink":"Changed suppression of signed/unsigned mismatch to explicit casts."}},{"before":"41a990ef14760d487c8c3b234f5e3e59178140df","after":"bfb06365b3b5b1c83bde3ca84fe3e58c5dbd7cf1","ref":"refs/heads/develop","pushedAt":"2024-08-25T13:13:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Disable -Wsign-compare on Windows.\n\nSTATUS_* constants defined in ntstatus.h are defined as DWORDs, and NTSTATUS\nis long. This results in signed/unsigned mismatch warnings emitted by gcc and\nclang. Consider that a platform bug and disable the warning.\n\nCloses https://github.com/boostorg/filesystem/issues/321.","shortMessageHtmlLink":"Disable -Wsign-compare on Windows."}},{"before":"14548358051618b556613829dbcfdb9ff9d4dc08","after":"905731b2dde3beb3b968f44e5fe9a3062818fcc0","ref":"refs/heads/feature/docs_rewrite","pushedAt":"2024-07-06T22:44:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Rewritten documentation in QuickBook and Doxygen.","shortMessageHtmlLink":"Rewritten documentation in QuickBook and Doxygen."}},{"before":"5abb500a29ec84d2c8e95ddfc19ca7cf39df3c4b","after":"14548358051618b556613829dbcfdb9ff9d4dc08","ref":"refs/heads/feature/docs_rewrite","pushedAt":"2024-07-06T22:38:15.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Rewritten documentation in QuickBook and Doxygen.","shortMessageHtmlLink":"Rewritten documentation in QuickBook and Doxygen."}},{"before":"c8093eeb7a34a9f2e5f60eb62ca9075aa8eadac2","after":"41a990ef14760d487c8c3b234f5e3e59178140df","ref":"refs/heads/master","pushedAt":"2024-07-03T14:33:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Fix weakly_canonical with relative input paths.\n\nWhen weakly_canonical was called with a relative input path, the operation\nwould test path elements for existence, which meant resolving them relative\nto the current path instead of the base path specified in the call. To\nmitigate this, make the source path absolute using the specified base path.\n\nAs a side effect, this fixes incorrect path produced on Windows if the\ninput path started with \"..\". The algorithm was unable to remove the last\nelement of the head path because there was none. As a result, the remaining\nelements of the input path were appended to the full base path by canonical.\n\nFixes to https://github.com/boostorg/filesystem/issues/311.","shortMessageHtmlLink":"Fix weakly_canonical with relative input paths."}},{"before":"41a990ef14760d487c8c3b234f5e3e59178140df","after":null,"ref":"refs/heads/feature/win_weakly_canonical","pushedAt":"2024-07-03T13:30:30.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"}},{"before":"c8093eeb7a34a9f2e5f60eb62ca9075aa8eadac2","after":"41a990ef14760d487c8c3b234f5e3e59178140df","ref":"refs/heads/develop","pushedAt":"2024-07-03T13:30:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Fix weakly_canonical with relative input paths.\n\nWhen weakly_canonical was called with a relative input path, the operation\nwould test path elements for existence, which meant resolving them relative\nto the current path instead of the base path specified in the call. To\nmitigate this, make the source path absolute using the specified base path.\n\nAs a side effect, this fixes incorrect path produced on Windows if the\ninput path started with \"..\". The algorithm was unable to remove the last\nelement of the head path because there was none. As a result, the remaining\nelements of the input path were appended to the full base path by canonical.\n\nFixes to https://github.com/boostorg/filesystem/issues/311.","shortMessageHtmlLink":"Fix weakly_canonical with relative input paths."}},{"before":"f853692086bab0dce78396d0df5f0a03c8e7d60f","after":"41a990ef14760d487c8c3b234f5e3e59178140df","ref":"refs/heads/feature/win_weakly_canonical","pushedAt":"2024-07-03T12:08:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Fix weakly_canonical with relative input paths.\n\nWhen weakly_canonical was called with a relative input path, the operation\nwould test path elements for existence, which meant resolving them relative\nto the current path instead of the base path specified in the call. To\nmitigate this, make the source path absolute using the specified base path.\n\nAs a side effect, this fixes incorrect path produced on Windows if the\ninput path started with \"..\". The algorithm was unable to remove the last\nelement of the head path because there was none. As a result, the remaining\nelements of the input path were appended to the full base path by canonical.\n\nFixes to https://github.com/boostorg/filesystem/issues/311.","shortMessageHtmlLink":"Fix weakly_canonical with relative input paths."}},{"before":null,"after":"f853692086bab0dce78396d0df5f0a03c8e7d60f","ref":"refs/heads/feature/win_weakly_canonical","pushedAt":"2024-07-03T11:21:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Added a test for weakly_canonical with a path starting with \"..\".\n\nRelated to https://github.com/boostorg/filesystem/issues/311.","shortMessageHtmlLink":"Added a test for weakly_canonical with a path starting with \"..\"."}},{"before":"04b1b5e40b7e581ed189a9796864ad871b7d50ee","after":"5abb500a29ec84d2c8e95ddfc19ca7cf39df3c4b","ref":"refs/heads/feature/docs_rewrite","pushedAt":"2024-06-30T23:40:59.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Rewritten documentation in QuickBook and Doxygen.","shortMessageHtmlLink":"Rewritten documentation in QuickBook and Doxygen."}},{"before":"7acf8b172d3344f5aaf831a3fc95c8a3048dfa66","after":"04b1b5e40b7e581ed189a9796864ad871b7d50ee","ref":"refs/heads/feature/docs_rewrite","pushedAt":"2024-06-29T21:52:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Rewritten documentation in QuickBook and Doxygen.","shortMessageHtmlLink":"Rewritten documentation in QuickBook and Doxygen."}},{"before":"31f7dcd6ef6e3a03e828ceeab81dfb8de505b1e1","after":"7acf8b172d3344f5aaf831a3fc95c8a3048dfa66","ref":"refs/heads/feature/docs_rewrite","pushedAt":"2024-06-29T21:27:34.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Rewritten documentation in QuickBook and Doxygen.","shortMessageHtmlLink":"Rewritten documentation in QuickBook and Doxygen."}},{"before":"7ff9487376be9b92669f83eaea3c9c16ee167182","after":"c8093eeb7a34a9f2e5f60eb62ca9075aa8eadac2","ref":"refs/heads/master","pushedAt":"2024-06-29T14:50:23.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Update test order to avoid spurious test failures due to timing.\n\ncopy_file_tests with copy_options::update_existing used to fail sometimes,\nwhen the last modification timestamps on the test files were close enough.\nRun the tests after a pause to make sure the timestamps are far enough apart.","shortMessageHtmlLink":"Update test order to avoid spurious test failures due to timing."}},{"before":"1784209c7c8809448e69155798d7570cea8b118d","after":"31f7dcd6ef6e3a03e828ceeab81dfb8de505b1e1","ref":"refs/heads/feature/docs_rewrite","pushedAt":"2024-06-29T11:55:50.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Rewritten documentation in QuickBook and Doxygen.","shortMessageHtmlLink":"Rewritten documentation in QuickBook and Doxygen."}},{"before":"c8093eeb7a34a9f2e5f60eb62ca9075aa8eadac2","after":null,"ref":"refs/heads/feature/fix_direntry_refresh","pushedAt":"2024-06-29T11:53:03.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"}},{"before":"7ff9487376be9b92669f83eaea3c9c16ee167182","after":"c8093eeb7a34a9f2e5f60eb62ca9075aa8eadac2","ref":"refs/heads/develop","pushedAt":"2024-06-29T11:52:32.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Update test order to avoid spurious test failures due to timing.\n\ncopy_file_tests with copy_options::update_existing used to fail sometimes,\nwhen the last modification timestamps on the test files were close enough.\nRun the tests after a pause to make sure the timestamps are far enough apart.","shortMessageHtmlLink":"Update test order to avoid spurious test failures due to timing."}},{"before":"9f8dea735383996ac77065c3e043e113593c43f2","after":"c8093eeb7a34a9f2e5f60eb62ca9075aa8eadac2","ref":"refs/heads/feature/fix_direntry_refresh","pushedAt":"2024-06-29T11:42:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Update test order to avoid spurious test failures due to timing.\n\ncopy_file_tests with copy_options::update_existing used to fail sometimes,\nwhen the last modification timestamps on the test files were close enough.\nRun the tests after a pause to make sure the timestamps are far enough apart.","shortMessageHtmlLink":"Update test order to avoid spurious test failures due to timing."}},{"before":null,"after":"9f8dea735383996ac77065c3e043e113593c43f2","ref":"refs/heads/feature/fix_direntry_refresh","pushedAt":"2024-06-29T11:09:23.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Don't throw in directory_entry::refresh if the file doesn't exist.\n\nThis makes directory_entry::status, directory_entry::symlink_status, as well\nas related methods behave similarly to the equivalent standalone operations.\n\nstd::filesystem specification for directory_entry::refresh doesn't explicitly\nsay that the file not existing is not an error, but it does say that\ndirectory_entry::status and directory_entry::symlink_status should behave\nthe same way as the standalone operations. Currently, libstdc++, libc++\nand MSVC standard library all avoid throwing the exception from\ndirectory_entry::refresh if the file doesn't exist.\n\nCloses https://github.com/boostorg/filesystem/issues/314.","shortMessageHtmlLink":"Don't throw in directory_entry::refresh if the file doesn't exist."}},{"before":"061b749304422becb2c09ab6f53bef5456954d94","after":"1784209c7c8809448e69155798d7570cea8b118d","ref":"refs/heads/feature/docs_rewrite","pushedAt":"2024-06-19T10:49:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Rewritten documentation in QuickBook and Doxygen.","shortMessageHtmlLink":"Rewritten documentation in QuickBook and Doxygen."}},{"before":"5d16e6bd00d1e75be52a319bd8ad969a333d1e0f","after":"7ff9487376be9b92669f83eaea3c9c16ee167182","ref":"refs/heads/master","pushedAt":"2024-06-19T10:49:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Corrected test console output.","shortMessageHtmlLink":"Corrected test console output."}},{"before":"5d16e6bd00d1e75be52a319bd8ad969a333d1e0f","after":"7ff9487376be9b92669f83eaea3c9c16ee167182","ref":"refs/heads/develop","pushedAt":"2024-06-19T10:49:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Corrected test console output.","shortMessageHtmlLink":"Corrected test console output."}},{"before":"3274d64e2a765a14d975e49d63e7f1734f9c2df7","after":"5d16e6bd00d1e75be52a319bd8ad969a333d1e0f","ref":"refs/heads/master","pushedAt":"2024-06-19T10:41:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Fixed file_size and is_empty for symlinks on Windows. Reworked is_empty.\n\nGetFileAttributesExW that was used to implement file_size and is_empty\non Windows returns information about the symlink rather than the file\nthe symlink refers to. Fix this by opening the file and using\nGetFileInformationByHandle to obtain the file size and attributes.\n\nAdditionally, reworked is_empty implementation to reuse the file handle\n(and fd on POSIX systems) to create the directory iterator if the\noperation is invoked on a directory. On POSIX systems, implement a\nmore lightweight version of is_empty_directory when readdir is safe\nto use. Reusing the file handle/fd improves protection against\nfilesystem races, when the file that is being tested by is_empty\nis initially a directory and then, when we create a directory\niterator, it is not.\n\nFixes https://github.com/boostorg/filesystem/issues/313.","shortMessageHtmlLink":"Fixed file_size and is_empty for symlinks on Windows. Reworked is_empty."}},{"before":"df045a6895ffe54949622b19af25504cd55f9526","after":"061b749304422becb2c09ab6f53bef5456954d94","ref":"refs/heads/feature/docs_rewrite","pushedAt":"2024-06-19T10:40:55.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Lastique","name":"Andrey Semashev","path":"/Lastique","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1589747?s=80&v=4"},"commit":{"message":"Rewritten documentation in QuickBook and Doxygen.","shortMessageHtmlLink":"Rewritten documentation in QuickBook and Doxygen."}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xNlQyMTozODozNS4wMDAwMDBazwAAAAS35pR9","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xNlQyMTozODozNS4wMDAwMDBazwAAAAS35pR9","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNi0xOVQxMDo0MDo1NS4wMDAwMDBazwAAAARpbQc9"}},"title":"Activity · boostorg/filesystem"}