Version or Source Control for SQL Objects

  • Evening All,

    What are you all using for Version and Source Control? And how do you find it?

  • alex.sqldba - Friday, September 22, 2017 6:58 AM

    Evening All,

    What are you all using for Version and Source Control? And how do you find it?

    Git/Bitbucket. Works great, particularly the branching capabilities, but a bit of a learning curve, if you are used to other VCSs.

    If you haven't even tried to resolve your issue, please don't expect the hard-working volunteers here to waste their time providing links to answers which you could easily have found yourself.

  • I've used a couple, VSS back in the day. Most recently CVS/Perforce/Tortoise...

    From what I've been reading of GIT I quite like it. I like how everyone has a local copy of the entire history.

    Some what concerned how merging will work though.

  • I've used VSS, SVN, TFS, Git, Mercurial, Vault. I prefer Git overall.

  • I setup Team Foundation server (TFS) for our group and web team, the DBA team never utilized it but the web team are using it and it has been working great for them. It is easy to setup.

  • Currently bitbucket. Last place I was at used perforce or github (depending on which group you were talking to) and before that TFS. Perforce never worked as well as TFS as far as I was concerned. Implementations of git are where it's at, though.

  • I am currently testing git and working through a book. Though I am still confused as to whether there is a central repository or not. It doesn't seem clear.

    As it reads it seems the repository is on everyone's PC and in theory if you were to lose one you can refresh it from someone elses. Like peer-to-peer. But that also doesn't seem right now having a central repo.

    More reading needed clearly.

  • alex.sqldba - Wednesday, October 11, 2017 3:28 AM

    I am currently testing git and working through a book. Though I am still confused as to whether there is a central repository or not. It doesn't seem clear.

    As it reads it seems the repository is on everyone's PC and in theory if you were to lose one you can refresh it from someone elses. Like peer-to-peer. But that also doesn't seem right now having a central repo.

    More reading needed clearly.

    Github for example is the central repository. Bitbucket for another example is the central repository. TF server for that example is the central repository. If you don't sign up for Github and create your repository on Github, then you are essentially just using git as a standalone on your computer, which can you do without a Github or Bitbucket account. But, unless you set git up like a server, only you can work on that code. This is likely where you are getting confused. Git is just a standalone application that either can connect to Github or Bitbucket for example or work locally as the central repository on your machine.

    For example, you can create a new local repository and then add it to Github. Once you add it to Github, then that becomes your central repository where anyone around the world can branch or work on existing branches in your code from the project URL (not pulling directly from your computer) . They can then make changes, commit those changes, and have you audit and approve those changes to those branches. They do all of this from essentially pulling those branches to their local computers where they can work in their own private environments until they push those changes to your branch (back up to Github, not your local computer), where you can then merge those changes all the way up to the master, which is what you push out to production or your consumers as the release.

    If Github dies, your central repository dies. What's likely on local machines is only the development branches, not the master branch. This is why your peer-to-peer assumption would fail because no one would likely have the correct master version, just a version of the master with + added new changes that have not been merged to master. (for the record, master refers to the approved source of truth that has been approved for release to your end users.)

    Git is extremely good. It's what I use. I personally use Bitbucket over Github for example. Bitbucket integrate into JIRA, which is the project management software for the project. You can add a new task in JIRA that is connected to Bitbucket where I can create new branches of the code from Git per task. If I have 100 tasks for example, I can create 100 different branches from the development branch where the copy of the code is for one change only. I make my changes, push it to the central repository in Bitbucket, close my JIRA task and someone hopefully merges that branch to the development branch. Eventually all 100 branches are merged to one and then pushed to the master as the release. Pretty neat.

    The common setup that many start with is having a repository with two levels (or lines). One for your master and one for development commonly labeled as "dlevel". Your team mostly switches to that development level and branches from there. Then all branches are merged back to that development level and then finally merged to the master. All of this is managed remotely on Github, Bitbucket, Team Foundation or your own private git server you setup for your team.

  • In Git, everything is a peer. You can designate one peer as a central server, and many people do this in their organization. Everyone has VCS01 as a remote for push/pull. As xsevensinzx does, you can also use a service like BitBucket, Github, Gitlab, Visualstudio.com, etc. as your central point. I use both Github and VSTS myself, for different projects. I didn't like Bitbucket as much, but it works fine. Mostly just the web interface was less attractive for me.

  • We use git on TFS and switched from SSMS to VS Code (with mssql and powershell extensions).

    I find VS Code to be much better than SSMS. It supports everything we might want to put in to version control. Using Powershell and extended objects we even automate production of documentation in markdown.

    Also there are PlantUML and Mermaid extensions for VS Code so we can even generate diagrams.

  • BitBucket, JIRA and the associated Confluence wiki to document everything. SourceTree front end on local (virtual) pc. I like the way it all links together so the BitBucket branches show in the JIRA tickets and the JIRA tickets can be linked in the Confluence wiki.
    The house rule is create a branch for each JIRA ticket and merge them back in to master when complete, tested and approved for release. And by using the SourceTree front end for BitBucket, we all have a copy of the master branch (and any other branches we want) on our local pc and can keep it up to date with regular fetches.

    I used to use TFS in a previous employment, mainly as a way of preventing two developers working on the same code at once, but I definitely prefer the BitBucket approach with branches.
    I now need to work out how to set it up at home without buying a BitBucket account to control my personal development and websites.

  • david.leyden - Wednesday, October 11, 2017 10:02 PM

    We use git on TFS and switched from SSMS to VS Code (with mssql and powershell extensions).

    I find VS Code to be much better than SSMS. It supports everything we might want to put in to version control. Using Powershell and extended objects we even automate production of documentation in markdown.

    Also there are PlantUML and Mermaid extensions for VS Code so we can even generate diagrams.

    Wow, would love to see an article on how you use this. Maybe old habits for me, but I find VSCode cumbersome and distracting for SQL code.

  • P Jones - Thursday, October 12, 2017 1:24 AM

    BitBucket, JIRA and the associated Confluence wiki to document everything. SourceTree front end on local (virtual) pc. I like the way it all links together so the BitBucket branches show in the JIRA tickets and the JIRA tickets can be linked in the Confluence wiki.
    The house rule is create a branch for each JIRA ticket and merge them back in to master when complete, tested and approved for release. And by using the SourceTree front end for BitBucket, we all have a copy of the master branch (and any other branches we want) on our local pc and can keep it up to date with regular fetches.

    I used to use TFS in a previous employment, mainly as a way of preventing two developers working on the same code at once, but I definitely prefer the BitBucket approach with branches.
    I now need to work out how to set it up at home without buying a BitBucket account to control my personal development and websites.

    We work almost exactly the same way. The integration between JIRA, Confluence and BitBucket is a real winner.

    If you haven't even tried to resolve your issue, please don't expect the hard-working volunteers here to waste their time providing links to answers which you could easily have found yourself.

  • Phil Parkin - Thursday, October 12, 2017 9:10 AM

    P Jones - Thursday, October 12, 2017 1:24 AM

    BitBucket, JIRA and the associated Confluence wiki to document everything. SourceTree front end on local (virtual) pc. I like the way it all links together so the BitBucket branches show in the JIRA tickets and the JIRA tickets can be linked in the Confluence wiki.
    The house rule is create a branch for each JIRA ticket and merge them back in to master when complete, tested and approved for release. And by using the SourceTree front end for BitBucket, we all have a copy of the master branch (and any other branches we want) on our local pc and can keep it up to date with regular fetches.

    I used to use TFS in a previous employment, mainly as a way of preventing two developers working on the same code at once, but I definitely prefer the BitBucket approach with branches.
    I now need to work out how to set it up at home without buying a BitBucket account to control my personal development and websites.

    We work almost exactly the same way. The integration between JIRA, Confluence and BitBucket is a real winner.

    Agreed, Confluence is amazing!

Viewing 14 posts - 1 through 13 (of 13 total)

You must be logged in to reply to this topic. Login to reply