Kerri,
Thanks for this. I think I can see your logic here , we think we have come up with a combined version of your idea and ours.
Your suggestion is sliding the code base under predefined config.xml files, ours was originally sliding new config.xml files over a predefined code base:) The major changes in the config.xml file are new splash screens, removing some redundant access-origin statements, changing the version and id strings over and a different background geolocation license key. Not massive changes, the splash screens will just be different PNG files so its only around 8-10 lines in total.
I'm unsure why you would need to add/rm the platform each time but your suggestion doesn't need that so it may be moot anyway.
We've worked through a couple of whiteboard exercises and we *think* we can do the following which is a mixture of everybodys thinking :)
1. All our directory systems within Cordova are standard and out of the box. e.g. the only file *we* edit in the application root directory is config.xml
2. All our directory systems in <ROOT>/www are standard as well, we have a templates directory, a TS directory where we store our TypeScript files, a JS directory where we store the created JavaScript files, a CSS directory etc etc,. Nothing radical. The only file we change in here is the index.html file.
3. We create a new super root folder where all versions of the app will be stored. This your-app in your tree.
4. Each app has its own folder underneath as per your tree.
5. We create new project with ALL the right version numbers etc at a sub level (as you have done). This has a default www directory underneath it.
4. We rename the current application as the master application. This sits in the top level (as yours does)
5. However we symbolically link www/ts, www/css, www/img. www/templates etc etc from the master to the NEW application version we have created. This means that we make changes to the master and then ALL versions of the applications get it. We use different index.html and config.xml files for each application though they will be very, very similar.
6. No changes are required to the build process for each app, we symbolically link the 4-5 build files as well to the master copy.
7. We are actually ruthless about directory management anyway, but since the symbolic links are relative as opposed to absolute we can copy the root directory around and we preserve those links.
This means:
1. Our Jambuster build directory will get bigger as it stores all version, no big deal.
2. We only have one version of the truth (or code).
3. We can still use our build processes on our Macs with minimal change.
4. We can copy the whole directory as we have a master build directory.
5. We can create new versions of the app by running a build script which sets everything up.
6. ...
7. ...
8. Profit
We'll kick this off later in the week and see how it goes. Monday is get a test build out as we're behind schedule.
Thanks
Rob