Continuous Delivery refers to the process of releasing high quality software quickly and with confidence through the use of build, test and deployment automation. By applying Lean techniques to the development, test and deployment of software, waste is reduced and staff are freed up to work on more important tasks. By following a continuous delivery model, release cycles shift from a matter of months to weeks or days.
In this presentation, we will look at the key tools and processes involved in transitioning from a manual culture to one that embraces automation. We will look at real world examples, including the tools and architectural components. We will discuss organizational impacts, including the dramatic improvements in morale as team delivery commitments are met more easily through automation.
Discover how to make continuous integration practical for complex projects and hear how Altera uses a set of gatekeeper builds to validate new code changes before they are accepted into the project-wide integration build and how it uses a second "sister" Perforce repository to track each change's integration status, allowing Altera to fully automate submission-time classification, selection of code for builds and validation marking. Extending the standard mainline model of software development, this lightweight scheme has processed over 175,000 changes in three years, enabling a stable but rapid evolution.
Introducing Container Technology to TSUBAME3.0 SupercomputerAkihiro Nomura
Invited Talk in ISC High Performance 2019 Focus Session "Containers for Acceleration and Accessibility in HPC and Cloud Ecosystems" https://2019.isc-program.com/presentation/?id=inv_sp183&sess=sess177
Continuous Delivery refers to the process of releasing high quality software quickly and with confidence through the use of build, test and deployment automation. By applying Lean techniques to the development, test and deployment of software, waste is reduced and staff are freed up to work on more important tasks. By following a continuous delivery model, release cycles shift from a matter of months to weeks or days.
In this presentation, we will look at the key tools and processes involved in transitioning from a manual culture to one that embraces automation. We will look at real world examples, including the tools and architectural components. We will discuss organizational impacts, including the dramatic improvements in morale as team delivery commitments are met more easily through automation.
Discover how to make continuous integration practical for complex projects and hear how Altera uses a set of gatekeeper builds to validate new code changes before they are accepted into the project-wide integration build and how it uses a second "sister" Perforce repository to track each change's integration status, allowing Altera to fully automate submission-time classification, selection of code for builds and validation marking. Extending the standard mainline model of software development, this lightweight scheme has processed over 175,000 changes in three years, enabling a stable but rapid evolution.
Introducing Container Technology to TSUBAME3.0 SupercomputerAkihiro Nomura
Invited Talk in ISC High Performance 2019 Focus Session "Containers for Acceleration and Accessibility in HPC and Cloud Ecosystems" https://2019.isc-program.com/presentation/?id=inv_sp183&sess=sess177
Virtualized storage is fast becoming the new norm.
Nobody can justify provisioning non-production environments the way they did up to now.
This presentation is about how Delphix removes the biggest bottleneck in IT operations, development, and QA by virtualizing data. It identifies the bottleneck and the impact on IT, then describes how Delphix removes it to enable DevOps continuous delivery.
This session will explore what happens after server consolidation: Workload profiles change, usage patterns change, and resource utilization goes up and down. During this session, we will discuss how the storage footprint changes, and what used to be ideally optimized isn't anymore.
You will learn how to quantify the gap between resource allocation and actual usage, how to recover and redeploy excess capacity, and how to find common virtual machine configuration mistakes that can degrade overall performance.
XPDDS18: Real Time in XEN on ARM - Andrii Anisov, EPAM Systems Inc.The Linux Foundation
Currently, several initiatives promote XEN hypervisor into the automotive area as a base of complex virtualized systems. To support those initiatives and plunge into the automotive world XEN should fit at least two requirements: it should be appropriately certified and to be able to host a security domain. Leaving behind certification topic, here we focus on security domain hosting capability of XEN. Particularly on keeping RT guarantees for the specific domain.
This talk is a presentation of the investigation on a XEN hypervisor applicability to building a multi-OS system with real-time guarantees being kept for one of the hosted OSes.
During this presentation following topics would be outlined:
- experimental setup
- experimental use-cases and their motivation
- received results and discovered issues
- solutions and mitigation measures for discovered issues
Using Puppet - Real World Configuration ManagementJames Turnbull
Configuration management is the oft-misunderstood (and possibly black) art of managing your IT environment, infrastructure, and costs. Done well it can reduce operational errors and outages, simplify your environment, and help maintain the sanity of your IT staff.
Puppet is part of the bright future of configuration management for heterogeneous Unix systems. It combines automation, a powerful abstraction language, and uses a client-server model that can scale to suit enterprise-size environments. Puppet is written in Ruby and authored by recovering system administrator-turned-developer Luke Kanies.
This session explains why configuration management is important, the benefits configuration management will deliver, and how all of this can be achieved using Puppet. The session also explains emerging best practices in configuration management and addresses:
* What is configuration management? Or why am I here?
* Benefits, risks, and challenges: build fire resistant infrastructure rather than fight fires
* Best practice: how do we do this configuration management magic right?
* Where does Puppet fit in and why should management pay for its implementation?
* Why using Puppet will save you money and help staff retention (although is unlikely to stop world hunger)
* Real world configuration management using Puppet: code, examples, explanations, and using Puppet in anger
* Measuring the results and pocketing the returns
* Where to from here: some ideas about the future (may include wild-arse guesses)
Xen is one of most popular virtualization project, many companies and individuals participate in the development, testing and using of Xen. In this presentation, Xudong will give an introduction of Intel QA team's test coverage for Xen, demonstrate the pre check in for new features testing, and post check in for regression testing, as well as test methodology and test framework.
Securing Your Cloud With the Xen Hypervisor by Russell Pavlicekbuildacloud
The Xen Project produces a mature, enterprise-grade virtualization technology designed for the Cloud featuring many advanced and unique security features. For this reason, it's a hypervisor of choice for government agencies like NSA and the DoD, as well as for new security-minded projects the QubesOS Secure Desktop. However, while much of the security of Xen is inherent in its design, many of the advanced security features, such as stub domains, driver domains, and Xen Security Modules (XSM), are not enabled by default. This session will describe many of the advanced security features of Xen, as well as explaining why Xen is an excellent choice for secure Clouds
Ideas about Checkpointing for Android
> Resume to stored state for faster Android boot time
> Better product field trial experience due to regular
> Deploy problematic states for engineering analysis and
debugging transparently
> Q&A stress test purpose
SoftBase is committed to driving a better DB2 development experience. Combining decades of DB2 expertise, innovative testing and DB2 performance-tuning tools and an unmatched customer support and service team, SoftBase helps application developers and DB2 administrators deliver more reliable DB2 applications and create higher performing DB2 software.
Visit www.softbase.com/solutions_overview.php for more information!
Virtualized storage is fast becoming the new norm.
Nobody can justify provisioning non-production environments the way they did up to now.
This presentation is about how Delphix removes the biggest bottleneck in IT operations, development, and QA by virtualizing data. It identifies the bottleneck and the impact on IT, then describes how Delphix removes it to enable DevOps continuous delivery.
This session will explore what happens after server consolidation: Workload profiles change, usage patterns change, and resource utilization goes up and down. During this session, we will discuss how the storage footprint changes, and what used to be ideally optimized isn't anymore.
You will learn how to quantify the gap between resource allocation and actual usage, how to recover and redeploy excess capacity, and how to find common virtual machine configuration mistakes that can degrade overall performance.
XPDDS18: Real Time in XEN on ARM - Andrii Anisov, EPAM Systems Inc.The Linux Foundation
Currently, several initiatives promote XEN hypervisor into the automotive area as a base of complex virtualized systems. To support those initiatives and plunge into the automotive world XEN should fit at least two requirements: it should be appropriately certified and to be able to host a security domain. Leaving behind certification topic, here we focus on security domain hosting capability of XEN. Particularly on keeping RT guarantees for the specific domain.
This talk is a presentation of the investigation on a XEN hypervisor applicability to building a multi-OS system with real-time guarantees being kept for one of the hosted OSes.
During this presentation following topics would be outlined:
- experimental setup
- experimental use-cases and their motivation
- received results and discovered issues
- solutions and mitigation measures for discovered issues
Using Puppet - Real World Configuration ManagementJames Turnbull
Configuration management is the oft-misunderstood (and possibly black) art of managing your IT environment, infrastructure, and costs. Done well it can reduce operational errors and outages, simplify your environment, and help maintain the sanity of your IT staff.
Puppet is part of the bright future of configuration management for heterogeneous Unix systems. It combines automation, a powerful abstraction language, and uses a client-server model that can scale to suit enterprise-size environments. Puppet is written in Ruby and authored by recovering system administrator-turned-developer Luke Kanies.
This session explains why configuration management is important, the benefits configuration management will deliver, and how all of this can be achieved using Puppet. The session also explains emerging best practices in configuration management and addresses:
* What is configuration management? Or why am I here?
* Benefits, risks, and challenges: build fire resistant infrastructure rather than fight fires
* Best practice: how do we do this configuration management magic right?
* Where does Puppet fit in and why should management pay for its implementation?
* Why using Puppet will save you money and help staff retention (although is unlikely to stop world hunger)
* Real world configuration management using Puppet: code, examples, explanations, and using Puppet in anger
* Measuring the results and pocketing the returns
* Where to from here: some ideas about the future (may include wild-arse guesses)
Xen is one of most popular virtualization project, many companies and individuals participate in the development, testing and using of Xen. In this presentation, Xudong will give an introduction of Intel QA team's test coverage for Xen, demonstrate the pre check in for new features testing, and post check in for regression testing, as well as test methodology and test framework.
Securing Your Cloud With the Xen Hypervisor by Russell Pavlicekbuildacloud
The Xen Project produces a mature, enterprise-grade virtualization technology designed for the Cloud featuring many advanced and unique security features. For this reason, it's a hypervisor of choice for government agencies like NSA and the DoD, as well as for new security-minded projects the QubesOS Secure Desktop. However, while much of the security of Xen is inherent in its design, many of the advanced security features, such as stub domains, driver domains, and Xen Security Modules (XSM), are not enabled by default. This session will describe many of the advanced security features of Xen, as well as explaining why Xen is an excellent choice for secure Clouds
Ideas about Checkpointing for Android
> Resume to stored state for faster Android boot time
> Better product field trial experience due to regular
> Deploy problematic states for engineering analysis and
debugging transparently
> Q&A stress test purpose
SoftBase is committed to driving a better DB2 development experience. Combining decades of DB2 expertise, innovative testing and DB2 performance-tuning tools and an unmatched customer support and service team, SoftBase helps application developers and DB2 administrators deliver more reliable DB2 applications and create higher performing DB2 software.
Visit www.softbase.com/solutions_overview.php for more information!
A presentation on distributed version controlling with Mercurial. starts with some introduction on the concept of distributed version controlling and then guidance tp choose best version controlling system out of available tools.
Javahispano y Paradigma Tecnológico organizan un un seminario sobre una comparativa de sistemas de versionado: Subversion vs. Git.
Seminario presentado por Mariano Navas el 29 de Mayo de 2013 en UPM.
Dentro del mundo de los sistemas de control de versiones tenemos dos grandes grupos: los centralizados y los distribuidos. Subversion es en buena medida el representante más notable en el grupo de los centralizados. En los distribuidos git se está imponiendo como la tendencia.
Más información sobre el seminario:
http://www.paradigmatecnologico.com/seminarios/git-vs-subversion-cuando-utilizar-uno-u-otro/
Vídeo youtube: https://www.youtube.com/watch?v=nR5L3sJRp_c
¿Quieres saber más?
http://www.paradigmatecnologico.com
Slides from my talk at ALT.NET Cork.
Unlike centralized version control systems, the distributed nature of Git allows you to be far more flexible in how developers collaborate on projects.In this session I'll take you through a quick tour of the essential git commands with some demos.We'll cover branching and merging strategies, pull requests ,working on open source (GitHub etc), git clients and git deployments to the cloud.
We discuss what version control systems are, why people should use them as much as possible in suitable cases. We took a basic overlook over Git VCS and how it is integrated with Intellij Platform.
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.
Make It Cooler: Using Decentralized Version Controlindiver
A commonly used version control system in the ColdFusion community is Subversion -- a centralized system that relies on being connected to a central server. The next generation version control systems are “decentralized”, in that version control tasks do not rely on a central server.
Decentralized version control systems are more efficient and offer a more practical way of software development.
In this session, Indy takes you through the considerations in moving from Subversion to Git, a decentralized version control system. You also get to understand the pros and cons of each and hear of the practical experience of migrating projects to decentralized version control.
Version control is often used in conjunction with a testing framework and continuous integration. To complete the picture, Indy walks you through how to integrate Git with a testing framework, MXUnit, and a continuous integration server, Hudson.
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.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...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.
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.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
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.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
Welcome to the first live UiPath Community Day Dubai! Join us for this unique occasion to meet our local and global UiPath Community and leaders. You will get a full view of the MEA region's automation landscape and the AI Powered automation technology capabilities of UiPath. Also, hosted by our local partners Marc Ellis, you will enjoy a half-day packed with industry insights and automation peers networking.
📕 Curious on our agenda? Wait no more!
10:00 Welcome note - UiPath Community in Dubai
Lovely Sinha, UiPath Community Chapter Leader, UiPath MVPx3, Hyper-automation Consultant, First Abu Dhabi Bank
10:20 A UiPath cross-region MEA overview
Ashraf El Zarka, VP and Managing Director MEA, UiPath
10:35: Customer Success Journey
Deepthi Deepak, Head of Intelligent Automation CoE, First Abu Dhabi Bank
11:15 The UiPath approach to GenAI with our three principles: improve accuracy, supercharge productivity, and automate more
Boris Krumrey, Global VP, Automation Innovation, UiPath
12:15 To discover how Marc Ellis leverages tech-driven solutions in recruitment and managed services.
Brendan Lingam, Director of Sales and Business Development, Marc Ellis
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
5. DVCS makes life better!
• Less time fighting your tool,
More time writing code!
• Less time figuring out what happened,
More time solving the problem.
6. SVN, The Straight Jacket
SVN is a single source system. Everybody speaks to the central repository, and every
check-in and check-out is put and made from there.
To check code in, you must have a network connection, and a route to the server.
A check-in cannot occur if the branch has diverged, a merge is required, though it's
called an update, and SVN doesn't keep any knowledge that it was actually a merge!
SVN
Server
Klag Marie Joe
• Check-outs are slow
• Commits are infrequent
• Branching causes a checkout to pull all the files over again
Infrequent commits lead to gargantuan merges, which suck in any system, and SVN's merge tools aren't great.
Expensive branch check-out makes developers reluctant to branch
7. DVS - The general proposition
Each repository in a DVCS (Distributed Version Control System) has a complete revision history
for any branch that is present, including remotely tracked branches (mostly).
For Git, having a single server that everybody synchronizes
with, is just one of a few potential configurations. This is the
model that is used most frequently in a corporate environment. Git
Remote
This gives a single place that can be managed including things
like back-ups and high-availability.
This model allows for a few things that make life
for developers significantly better:
• Frequent commits
• Horizontal change-set sharing
• Commits without internet connectivity
• Branches retain all comments and context
especially around merges
Klag Marie
8. Git - Emerging as the leading DVCS
• Git designed and initially built by Linus Torvalds
• Designed to manage the codebase for the Linux kernel
Why is it called git?
• Linus jokes that he names programs after himself.
• Git is a British English term that roughly means a person who is somewhat
arrogant, obnoxious and slightly sadistic.
• Linus hates wasting time having to merge many many changes every day, so
he made git as fast as possible, and he knows the kernel, so it is very fast.
Very very fast, all network transfers are heavily compressed, large merges
happen with sub-second response time on UNIXish OSes generating fewer
conflicts than other systems
Extremely powerful functionality:
• Cheap branching and merging
• Guarenteed data integrity
• Selective commits
• Sophisticating merging algorithms
• Stashing
• Multiple merge strategies that can merge multiple branches
• Fast diffs
• Patchset generation
• Compact Syntax
• Cherry Picking
• Rebasing
• Branch Filtering
• SVN Porting tools!
10. Get the code from the remote repository
git clone http://github.com/foo
What happened?
Remote Server
Local System
Checkout Clone
Working Copy Local Remote
On a clone, git assumes Remote git packs
you also want local files,
so does a checkout. Remote's HEAD gets copied to local,
which is a branch labelled "master".
HEAD is a descriptor that references the last element of a branch in a repository that is
the current branch.
11. Sending changes back to the repository
Add Commit Push
Remote Server
Local System
Commit Push
Working Copy
git clone http://github.com/foo Local Remote
Add files: What justCommit:
happened? Push local to remote: Remote git packs
git add git commit -m git push
file1.txt src/main "Added some files" origin master
12. Filling in a Few Gaps
The Index is git's log of what's going on. It contains a list of files and their
state relative to HEAD.
Local System
Index
Commit
Add
Remote Server
Checkout Push
Working Copy Local Remote
Commit Fetch
13. What is a Branch?
master 8a63a7
test 76f43a
master test
8a63a7 76f43a 8a63a7 76f43a
26df25c 463e5c 26df25c
463e5c
6c75877 6c75877
26a562c 26a562c
A revision keeps track of its predecessor(s).
This is how a branch is defined, a successive set of revisions that have a
common ancestor. The lineage is given a label, and that is a reference to
the branch. It isn't a name per se, it's a reference or pointer. You can
change the label, or move it, but the underlying branch lineage doesn't
change.
14. Pushing Changes - A Fast Forward
When there are only a single person's changes being sent upstream, it's pretty easy.
This operation is described as a fast-forward
Local System Remote Server
Push
Local Remote
8a63a7 8a63a7
463e5c Fast Forward 463e5c
6c75877 6c75877
Common Ancestor 26a562c 26a562c
15. Divergent branches
When you try to push, and the remote has been updated since you last fetched, it will reject your push
Local System Remote Server
Push
Local Remote
6c75877 463e5c
26a562c 26a562c
The two branches have a common ancestor, but a divergent HEAD. Pushing to a remote branch must be a "fast-
forward". This means that the current revision on the remote, must be an ancestor of your current HEAD. When
this occurs, what transpires is described as a fast-forward.
16. Retrieving and Merging
Local System Remote Server
Fetch
Local Remote
6c75877 463e5c
26a562c 26a562c
Show the difference:
git diff --stat origin/master
Retrieve the changes: Perform the Merge:
git fetch git merge origin/master
Show the difference detail:
git diff origin/master
17. Merging - What happens
26a562c 6c75877
master
Merge
26a562c 463e5c
8a63a7
origin/master
When a merge occurs, git uses one of the merge strategies to resolve differences:
• resolve 3-way merge that is good at detecting crisscross merges, doesn't do renames
• recursive
• ours conflicts are resolved with our version
• theirs conflicts are resolved with their version
• patience takes a bit more time, good for merging highly divergent branches
• renormalize pre-flight normalization for things like line-endings
• no-renormalize disable the previous
• subtree[=<path>] merge knowing that one branch is in a subdirectory of the other
• octopus merge more than two branches
• ours merge taking our history exclusively
• subtree less granular subdirectory merge
18. Merge Outcome - What does it look like?
origin/master master
The revision 8a63a7 has two predecessors
• 6c75877
• 463e5c
8a63a7
463e5c 6c75877
26a562c
19. Conflict Conflagration!
When there are intersecting changes that can't be resolved by
the merge tool
Manual intervention is required!
6c75877
master
Conflict!
Merge Index Working Copy
origin/
master
463e5c
20. The Index keeps track of the status of things
Index Query the index to find out if there's more left to merge
git status
Add files to indicate they are merged
git add poem.txt
Working Copy
Commit files once they've all been merge and push
Fix poem.txt git commit -m "Merged, dropped Klag's changes"
Index Still conflicted?
Fix index.html
Index Still conflicted?
Nope
Add
Working Copy Index
Commit
master Remote
Push
21. I totally fubared the Merge!
You can get back to pre-merge state with a reset:
get reset --hard HEAD
6c75877 - HEAD
26a562c
reset
master
working working
Index files files
26a562c 463e5c
conflicted local changes
origin/master
This also works for reverting changes
22. Ammending a Commit
• I wrote a message, but it was crap
• I forgot to add some files
master
amend
26a562c 8a63a7 463e5c
Amending a commit after pushing will result in a conflict!
You created a new revision, with a new hash, and the remote has your old
commit as HEAD which isn't an ancestor for your local master so a push is no
longer a fast-foward
All is not lost though, you can fetch and merge like normal
23. Good Git Usage
Use .gitignore
• It contains a list of patterns for files to ignore
Always add explicitly, never use git commit -a, or git add.
Always check your status with git status before you commit
• If you commit hastily and push too quick, you'll end up
with files that shouldn't be there!