<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/util/system/fs_win.cpp, branch CLI_2.22.1</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=CLI_2.22.1</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=CLI_2.22.1'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2024-11-20T10:14:09Z</updated>
<entry>
<title>Part of PR. Style</title>
<updated>2024-11-20T10:14:09Z</updated>
<author>
<name>nae202</name>
<email>nae202@yandex-team.com</email>
</author>
<published>2024-11-20T09:52:01Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=0b9d91e900b52bccd6eabd033acbb57c4ee173fc'/>
<id>urn:sha1:0b9d91e900b52bccd6eabd033acbb57c4ee173fc</id>
<content type='text'>
Часть большого ПР REVIEW:7264088
commit_hash:0f5b03fbbed0ac30f734943309e3ef5cd4d7a30e
</content>
</entry>
<entry>
<title>FixNamespaceComments in /util</title>
<updated>2024-09-05T17:17:10Z</updated>
<author>
<name>dmasloff</name>
<email>dmasloff@yandex-team.com</email>
</author>
<published>2024-09-05T17:05:47Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=74184a40c15dc0649a769d9754d0ce7efb44db04'/>
<id>urn:sha1:74184a40c15dc0649a769d9754d0ce7efb44db04</id>
<content type='text'>
FixNamespaceComments in /util
bb9152570d7c258798644ead5a59f604de05ef3b
</content>
</entry>
<entry>
<title>Set SpacesInLineCommentPrefix to 1 in /util</title>
<updated>2024-08-17T20:43:45Z</updated>
<author>
<name>dmasloff</name>
<email>dmasloff@yandex-team.com</email>
</author>
<published>2024-08-17T20:33:42Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=69340f4614e853b9319df4b454ab7497711ee3cd'/>
<id>urn:sha1:69340f4614e853b9319df4b454ab7497711ee3cd</id>
<content type='text'>
Set SpacesInLineCommentPrefix to 1 in /util
3853f9ec5143722c1bebd8dc0ffc9b61a6c17657
</content>
</entry>
<entry>
<title>feat contrib: aiogram 3</title>
<updated>2024-01-19T10:10:03Z</updated>
<author>
<name>armenqa</name>
<email>armenqa@yandex-team.com</email>
</author>
<published>2024-01-19T09:23:50Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=2de0149d0151c514b22bca0760b95b26c9b0b578'/>
<id>urn:sha1:2de0149d0151c514b22bca0760b95b26c9b0b578</id>
<content type='text'>
Relates: https://st.yandex-team.ru/, https://st.yandex-team.ru/
</content>
</entry>
<entry>
<title>add windows platform to ydb github export</title>
<updated>2022-12-19T21:50:48Z</updated>
<author>
<name>alexv-smirnov</name>
<email>alex@ydb.tech</email>
</author>
<published>2022-12-19T21:50:48Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=84f2cfa253cc618438ed6e9d68b33fa7c0d88cb9'/>
<id>urn:sha1:84f2cfa253cc618438ed6e9d68b33fa7c0d88cb9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix ya.make</title>
<updated>2022-07-07T11:41:37Z</updated>
<author>
<name>monster</name>
<email>monster@ydb.tech</email>
</author>
<published>2022-07-07T11:41:37Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=06e5c21a835c0e923506c4ff27929f34e00761c2'/>
<id>urn:sha1:06e5c21a835c0e923506c4ff27929f34e00761c2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove read-only files and directories on Windows (to match behavior on unix)</title>
<updated>2022-03-16T11:01:41Z</updated>
<author>
<name>setser</name>
<email>setser@yandex-team.ru</email>
</author>
<published>2022-03-16T11:01:41Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=e53b11f9862a561704077616d62587223ffa9d70'/>
<id>urn:sha1:e53b11f9862a561704077616d62587223ffa9d70</id>
<content type='text'>
Current behavior of RemoveDirWithContents does not allow removing
directories if any of files in this directory is read-only. This
behavior, however, does not allow, for example, to remove temporary
directory, in which git repository was created (on *nix systems,
however, this problem was not noticed). This PR overrides this behavior.

ref:1faf91e233008b4aece4f2b953884b52346ce2be
</content>
</entry>
<entry>
<title>fix CLion perf warnings - use const references instead of passing by value</title>
<updated>2022-02-24T08:58:08Z</updated>
<author>
<name>tobo</name>
<email>tobo@yandex-team.ru</email>
</author>
<published>2022-02-24T08:58:08Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=0cd396f47ddebe98614ce96b7b0394a0a892b7cc'/>
<id>urn:sha1:0cd396f47ddebe98614ce96b7b0394a0a892b7cc</id>
<content type='text'>
ref:e94e72a813a3aa41c543fd1d9f7d73f02cca8bc0
</content>
</entry>
<entry>
<title>[util] fix fstat for archive directories on windows</title>
<updated>2022-02-17T19:22:02Z</updated>
<author>
<name>kikht</name>
<email>kikht@yandex-team.ru</email>
</author>
<published>2022-02-17T19:22:02Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=a4e5577781d9f1162779286558a90252430f6200'/>
<id>urn:sha1:a4e5577781d9f1162779286558a90252430f6200</id>
<content type='text'>
Currently TFileStat has a bunch of problems on Windows:
1. Mode computation ORs different types, but file attributes it checks are not mutually exclusive. E.g. it is possible for directory to have both `FILE_ATTRIBUTE_DIRECTORY` and `FILE_ATTRIBUTE_ARCHIVE`, but it will currently lead to invalid `_S_IFDIR | _S_IFREG` mode.
2. Any file with `FILE_ATTRIBUTE_REPARSE_POINT` flag is considered to be symlink. But there are many other types of reparse points even user-defined ones. For more info see https://docs.microsoft.com/en-us/windows/win32/fileio/reparse-point-tags

To fix all this we do the following:
1. Add `ReparseTag` field to `TSystemFStat` and fill it for reparse points in `GetStatByHandle`.
2. Refactor `GetWinFileType` out of `GetFileMode` to ensure that we always select only single `S_IFMT` value.
3. Pass reparse tag value into `GetWinFileType` and select `S_IFLNK` only for `IO_REPARSE_TAG_SYMLINK` and `IO_REPARSE_TAG_MOUNT_POINT` tags. The latter one is a bit strange, but this behaviour is aligned with current implementation of `WinReadLink`.
4. Factor `ReadReparsePoint` out of `WinReadLink`. This function uses `DeviceIoControl` to read reparse point data into structures copied from WDK.
5. Add `WinReadReparseTag` that uses `ReadReparsePoint` to extract reparse point tag. We use this approach instead of MSDN-recommended `FindFirstFile` because latter requires file path, but we have file handle at this point. AFAIK golang and python use similar approach for this.
6. Add test for archived directory case.
7. Make symlink nofollow tests run only when symlink creation is possible for current user.

Discovered in https://st.yandex-team.ru/ARC-3931

ref:4f6735817b9f85f3351a1021a56dd7eb4606bd65
</content>
</entry>
<entry>
<title>Restoring authorship annotation for Vasily Gerasimov &lt;UgnineSirdis@gmail.com&gt;. Commit 2 of 2.</title>
<updated>2022-02-10T13:49:10Z</updated>
<author>
<name>Vasily Gerasimov</name>
<email>UgnineSirdis@gmail.com</email>
</author>
<published>2022-02-10T13:49:10Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=1eb755fbca92172a6aec2f57371b2b3a19dfab43'/>
<id>urn:sha1:1eb755fbca92172a6aec2f57371b2b3a19dfab43</id>
<content type='text'>
</content>
</entry>
</feed>
