It seems to me that we have two different ideas of the purpose of the testserver:
o11c, you said you think the testserver should exactly track mainline/master. Did you say why? (If so, I oversaw.)
My idea of the testserver is that it can be used to test unfinished content before it is added to mainline.
tux9th's new map are a great example of why I think this useful/needed, but the idea can be applied to any content: he created his maps, but there might be a number of mapping errors which are very cumbersome to find alone. So putting them on the testserver is a way to make the new content comfortably available to testers, find remaining issues and fix them before pushing the content to mainline repo.
If you say commits need to be ready for mainline before being added to the testserver, you have a deadlock:
content needs testers for getting ready, but for getting tested it needs to be ready.
I don't think that having several instances of the testserver each with commits from different forks is helpful, because it adds complication for the tester. The original idea when setting up the testserver together with Frost is to have a comfortable and uncomplicated way to access content to be tested. This way we can reach the broadest testing audience. Any complications as having several instances of the testserver, the users needing to start the client with local client-data, or anything like this, is in contrast with the original idea behind the testserver.
If meeting this requirement of making it easy for testers results in additional complications on the side of developers or hosting, this should in my opinion be dealt with in the backend, and should not affect the testers experience.
The problem that caused this discussion is that when adding content to test from different forks, there might be merge conflicts, but the automated script to restart the testserver brought the servers up even if there are unmerged files.
I propose to adapt the script to abort with a meaningful error message in case of a conflict.
The person doing the restart would then have to manually resolve the conflict and then restart properly. That's how I worked so far when adding content from forks (though I usually rebased the changes from the forks onto mainline/master).
If someone's restarting the testserver who doesn't know how to do that, this is a great opportunity to learn how to do that.
