This document discusses Git branching models and conventions. It introduces common branches like master, release, production and hotfix branches. It explains how to create and switch branches. Feature branches are used for new development and hotfix branches are for urgent fixes. Commit messages should include the related Jira issue number. The branching model aims to separate development, release and production stages through distinct branches with clear naming conventions.
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/
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/
GitFlow is a branching model for Git, created by Vincent Driessen. It has attracted a lot of attention because it is very well suited to collaboration and scaling the development team
Do you know the basics of Git but wonder what all the hype is about? Do you want the ultimate control over your Git history? This tutorial will walk you through the basics of committing changes before diving into the more advanced and "dangerous" Git commands.
Git is an open source, distributed version control system used to track many different projects. You can use it to manage anything from a personal notes directory to a multi-programmer project.
This tutorial provides a short walk through of basic git commands and the Git philosophy to project management. Then we’ll dive into an exploration of the more advanced and “dangerous” Git commands. Watch as we rewrite our repository history, track bugs down to a specific commit, and untangle commits into an LKML-worthy patchset.
Two days git training with labs
First day covers git basis and essential commands
Second day covers git additional command with a big lab using a git workflow
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 tutorial for rookies that covers most aspects of basic Git usage for a medium sized project.
This was originally a semestral lecture given at the TU Wien for the course "Software Engineering and Project Management"
Through this tutorial, you can learn Git & GitHub fundamentals very easily. I have explained both theory and practical. I hope you will enjoy it. Happy Git.!!
Git is a distributed revision control system that is widely used in the software development industry. The presentation was used in a lecture delivered in BITS-Pilani, India. The lecture served as a basic crash course on Git.
First, it sets off with a guide to install and configure git on various platforms.
Then, the basic working concepts of Git are explained.
This is followed by a detailed step-by-step guided demonstration of a sample workflow in Git.
Afterwards, Some auxillary commands that are frequently used are discussed briefly.
Finally, basic concepts of branching and merging are detailed.
The presentation ends with a few possible merge conflicts that occur in Git.
This slide discusses the most popular distributed version control system that is GIT and it's different commands that we need in our daily operations for project collaboration.
Reconstructing the past with media wikiShawn Jones
The Internet Archive attempts to reconstruct web pages via snapshots (Mementos) that are taken of pages at various points in time. Many pages change more frequently than the Internet Archive can capture them, meaning that some revisions of a given web page are lost forever. Mediawiki, however, has all past revisions of a given page, and also its associated external resources. This inspired the development of the Memento Mediawiki Extension as an improvement over the Internet Archive's "drive by" method of digital preservation where Mediawiki sites are involved.
While working on the Memento Mediawiki Extension, effort was put into reconstructing past revisions of each Wiki page. The existing software reconstructs the page text as per RFC 7089, but does not try to pull in past versions of images, JavaScript, CSS, and other external resources, because Mediawiki, as it exists, makes it difficult or impossible to load these resources at page generation time.
This curated talk will explore the problems of page reconstruction on the main web and detail the issues within the Mediawiki code that currently prevent and/or make it difficult to reconstruct the page in its totality as it looked at that revision.
GitFlow is a branching model for Git, created by Vincent Driessen. It has attracted a lot of attention because it is very well suited to collaboration and scaling the development team
Do you know the basics of Git but wonder what all the hype is about? Do you want the ultimate control over your Git history? This tutorial will walk you through the basics of committing changes before diving into the more advanced and "dangerous" Git commands.
Git is an open source, distributed version control system used to track many different projects. You can use it to manage anything from a personal notes directory to a multi-programmer project.
This tutorial provides a short walk through of basic git commands and the Git philosophy to project management. Then we’ll dive into an exploration of the more advanced and “dangerous” Git commands. Watch as we rewrite our repository history, track bugs down to a specific commit, and untangle commits into an LKML-worthy patchset.
Two days git training with labs
First day covers git basis and essential commands
Second day covers git additional command with a big lab using a git workflow
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 tutorial for rookies that covers most aspects of basic Git usage for a medium sized project.
This was originally a semestral lecture given at the TU Wien for the course "Software Engineering and Project Management"
Through this tutorial, you can learn Git & GitHub fundamentals very easily. I have explained both theory and practical. I hope you will enjoy it. Happy Git.!!
Git is a distributed revision control system that is widely used in the software development industry. The presentation was used in a lecture delivered in BITS-Pilani, India. The lecture served as a basic crash course on Git.
First, it sets off with a guide to install and configure git on various platforms.
Then, the basic working concepts of Git are explained.
This is followed by a detailed step-by-step guided demonstration of a sample workflow in Git.
Afterwards, Some auxillary commands that are frequently used are discussed briefly.
Finally, basic concepts of branching and merging are detailed.
The presentation ends with a few possible merge conflicts that occur in Git.
This slide discusses the most popular distributed version control system that is GIT and it's different commands that we need in our daily operations for project collaboration.
Reconstructing the past with media wikiShawn Jones
The Internet Archive attempts to reconstruct web pages via snapshots (Mementos) that are taken of pages at various points in time. Many pages change more frequently than the Internet Archive can capture them, meaning that some revisions of a given web page are lost forever. Mediawiki, however, has all past revisions of a given page, and also its associated external resources. This inspired the development of the Memento Mediawiki Extension as an improvement over the Internet Archive's "drive by" method of digital preservation where Mediawiki sites are involved.
While working on the Memento Mediawiki Extension, effort was put into reconstructing past revisions of each Wiki page. The existing software reconstructs the page text as per RFC 7089, but does not try to pull in past versions of images, JavaScript, CSS, and other external resources, because Mediawiki, as it exists, makes it difficult or impossible to load these resources at page generation time.
This curated talk will explore the problems of page reconstruction on the main web and detail the issues within the Mediawiki code that currently prevent and/or make it difficult to reconstruct the page in its totality as it looked at that revision.
Overview of agile methods in use at Pivotal Labs, and how they're embodied in Pivotal Tracker, Pivotal Labs's project collaboration tool. Tracker is available at http://www.pivotaltracker.com.
A flash lecture given at the JJTV Tool Night #4 on 6 November, 2012.
The full lecture video (in Hebrew) can be found at http://www.youtube.com/watch?v=ozl6oBmAj1Y
Introduction to Pivotal Labs and their Way.
Original slides by Pivotal Labs, found at http://assets.pivotallabs.com/talks/Agile%20the%20Pivotal%20Way.pdf
This presentation provides a comprehensive overview of Maven 3 including lifecycles and a detail of the default lifecycle and the associated phases within.
Introduction to BDD with Cucumber for JavaSeb Rose
This tutorial looks at what Cucumber is good for—and what it isn’t. It briefly covers what behavior-driven development (BDD) is and how Cucumber helps deliver on the promise of improved communication between the business and the development team. Then it dives into how Cucumber works, the specific details of the Java version (Cucumber-JVM), and what makes it different from other similar tools. Finally, it considers how Cucumber can fit into your test automation strategy and produce "living documentation" that is always up to date. You will come away with everything you need to know to be able to decide whether BDD (using Cucumber-JVM) is for you.
Git 101 - Crash Course in Version Control using GitGeoff Hoffman
Find out why more and more developers are switching to Git - distributed version control. This intro to Git covers the basics, from cloning to pushing for beginners.
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.
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.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
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.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
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.
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
Knowledge engineering: from people to machines and back
Git Branching Model
1. Branching Model --stupid-content-tracker
$ GIT init --bare --shared doc/branching-model.git
Initialized empty shared Git repository in /doc/branching-model.git/
$ GIT clone doc/branching-model.git
Cloning into 'branching-model'...
Done.
$ GIT checkout master
Switched to branch 'master'
Harun Yardımcı
Software Architect @ ebay Turkey
http://www.linkedin.com/in/harunyardimci/
5th Feb 2013
2. Why GIT? --stupid-content-tracker
- Easy to learn
- Fast and small
- Distributed
- Convenient staging areas
- Cheap and multiple local branching
- Multiple workflows
- Data Assurance
- Huge community
These are not enough to love it?
- It is free and open source..
3. Branch!! What is it? --stupid-content-tracker
Separate line of work..
Branch is a simply a movable pointer to a commit.
}
A commit data
one blob for the contents of each of your three files
one tree that lists the contents of the directory and
specifies which file names are stored as which blobs,
one commit with the pointer to that root tree
all the commit metadata
Multiple commits
the next commit stores a pointer to the
commit that came immediately before it
{
4. More About Branches --stupid-content-tracker
Default branch is master
Easy to create a branch
}
$ git checkout -b mybranch
Switched to a new branch "mybranch"
or Create and switch
$ git branch mybranch to the branch
$ git checkout mybranch
Switched to a new branch “mybranch”
For more about branching http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging
5. Main Branches --stupid-content-tracker
Master Branch
(origin/master)
to be the main branch where the source code of HEAD always reflects a state
with the latest delivered development changes for the next release
Release Branches
(origin/release-*)
HEAD always reflects a production ready state. Also called Release Candidate
(RC) or staging branch.
Production Branch
(origin/production)
HEAD always reflects a state with the current release on the production.
“Never and ever make any changes on this branch.”
6. Supporting Branches --stupid-content-tracker
Feature Branches
(origin/feature/*, origin/fix/*, origin/fun/*)
used to develop new features for the upcoming release or a distant future
release
Hotfix Branches
(origin/hotfix/*)
arise from the necessity to act immediately upon an undesired state of a live
production version
Each of these branches have a specific purpose and are bound to strict rules as to which
branches may be their originating branch and which branches must be their merge targets.
7. Feature Branches --stupid-content-tracker
Time
ch er to
an st to
in er
br ma
te e g e st
ea th er a
Cr om M em
Feature 1 fr th
s er
ge st
an m a
h e
ll c th
Feature 2 Pu om
fr
Master
8. Release Branches --stupid-content-tracker
Time
ch er to
an st to
in er
br ma
te e g e st
ea th er a
Cr om M em
Feature 1 fr th
s er
ge st
an m a
h e
ll c th
Feature 2 Pu om
fr
Master
Release-0.1.2
Release-0.1.3
9. Production Branch --stupid-content-tracker
Time
ch er to
an st to
in er
br ma
te e g e st
ea th er a
Cr om M em
Feature 1 fr th
s er
ge st
an m a
h e
ll c th
Feature 2 Pu om
fr
Master
e
r th
te
af
te
le e
De erg
Release-0.1.2 m
rt
he
te
af
te
le e
De erg
Release-0.1.3 m
Production
Deploy and tag
10. Hotfix Branches --stupid-content-tracker
Time
ch er to
an st to
in er
br ma
te e g e st
ea th er a
Cr om M em
Feature 1 fr th
s er
ge st
an m a
h e
ll c th
Feature 2 Pu om
fr
Master
e
r th
te
af
te
le e
De erg
Release-0.1.2 m
rt
he
te
af
te
le e
De erg
Release-0.1.3 m
Hot Fix
Production
Deploy and tag Deploy and tag Deploy and tag Deploy and tag
11. Naming Conventions --stupid-content-tracker
Master Branch:
- Name is master
Release Branches:
- All branch names start with “release-” followed by a release number
$ git checkout master -b release-0.1.2
Production Branch:
- Name is production
$ git checkout production
$ git merge --no-ff release-0.1.2
$ git tag -a v.0.1.2
Hotfix Branches:
- Hotfix branch name standart is as follows “hotfix/[JIRA-NUMBER]”
$ git checkout master -b hotfix/GG-13544
12. Naming Conventions --stupid-content-tracker
Feature Branches:
- have couple of standards depends on issue types
If your Jira issue type is one of the followings then start the branch name
with “fix/”
- Bug, Defect, Fix
If your issue type is one of the followings then start your branch name with
“feature/”
- Improvement, Feature, Task
If the issue type is none of them or it is an experimental branch, name it with
the “fun/” prefix unless it is just a local branch which you never push to
remote.
13. Wait a Minute! --stupid-content-tracker
Everything if clear and perfect up to now. But I don't have a production branch in
my repository. What should I do?
Following will create remote branch in the repository
$ git checkout master -b production
$ git push origin production
If someone else already created that you just track the branch
$ git checkout --track origin/production
or
$ git checkout -b production origin/production
15. Commit Messages --stupid-content-tracker
Commit messages has to include Jira issue number as a prefix
$ git commit -m “GG-1307 new banner added to left bar of homepage” -a
Why we write issue
number in the commit
messages?
{
“Write Meaningful Commit Messages.”
- Albert Einstein. He would say that if he were alive today.
16. Thanks --stupid-content-tracker
That's all about branching model.
Any Questions?