Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Git the Core On, May the perForce be Gone

Git the Core On, May the perForce be Gone

I talk about my decade-long experience with Git as a Developer, and how it brings in news ways to collaborate compared to proprietary tools like Perforce.

Talk: https://youtu.be/YjtsQ-JjodM

Gopal S Akshintala

June 14, 2022
Tweet

More Decks by Gopal S Akshintala

Other Decks in Programming

Transcript

  1. Git
    !
    the Core on,
    May the perForce be with you gone
    !
    @GopalAkshintala overfullstack.ga

    View Slide

  2. I'm
    Gopal S Akshintala
    Lead
    !
    Member of Technical Staff
    Revenue Cloud
    !
    @GopalAkshintala
    !
    overfullstack.ga
    2

    View Slide

  3. 3 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  4. May the perForce be with you gone
    ·Manage Large Features
    ·Work on Multiple features in-parallel
    ·Sloppy GUI
    ·Any more…
    4 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  5. Perforce vs Git
    ·Proprietary vs Open source
    ·Simple vs Flexible
    ·Centralised vs Decentralised
    5 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  6. Centralised
    vs
    Decentralised
    6 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  7. Centralised
    7 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  8. Decentralised
    8 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  9. Workflow
    9 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  10. Perforce Simple Workflow
    ·Setup main
    ·Code
    ·Shelve
    ·Unshelve
    ·Submit
    ·Break the build (Optional, but Occasional )
    10 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  11. But! Simple can mean
    Inflexible
    11 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  12. Git nailed it! !
    12 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  13. Pick what suits you the Best!
    ·Centralised Workflow
    ·Feature Branch Workflow
    ·Gitflow Workflow
    ·Forking Workflow
    ·Tailor make your own! ✂
    13 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  14. Feature Branch Workflow
    14 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  15. Feature Branch Workflow
    ·Keep your dev and main branches holy
    ·Diverge at 2 levels
    ·Clone or Fork + Clone
    ·A new branch out of local main
    ·Frequently sync local main with origin/main
    ·Frequently merge/rebase feature branch onto local main
    ·Delete the local + tracking feature branches, once feature gets merged
    into origin/main
    15 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  16. How does Git improve my
    Productivity? !
    16 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  17. Large Features
    17 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  18. Large Features - Perforce
    ·My PR has grown too large and now my build is
    failing or server isn’t starting, should I
    shelve all my changes and try?
    (And then I notice 50 outdated files )
    ·The PR is too large to review, can you break it?
    (A 3ptr just to break the PR )
    18 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  19. Large Features - Git
    ·Break them into smaller commits
    ·Staging area helps you to be in the zone
    ·Do more offline (No VPN + TmpAuth needed)
    19 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  20. Work on Features
    in-parallel
    20 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  21. Work on Features in-parallel - Perforce
    Shelve and unshelve, until I mess-up and learn
    the lesson to never try this again.
    !
    21 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  22. Work on Features in-parallel - Git
    ·Parallel work goes into different Branches ⋔
    ·Switch between branches with ease
    ·git stash ~ shelve in perforce, handy while
    switching
    22 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  23. GUI
    23 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  24. GUI - Perforce
    ·Age old GUI, with no alternative and no
    passion to improve
    !
    (It reminds me of Windows XP )
    ·Swarm for code-review is so limited
    24 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  25. GUI - Git
    ·Git IDE integration (a killer )
    ·SourceTree
    ·Github desktop
    ·git.soma or any git hosting platform is eons
    ahead of swarm
    25 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  26. Patching
    26 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  27. Patching - Perforce
    The Dark art !
    27 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  28. Patching - Git
    ·A command away
    ·Cherry-picking
    !
    , a cute feature
    28 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  29. Git is Ruling !
    29 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  30. Git is Ruling
    ·Thriving community, solve any problem or doubt with a
    simple Google search
    ·Goto for any OSS
    ·Proven for Mega projects
    ·Android
    ·Ubuntu
    ·Goes hand-in-hand with the modern module structure
    30 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  31. No need to wait!
    Incrementally move some pieces to off-core
    managed by git.soma
    ·Vader - Fully off-core bean validation
    framework
    ·Loki - hybrid with an off-core companion
    31 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  32. With Flexibility comes
    Complexity
    32 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  33. With Flexibility comes Complexity
    ·Simplicity vs Flexibility
    ·Mac vs Linux
    ·Maven vs Gradle
    ·Flexible tools need cognisance
    ·Learn your 10 commands
    ·merge vs rebase
    33 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide

  34. 34 —
    !
    @GopalAkshintala
    "
    overfullstack.ga

    View Slide