I’m curious for how we should handle SQL Server Compact in our Git source control. Everytime a developer changes data there is a binary merge conflict. Is there a way to keep development of this database in sync? If two developers pull down the source and modify the schema then one of them will lose their changes since all you can really do is accept the server version of the sdf file or the local version. What is recommended for this scenario? The benefit of having SQL Server CE in the solution is that people can pull down a fresh copy of the project, press F5, and they’re off to the races. Is there some middle ground here?
I’m not so much worried about keeping data in sync, but modifications to the schema of the database. Conflicts result in a “mine” or “yours” scenario unlike code files in which you can use a compare tool to merge the two versions together.
Instead of creating your schema in the SDF, you could write SQL statements that create and populate the database and check those in. SQL is text, and can be merged and compared using existing tools. You would need a pre-build command to run the SQL and recreate your database.