To answer your question, you're wondering about this:
^Resources/Resource.designer.cs
\.sln$
\.userprefs$
\.csproj$
The Resource.designer.cs
file should definitely not be ignored. Sure, it'll get regenerated in some cases, especially if you alter the resx file it is generated from, but just committing it to version control removes that hassle from everyone else, they don't need to regenerate it.
The .sln
and .csproj
files should definitely not be ignored. The solution file contains which projects are part of the solution, and the csproj file contains the project information, both of which you definitely need to commit.
.userprefs
however is a local file, it contains the user preferences for the user using the machine, you do not want that in version control.
Here is my own Xamarin ignore file, with comments below:
syntax: glob
_ReSharper.*/
[Bb]in/
[Oo]bj/
*.user
*.userprefs
*.suo
.DS_Store
The first line tells Mercurial to use glob library to handle file masks.
The next line ignore ReSharper temporary files, which are added to their own subdirectory according to project or solution name. Note that you can ask ReSharper to use the temp folder on the machine for this, instead of storing it in the solution directory, but this may be a per-user setting so to ensure those folder doesn't accidentally gets committed, just ignore that folder.
Then I ignore bin and obj folders, handling both upper and lowercase first letter, ie. Bin is ignored, as well as bin.
Then I ignore everything with the extension user, userprefs, and suo, since all of those store local user preferences.
The last entry ignore the Mac resource folder.
If you have NCrunch, TeamCity, or FinalBuilder, there are additional entries you would probably want to add:
_NCrunch_*/
_TeamCity.*/
*.fb7lck
*.fbl7
*.fbpInf