Both rules were already present under "Visual C++ cache files", where they
have been since the template was created in 2010 (590e423). A second copy
was added in 2019 (e285e4b) under a new "Visual Studio 6 technical files"
heading, whose commit described them as "their purpose is unknown for me".
Beyond being duplicates, the second heading is inaccurate. Neither file is
specific to Visual Studio 6:
- *.ncb is the Visual C++ IntelliSense database, used through Visual Studio
2008 and replaced by the SDF database in 2010. The template already lists
*.sdf two lines below *.ncb in the "Visual C++ cache files" section, so
the pair belongs together there.
- *.aps is the binary form of the resource script used by the resource
editor. Microsoft documents it for msvc-140 through msvc-180 (Visual
Studio 2015 to 2022) and states plainly that it should not be in source
control.
The genuinely VS6-specific rules added by that commit (*.vbw, *.dsw, *.dsp)
are untouched. Behaviour is unchanged: both patterns are still ignored, once
each, under the heading that describes them correctly.
Remove *.vbp extension. Such files are the main Visual Basic 6 Project Files and should not be ignored. It's like ignoring .csproj or .vbproj files in .NET projects.
`Directory.Build.rsp` is a [documented file][1] that allows setting default arguments to command line builds. However, our .gitignore template ignores _all_ `*.rsp` files. which causes confusion:
1. Devs write an .rsp file and if they aren't being attentive forget to commit it
2. Adding it to git requires `git add --force`, which some devs mistake for a destructive or not-recommended action
Thus, explicitly allow the `Directory.Build.rsp` file.
[1]: https://learn.microsoft.com/en-us/visualstudio/msbuild/msbuild-response-files?view=vs-2022#directorybuildrsp
We are planning to add a [new output path format](https://github.com/dotnet/designs/pull/281) to .NET projects which will by default put output in an `.artifacts` folder. So this PR adds that folder to the Visual Studio .gitignore file.
The first support for this will be in .NET 8 Preview 3. We will be looking for feedback through the preview process, so it's possible that the folder name or other aspects of the design could change as a result.
Conflicts with JetBrains.gitignore. Some files in this directory should be checked in.
Not sure about *.sln.iml, so I'm leaving that. The JetBrains.gitignore file contains commented-out IML stuff with instructions on when to uncomment.