How can we help you today? How can we help you today?
AlexYates
There's a lot to unpack here. I'm going to try to avoid prescribing a process. Instead, here are some principles to think about: - Use git. But I think you know that already. You need the superior branching that comes with a DVCS. - Development, for the best part, happens on local DBs and goes into source control BEFORE it gets deployed to any shared environment. Work for different tasks that may need to be deployed independently should be committed to separate source control branches and merged with master when ready to be deployed. -  When source code is deployed to a shared environment, you take the ENTIRE BRANCH - you don't cherry pick. Your mental model should be based on developing and testing complete versions of code, to avoid wild west environments and "it works on my machine" problems. - You should avoid multiple long-lived branches, this creates awful merge pain. - You can generally make your life a lot easier by reducing concurrent pieces of work. One good way to do this is to think about Value Stream Mapping and focussing on reducing wait times throughout the process, and prioritising finishing (deploying to prod) current work over starting new work. -  Your source control strategy should mirror the reality of how you manage work, otherwise people won't be able to use it effectively. - Adhering to these principles are more important than maintaining your existing processes. I advise you read The DevOps Handbook. If you still want to talk this through, get in touch. I'm not sure a forum post will be enough to help you solve your underlying issues. / comments
There's a lot to unpack here. I'm going to try to avoid prescribing a process. Instead, here are some principles to think about:- Use git. But I think you know that already. You need the superior b...
0 votes
Hi Kean, I'm assuming you are using git, because you refered to "local repositories". If you aren't using git, please can you let me know. Centralised source control and distributed source control work very differently. I think you are overcomplicating things. The management of the individual developers' local repos should be up to the individual developers. They can put their local repos wherever they like. It shouldn't need to be centrally managed. It doesn't matter. As for the structure of the repo, perhaps it would be simpler to split this out into multiple repos? If I'm working on database 7 from server 3, why do I need to waste time and effort including database 2 from server 6? A git repo with between 200 and 600 databases in it sounds terrifying. How long is it going to take to clone the repo? All the branches for all them databases are going to create one hell of a spaghetti soup. In an ideal world, each database would be in it's own little repo. However, in tightly coupled systems, where sets of databases are littered with cross-database dependencies, it can be easier to treat them as a single component in a single repo. Even in this scenario, it would probably make life easier to split the 2-600 databases into groups of tightly coupled databases. Probably with a structure a bit like this: - Server1 - - Database1 - - - state << Link SQL Source Control to this directory - - - other_stuff (security scripts, test data, build/deployment scripts etc) - - Database2 - - - state - - - test_data - - - build_scripts - Server2 - - Database1 - - - state - - - test_data etc One final question: Are some of your databases the dev/test/prod versions of the same database? If so you should treat the dev/test/prod versions as a single database in source control. All your deployments, to all the databases in the pipeline, should come from source control. That way you enforce that dev/test/prod etc remain in sync with each other. / comments
Hi Kean,I'm assuming you are using git, because you refered to "local repositories". If you aren't using git, please can you let me know. Centralised source control and distributed source control w...
0 votes
Using the "working folder" option is exactly what I would have suggested. It has been designed for precicely this use case. The button is renamed from "commit" to "save changes" if you use this option. / comments
Using the "working folder" option is exactly what I would have suggested. It has been designed for precicely this use case.The button is renamed from "commit" to "save changes" if you use this option.
0 votes