I gave this presentation at the Israeli ALM User Group.
This is part 2 of a 2 part series on Git and Git workflows and introduces the most common Git workflows used by individuals, small co-located teams, large organizations, and distributed groups.
Wern Jien present recommended workflow for using Git. He even demonstrate it using animation on https://veerasundar.com/blog/2018/03/gitflow-animated/. This is presented at Inno Tech Bootcamp 2 on 5th July 2018. #ITBC2
This is a presentation give to the Vancouver Drupal users group about moving to GIT as a version control system for a small development team. The presentation details the workflow we settled on, and the git flow method for branch management. You can see a video of the presentation here - http://www.ustream.tv/recorded/13544036
A Git Workflow Model or Branching StrategyVivek Parihar
Git branching model or Workflow. A Git Workflow is a recipe or recommendation for how to use Git to accomplish work in a consistent and productive manner. Git workflows encourage users to leverage Git effectively and consistently. Git offers a lot of flexibility in how users manage changes. This ppt is based on The Git Flow. It was created by Vincent Driessen in 2010 and it is based in two main branches with infinite lifetime:
master — this branch contains production code. All development code is merged into master in sometime.
develop — this branch contains pre-production code. When the features are finished then they are merged into develop.
Note: slides produced from the blog post of https://nvie.com/posts/a-successful-git-branching-model/
I was inspired to use GIT much more reliably after reading about Git Flow. I got a little lost until I read "Why Aren't You Using Git Flow?". I decided to do a presentation for OrlandoPHP to try and share my enthusiasm with them.
Thank you to Vincent Driessen and Jeff Kreeftmeijer for being my inspiration.
Gitflow - Branching and Merging Flow for GitMaulik Shah
As a consequence of its simplicity and repetitive nature, branching and merging are no longer something to be afraid of. Version control tools are supposed to assist in ranching/merging more than anything else.
Enough about the tools, let’s head onto the development model. The model that I’m going to present here is essentially no more than a set of procedures that every team member has to follow in order to come to a managed software development process.
Presenters: Steven McDermott, Associate Software Engineer, VSP Global
Rich Gange, Support Engineer and Trainer, Magnolia
Vision Service Plan Global implemented Magnolia for one of their business units, Eyefinity. Specific workflow was part of the requirements.
Eyefinity was faced with the need to customize the out-of-the-box Magnolia "four-eye" editorial content workflow. This workflow provides two steps in its approval process, while Eyefinity needed a three step or “six-eye" implementation. Eyefinity also needed some custom functionality requiring emails to be sent to appropriate users in groups associated with each step of the workflow approval process.
In this presentation, Steven McDermott of VSP Global and Rich Gange of Magnolia will review their approach in modifying the out-of-the box workflow, and the resulting customized “product".
Wern Jien present recommended workflow for using Git. He even demonstrate it using animation on https://veerasundar.com/blog/2018/03/gitflow-animated/. This is presented at Inno Tech Bootcamp 2 on 5th July 2018. #ITBC2
This is a presentation give to the Vancouver Drupal users group about moving to GIT as a version control system for a small development team. The presentation details the workflow we settled on, and the git flow method for branch management. You can see a video of the presentation here - http://www.ustream.tv/recorded/13544036
A Git Workflow Model or Branching StrategyVivek Parihar
Git branching model or Workflow. A Git Workflow is a recipe or recommendation for how to use Git to accomplish work in a consistent and productive manner. Git workflows encourage users to leverage Git effectively and consistently. Git offers a lot of flexibility in how users manage changes. This ppt is based on The Git Flow. It was created by Vincent Driessen in 2010 and it is based in two main branches with infinite lifetime:
master — this branch contains production code. All development code is merged into master in sometime.
develop — this branch contains pre-production code. When the features are finished then they are merged into develop.
Note: slides produced from the blog post of https://nvie.com/posts/a-successful-git-branching-model/
I was inspired to use GIT much more reliably after reading about Git Flow. I got a little lost until I read "Why Aren't You Using Git Flow?". I decided to do a presentation for OrlandoPHP to try and share my enthusiasm with them.
Thank you to Vincent Driessen and Jeff Kreeftmeijer for being my inspiration.
Gitflow - Branching and Merging Flow for GitMaulik Shah
As a consequence of its simplicity and repetitive nature, branching and merging are no longer something to be afraid of. Version control tools are supposed to assist in ranching/merging more than anything else.
Enough about the tools, let’s head onto the development model. The model that I’m going to present here is essentially no more than a set of procedures that every team member has to follow in order to come to a managed software development process.
Presenters: Steven McDermott, Associate Software Engineer, VSP Global
Rich Gange, Support Engineer and Trainer, Magnolia
Vision Service Plan Global implemented Magnolia for one of their business units, Eyefinity. Specific workflow was part of the requirements.
Eyefinity was faced with the need to customize the out-of-the-box Magnolia "four-eye" editorial content workflow. This workflow provides two steps in its approval process, while Eyefinity needed a three step or “six-eye" implementation. Eyefinity also needed some custom functionality requiring emails to be sent to appropriate users in groups associated with each step of the workflow approval process.
In this presentation, Steven McDermott of VSP Global and Rich Gange of Magnolia will review their approach in modifying the out-of-the box workflow, and the resulting customized “product".
Chances are good that you've heard about Git, the distributed source control system that's taking the development world by storm. Organizations of all sizes are taking the plunge, and InCycle is here to help you make the transition smooth and easy. This webcast will present an overview of the Git source control model and compare it to other source control solutions like Team Foundation Version Control and Subversion, so you can understand the key differences between them and what all the buzz is about!
In one of our weekly training, we’ve talked about Git. Here is a quick overview of the main concepts, basic commands and branching strategy, how to work with Git, how to contribute to an OSS project, …
Git is a distributed version-control system for tracking changes in source code during software development.
GitFlow is a branching model for Git which is very well suited to collaboration and scaling the development team.
GIT Details for people who:
* don't know what version control means
* don't know what distributed version control means
* Used to work on SVN (Subversion)
What is svn?
how svn works ?
diagram of SVN ?
Merging with SVN ?
Conflict With SVN ?
Checkout and Checkin ,update ,branch , tags ?
what is version control "?
SVN file directory ?
Directories locked in Tags ?
Getting Started with Git: A Primer for SVN and TFS UsersNoam Kfir
I gave this presentation at the Israeli ALM User Group.
This is part 1 of a 2 part series on Git and Git workflows and introduces the most basic Git functionality, especially as it differs from the Subversion and TFS version control systems.
Over the last several years one of the biggest changes in how developers collaborate with each other has come through, of all things, their source control system. The adoption of Git has changed many of the patterns of software development.
Agile Mind Games and the Art of Self-DelusionNoam Kfir
Excellent Agile practitioners are masters of self-deception. By delving deep into the mysteries of the Agile Way and acquiring strange new spells and bizarre incantations, they train themselves to fool themselves. They are often able, by sheer willpower, to control the flow of time.
You too can master the Art of Willful Delusion. It is not enough to memorize the Tome of Estimation Techniques. Travailing the Infinitude of Methodologies will not alone aid your cause. Neither will contemplating the Solid Manifold of Design Patterns bring you solace. You must first learn to deceive yourself.
Young apprentices, thinking themselves masters, often apply the basic principles of Willful Delusion without guidance or clarity, wreaking great havoc. Some even ridicule or deny the necessity of the Art. Do not be a fool. Join us as we reveal the secret foundation upon which stand the Tome, the Infinitude, the Manifold, and indeed the Way itself.
Coders are writing tests and testers are writing code. This seemingly paradoxical truth is becoming more and more prevalent in companies of every size. But coders and testers still have very different cultures and processes and are actually sharing very little knowledge, even in companies that have supposedly taken down the wall between the disciplines.
In this talk, we explore the increasingly blurry lines, discuss some of the differences in the approaches coders and testers bring to the table, and provide practical examples of lessons learned by sharing knowledge, cultural perspectives and evolved wisdom.
You’re finally doing TDD, but your past mistakes are catching up with you. No matter what you do, you can’t get rid of the gaping black holes caused by your legacy code.
In this presentation, we learn about the causes of legacy code and the reasons it is so difficult to work with. Then we discuss various techniques to test untestable code, revive and simplify incomprehensible code, redesign stable yet untested code, and repair that rift we created in the time-space continuum.
TypeScript is an amazing substitute for JavaScript that solves a bunch of significant problems that are surprisingly common in large JavaScript code bases. But, by solving those problems, it also creates a new one: it's now easier than ever to create larger and more complex code bases. It turns out that accommodating that complexity while supporting all the different JavaScript environments is quite a challenge.
Which is why TypeScript has multiple module systems, unfortunately with confusing names and poor guidance. In this session, we sort out the mess and talk about the differences between internal and external modules, writing client and server code, how the TypeScript modules map to JavaScript modules in different versions of JavaScript, and about integration with build tools like Gulp.
These are the slides for the talk I gave at the JavaScript Israel Meetup: http://www.meetup.com/JavaScript-Israel/events/228923402/
I gave this talk at the code.talks 2015 conference in Hamburg, Germany: https://www.codetalks.de/2015/programm/there-is-no-javascript.
JavaScript is a truly bizarre language: at once interpreted and compiled, functional and mutative, prototypal and syntactically poor, chaotic and elegant. It is the lowest high-level language of the amorphous operating system known as the web. It has evolved rapidly, sidelining all competition and building up a huge ecosystem of libraries and tools and symbiotic users.
And yet, its very popularity is bringing about its demise, whether by the introduction of the low-level WebAssembly or innumerable higher-level languages or even the reimagined ECMAScript 6 and other descendants. In this talk, we will explore JavaScript's evolution from a mere amoeba in Brendan Eich's bubbling pool to a dinosaur in John Resig's slightly more recent Mesozoic lair and all the way to its inevitable disappearance into civilized ubiquity.
The next version of ASP.NET is more than just a minor upgrade. The surface may seem familiar, but the underlying framework represents nothing less than a paradigm shift. Rewritten from scratch to support modern tooling and guidelines, ASP.NET MVC 6 can run just about everywhere and has a ton of features designed to support SPAs, including Angular apps.
This presentation, which was given at the AngularJS-IL Meetup, introduces ASP.NET 5 and MVC 6 and focuses on features that benefit Angular apps.
http://www.meetup.com/AngularJS-IL/events/223123549/
The Meteor framework is a rising star. Other frameworks focus on separation of concerns or data binding or look and feel, but rarely put all the pieces together like Meteor does. Meteor is a full-stack isomorphic JavaScript framework for writing web and mobile apps that share code with the server and use MongoDB. It supports live updates and hot deploys, integrates with Cordova, AngularJS and other frameworks and tools, and has a unified package system for server and client packages. It also has a single tool that does everything and simplifies the everyday workflow: builds, cloud deployments, minification, managing target platforms and Meteor packages, and all the rest. In this session, you will learn about Meteor and see it in action.
As software grows in size and complexity, programmers face increasingly difficult challenges. More bugs make it to production, it takes longer to introduce new features, quality drops and frustration abounds. There may not be a silver bullet, but there are many techniques we can use to make things easier and our job more pleasurable. In this talk, we’ll learn how to be more professional software craftsmen by using a range of techniques for writing clean code.
I gave this talk at the June 2015 Sela Developer Conference.
I presented this deck at a SIGiST Israel event.
This presentation is of a case study that compares Coded UI, TestComplete and Ranorex in a complex project over a period of 6 months.
Programmers building apps that work on every device and platform face many challenges. Despite the advances in browsers, tools and specs designed to meet those challenges, HTML is still an extremely limited language for composing complex apps. Web Components solve that problem by letting programmers extend HTML. This session shows how to use Web Components to build modern complex apps with reusable, responsive, framework-agnostic Web Components that can run (almost) everywhere. We'll talk about all the pieces that make this work, including native templates, Shadow DOM, custom elements, and polyfill libraries like polymer and x-tag.
I gave this talk at the GDG Rashlatz Meetup in December 2014: http://www.meetup.com/GDG-Rashlatz/events/219017532/ .
The HTML standard is the result of unending debates and innumerable battles over the role of the web in modern society. It epitomizes the intense conflicts over security, privacy, freedom, innovation, property, rights and others. But despite - or perhaps because of - its stormy evolution, HTML is becoming more powerful, widespread and useful.
This talk re-introduces HTML5 by exploring its evolution from a simple platform for sharing simple academic documents to the rich social and commercial hypermedia platform that dominates so much of our lives. The talk also looks at some of the current efforts in the ongoing war over the future of the web to see if we can get a glimpse at where it's heading.
Building Cross-Platform JavaScript Apps using CordovaNoam Kfir
This is the slide deck used in the "Building Cross-Platform JavaScript Apps using PhoneGap and Cordova" lecture I gave at the WDC.IL User Group in July 2014.
The talk briefly shows how to get started with Cordova, discusses some of the differences between Cordova, Adobe PhoneGap and the Telerik Platform, and demonstrates using the Telerik Platform to build and LiveSync Android, iOS and Windows Phone apps. It also explains the role of plugins in building hybrid mobile apps that can utilize native APIs.
Telerik Platform is the newest and most complete PaaS contender. It combines many of Telerik’s well-known products into one integrated solution and is designed for businesses of any size. It offers a slew of online and offline tools for end-to-end cross-platform development, including an online IDE, Visual Studio integration, prototyping, automated cross-platform testing and deployment, rich analytics, authentication and other backend services, and much more.
This presentation describes the state of mobile software development and demonstrates the Platform's strengths, particularly in its flexibility and integration.
I used this deck to introduce JavaScript performance profiling at the 5th meeting of the Front-End.IL Meetup: http://j.mp/18TFxin . Tame the Unruly Teenage JavaScript Monster using the Chrome DevTools CPU and Memory profilers.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
2. Workflows
Centralized
Feature Branch
Gitflow
Forking
Pull Requests
Adapted from Atlassian, experience and other sources
3. Centralized – Overview
Centralized by convention
One shared branch master
Central history is never rewritten!
Central repository is usually bare
Emulates a central VCS like TFS or Subversion
Local master tracks remote master
Local rebase often preferable to merge
Local repository is never bare
5. Centralized – Typical Sequence
git clone remote // copy the central repository to a local repository
// iterative edit/stage/commit process
git pull [--rebase] origin master // merge or rebase the latest central version
git push [origin master] // share your work with the central repository
6. Centralized – Ramifications
Suitable for small teams
Supports multiple atomic commits before sharing with the team
Risk losing local history if changes are not pushed often enough
Larger teams working on more concurrent features are more difficult to manage
Higher chance of merge conflicts
Harder to keep the central master history linear
Has limited support for communication
8. Feature Branch – Overview
Dedicated feature branches
Often combined with Centralized
Workflow
Feature branches are pushed to the
central repository
Devs never work on the master branch
Individual features built on dedicated
feature branches
Backup for feature branches too
Multiple devs work on the same feature
9. Feature Branch – Typical Sequence
git clone remote // copy the central repository to a local repository
git checkout -b new-feature // create a new local feature branch
// iterative edit/stage/commit process
git push [-u origin new-feature] // share the branch [and track it]
10. Feature Branch – Merge Into master
git checkout master
git pull [--rebase] origin new-feature // merge [or rebase] the latest central version
git push origin master // send the final version to the central master
11. Feature Branch – Ramifications
Suitable for larger teams working on multiple concurrent features
The central repository contains both master and feature branches
The master branch is easier to control and safeguard
Very flexible workflow but relies on responsible programmers
Supports:
pull requests
isolated experiments
efficient collaboration
12. The Gitflow Workflow
image source: https://www.atlassian.com/git/workflows#!workflow-gitflow
13. Gitflow – Overview
Focused on project release cycle
Similar to the Feature Branch Workflow
Uses a strict branching model
Uses a central repository
• Feature branches
• Individual branches
Each branch has a specific role
Strict rules on when branches can interact
15. Gitflow – The master Branch
The central authority
Sacred
Every commit represents a version
Every commit has a version tag
Branch from master: only hotfix and develop
Push to master: only hotfix and release
16. Gitflow – Hotfixes
Hotfixes are meant for critical maintenance issues only
Based on master, pushed to master
Usually numbered as a minor version
Sidestep the normal development workflow discouraged!
Numbered
hotfix
branched
from master
Merged
back into
master
master
tagged with
version tag
hotfix
merged
into
develop
hotfix
deleted
17. Gitflow – Features
There is only one develop branch, based on master
Every feature has its own feature branch
feature branches based on develop, pushed to develop
feature branches named for the features
Named
feature
branched
from
develop
feature
shared with
team
Concurrent
local work
on feature
feature
merged
back into
develop
when ready
feature
(optionally)
deleted
18. Gitflow – Releases
There is only one develop branch, based on master
Every release has its own release branch, based on develop
release named with version number (usually either major or minor)
release branches are merged into master and develop when releases are ready
Numbered
release
branched
from
develop
Bug fixes,
docs,
preparation
on release
release
merged into
master
when ready
to ship
master
tagged with
version tag
release
merged
back into
develop
release
deleted
19. Gitflow – Ramifications
Intended for large projects
Feature teams can continue working while the current release is being prepared
Same advantages as Feature Branch Workflow:
pull requests
isolated experiments
efficient collaboration
Branch structure mirrors release process:
visually identifiable
easy to communicate
21. The Forking Workflow
A distributed workflow
Every dev forks the official repository
Official maintainer has ultimate control,
but only by agreement
Unrelated to the Centralized Workflow
Forks are private server copies
No shared centralized repositories
Central authority is arbitrary
and determined by policy or consensus
22. Forking – Branches
Multiple repositories:
“Official” public server repository
Forked server repositories
Cloned local repositories
Forking is different from cloning – forking creates a bare server copy, cloning creates a full local copy
Each developer has exclusive write access only to their own repositories
To integrate back into the official repository, developers push to theirs and then issue a pull request
Local clones of forked repositories usually define two remotes:
origin – points to the forked repository
upstream – points to the official public repository
23. Forking – Ramifications
Designed for large organic teams, including open source projects and distributed teams
Every dev can do their own private Feature Branch workflow with their own server
Official maintainer is very common in open source projects
Companies give write access to official repository/branch to responsible “maintainer”
Extremely effective with pull requests
24. Understanding Pull Requests
Safety net
Distributed communication mechanism
Effective code review platform
Not actually part of git!
When a feature is complete, it is not merged into master
The feature developer issues a pull request to the maintainer of the master branch
The maintainer reviews the changes and then merges them or rejects them
The pull request is a forum for discussion about the feature
Pull requests facilitate better communication and code reviews
25. The Pull Request Workflow
Feature is
finished in
private
branch
Dev issues
pull request
to source
repo
Maintainer
reviews
changes
Maintainer
and dev
discuss the
feature
Maintainer
merges or
rejects
request
26. Summary
Git is a very rich distributed version control system
Its design supports many different types of workflows,
including centralized and distributed workflows
and is suitable for:
individual programmers
small co-located teams
massive distributed teams
anything from open source projects to corporations
Its workflows have evolved over the years to popular, mature and proven guidelines