I have a text file that I need to maintain slightly different versions of for a handful of client users. The contents of the file are not hugely relevant, but I will share anyway. The file contains a SQL script (along with some other stuff), which my clients load into their local third-party software (which is not my company's, and we have no control over that software). The purpose of the script is to allow that other software to output a report.
Each of the clients needs a slightly different version of the script. At a minimum, the file name will be different (containing the name of the client), and the report name (which is text within the file) will be different. For some of them, the SQL is slightly modified to accommodate their environment.
How can I maintain this? What if I want to release an enhancement to all of my clients? Currently I'm doing it manually, so that I have to edit each file and make the enhanced change.
I've considered using version control software, with one branch per client, and then I could merge any updates in to each branch - but I don't have confidence that the merge will be accurate enough, and would therefore not save me any time and just cause more headaches. Also, would that be able to handle the different file names in each branch?
Any ideas are welcome.
Update: Two simplified examples are below.
Filename: sql_abcclient_system2.txt
//Title
ABCClient Report
//end Title
SELECT site.name, site.phone
FROM site
WHERE site.type IN (1, 2, 3)
Filename: sql_xyzclient_system3.txt
//Title
XYZClient Report
//end Title
SELECT site.name, isnull(site.phone, 'no-phone'), site.status
FROM site
WHERE site.type IN (1, 2)
Also, it sounds reasonable to store certain parameters in a database or config file, like the client name. But I'm not sure if that would be feasible for the other in-file modifications, like changes to the SQL.