Arrested DevOps

Git 101 With Emma Jane Westby


Listen Later

Microsoft is open-sourcing .NET and creating the CLR for Mac and Linux

.Net core5 is the new framework for 5, you can ship your own version of the app.

There is now a free version of Visual Studio — Visual Studio Community for open source developers and students.

In fact, it is all happening out in the open on github.

Emma Jane is a long time listener of ADO! She has been teaching version control for many years with specific emphasis on the communication behind version control in teams. She has since switched to distributed version control such as git. Her aim in her teachings is to create resources that make git ”less painful” than it currently is.

Distributed vs Centralized Version Control

Emma Jane:

  • In distributed VC the DB that contains the changes, exists on the local system and I can have multiple connections to multiple DBs with other versions.
  • Centralized is all in a single DB, locally.
  • How is Distributed VC relevant to DevOps?

    Matt: Many people hold the theory that you cannot have “The DevOps” without distributed version control. It implies communication through teams, so what is the validity of that statement.

    Emma Jane:

    • Git is not the only VC option out there, but it is the most popular currently.
    • You need to assess your team and your project, along with the related expertise and community support, and go with the one that fits your needs.
    • As soon as you say “can’t” someone will prove you wrong.
    • Testing

      Matt:

      • The whole basis of git-flow is based on the fact that you can’t trust your contributors. Especially with open source. It sends a message that says “I don’t have to test my shit, because you’ll do it for me.”
      • Emma Jane:

        • If we are talking about testing, you need to have full coverage testing of whatever your product. Many testing frameworks allows for 99.9% accuracy on the tests, but that .1% causes you not to trust your tests. This makes it really hard to get reliable CI into the dev process.
        • For that matter, Devs shouldn’t trust themselves when it comes to pushing code, you should always rely on testing because everyone is going to make mistakes, and humans might not catch them.
        • Git allows you to have control over the pushed code.
        • Trevor:

          • There should be no permissions. All developers should have the same permissions and the flow should go through QA.
          • How do you learn git?

            Emma Jane:

            • All kinds of people are interested in learning git. But mainly:

              1. Someone who is on subversion and wants to change to git
              2. Someone who has been told to use git, but they don’t know how to run command line tools.
              3. CTO or management types that know they want to use git, but they’re not really sure where to go from that decision.
              4. In order to identify how your team will most efficiently use git, draw out your team flow and identify where efficiency is being blocked. Is re-basing causing problems? Is a PR sitting out there for too long? Use those as discussion points with your coworkers.

              5. You cannot introduce creativity when you are just told to memorize commands.

                Emma Jane:

                - Use Interactive Add! It allows you to split up your diffs into different commits. So you don’t end up committing a huge chunk of features that should most-definitely not be committed together.

                How do I get set up?

                Look for the right git-flow based on the type of deployments you are going to be using to release the software. Are your deployments feature based? or time based? How important is a rollback?

                Your code should always be deployable in a CD framework. You are only rolling forward, you have one master branch, and feature branches, how can you have correct and fast CD if you have multiple branches before the CD process starts.

                Your git setup should be directly related to your infrastructure. The git releases and flows of a team of 1 is going to be massively different than the git flow of a large team for a Could Provider.

                Things you should know (about git):

                Rebasing:

                • Rebasing allows you to recombine how your commit chunks are strung together. It takes all the commits of a branch and
                • Great for when you are adding too many commits.
                • Git Bisect

                  • You can take out commits individually, and assess if the commits are in a working state.
                  • However, if you do not have full commits, for example, commits when you are just thinking about something, it will be much harder to assess the state of the commits individually.
                  • Source of Emma’s talk about Git: http://github.com/emmajane/gitforteams

                    Post version: http://24ways.org/2013/git-for-grownups/
                    Recording: http://prague2013.drupal.org/session/git-makes-me-angry-inside

                    Emma’s rant about storing the history of your project: http://gitforteams.com/resources/evolution-social-coding.html

                    GitHub conversations: http://guides.github.com/introduction/flow/

                    Check-outs
                    Emma
                    • Kaleidoscope mergetool -  because of image diffs
                    • Sketch training for techies -  because of impostor syndrome for drawing
                    • GNOME wins -  go open source!
                    • Matt
                      • Teamocil  - generator for tmux sessions
                      • The NoPhone  - kickstarter for a “technology-free alternative to constant hand-to-phone contact”
                      • “It’s not a promotion, it’s a career change”  - blog post by Lindsay Holmwood
                      • Trevor:
                        • Sandisk SSD
                        • Android L: Inbox
                        • Rosetta Probe
                        • ...more
                          View all episodesView all episodes
                          Download on the App Store

                          Arrested DevOpsBy Matt Stratton, Trevor Hess, Jessica Kerr, and Bridget Kromhout

                          • 4.6
                          • 4.6
                          • 4.6
                          • 4.6
                          • 4.6

                          4.6

                          69 ratings


                          More shows like Arrested DevOps

                          View all
                          The Changelog: Software Development, Open Source by Changelog Media

                          The Changelog: Software Development, Open Source

                          290 Listeners

                          Conversations with Tyler by Mercatus Center at George Mason University

                          Conversations with Tyler

                          2,432 Listeners

                          Software Engineering Daily by Software Engineering Daily

                          Software Engineering Daily

                          623 Listeners

                          The Cloudcast by Massive Studios

                          The Cloudcast

                          153 Listeners

                          Talk Python To Me by Michael Kennedy

                          Talk Python To Me

                          586 Listeners

                          Python Bytes by Michael Kennedy and Brian Okken

                          Python Bytes

                          213 Listeners

                          Late Night Linux by The Late Night Linux Family

                          Late Night Linux

                          165 Listeners

                          Kubernetes Podcast from Google by Abdel Sghiouar, Kaslin Fields

                          Kubernetes Podcast from Google

                          181 Listeners

                          Practical AI by Practical AI LLC

                          Practical AI

                          212 Listeners

                          AWS Podcast by Amazon Web Services

                          AWS Podcast

                          202 Listeners

                          The Stack Overflow Podcast by The Stack Overflow Podcast

                          The Stack Overflow Podcast

                          62 Listeners

                          The Real Python Podcast by Real Python

                          The Real Python Podcast

                          141 Listeners

                          2.5 Admins by The Late Night Linux Family

                          2.5 Admins

                          97 Listeners

                          Dwarkesh Podcast by Dwarkesh Patel

                          Dwarkesh Podcast

                          72 Listeners

                          The AI Daily Brief: Artificial Intelligence News and Analysis by Nathaniel Whittemore

                          The AI Daily Brief: Artificial Intelligence News and Analysis

                          588 Listeners