microsoft / microsoft/VFSForGit
Mac: Verify if VFS for Git detects exchangedata and add functional test
Open
Nobody has claimed this yet.
domain: kext
domain: user-mode
platform: macOS
- Dominant language
- C#
- Stars
- 6.1k
- Forks
- 474
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 8
Description
There are not currently any functional tests for exchangedata. Add tests and fix (or file a follow up issue) if VFS for Git does not detect exchangedata.
int
exchangedata(const char * path1, const char * path2, unsigned int options);
DESCRIPTION
The exchangedata() function swaps the contents of the files referenced by path1 and path2 in an atomic fashion. That is, all concurrent processes will either see the pre-exchanged state or the post-
exchanged state; they can never see the files in an inconsistent state. The data in all forks is swapped in this way. The options parameter lets you control specific aspects of the function's behav-
iour.
COMPATIBILITY
Not all volumes support exchangedata(). You can test whether a volume supports exchangedata() by using getattrlist(2) to get the volume capabilities attribute ATTR_VOL_CAPABILITIES, and then testing
the VOL_CAP_INT_EXCHANGEDATA flag.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files or existing test names are provided. Locate the VFS for Git functional-test entry point for macOS and the handling of exchangedata, then run the relevant tests. Done means coverage verifies whether exchangedata is detected; if not, either correct the behavior or file a follow-up issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, macos
- Domain
- operating-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100