Introduction to Distributed Version Control System with Mercurial / TortoiseHgEng Chin Gan
This is a presentation that I made for Experian Tech Talk in August 2012. It covers basic introduction to DVCS using Mercurial / TortoiseHg as example.
Enhancing the application development process in all its phases—building, scaling, shipping, deploying
and running—plays a vital role in today’s competitive IT industry by shortening the time between writing
code and running it.
Entwicklungsteams stehen heutzutage unter enormen Zeitdruck, da gilt: "In the new world, it is not the big fish which eats the small fish, it’s the fast fish which eats the slow fish" (Klaus Schwab, Founder and Executive Chairman of the World Economic Forum). Weiterhin muss Software gegen Testsysteme entwickelt und getestet werden, die soweit wie möglich an Produktionssysteme angelehnt sind, um Aussagen wie "Runs on my machine" endgültig abzuwürgen. Aufgrund des Zeitdrucks müssen diese Testsysteme sehr schnell aufgesetzt und auch wieder zerstört werden können. Vagrant versucht diese Probleme zu lösen, indem es vorhandene Virtualisierungs- und Provisionierungs-Tools orchestriert und damit Entwicklern die Möglichkeit bietet Testsysteme lokal und in "self-service" zu verwalten. Dieser TechTalk soll Entwicklern eine Einführung in die Konzepte und Benutzung von Vagrant geben.
Introduction to Distributed Version Control System with Mercurial / TortoiseHgEng Chin Gan
This is a presentation that I made for Experian Tech Talk in August 2012. It covers basic introduction to DVCS using Mercurial / TortoiseHg as example.
Enhancing the application development process in all its phases—building, scaling, shipping, deploying
and running—plays a vital role in today’s competitive IT industry by shortening the time between writing
code and running it.
Entwicklungsteams stehen heutzutage unter enormen Zeitdruck, da gilt: "In the new world, it is not the big fish which eats the small fish, it’s the fast fish which eats the slow fish" (Klaus Schwab, Founder and Executive Chairman of the World Economic Forum). Weiterhin muss Software gegen Testsysteme entwickelt und getestet werden, die soweit wie möglich an Produktionssysteme angelehnt sind, um Aussagen wie "Runs on my machine" endgültig abzuwürgen. Aufgrund des Zeitdrucks müssen diese Testsysteme sehr schnell aufgesetzt und auch wieder zerstört werden können. Vagrant versucht diese Probleme zu lösen, indem es vorhandene Virtualisierungs- und Provisionierungs-Tools orchestriert und damit Entwicklern die Möglichkeit bietet Testsysteme lokal und in "self-service" zu verwalten. Dieser TechTalk soll Entwicklern eine Einführung in die Konzepte und Benutzung von Vagrant geben.
Looking at how people, with current deployments, can start using docker with out having to replace anything. Also giving a migration path that allows testing the separate pieces and migrating over slowly without painting yourself into a corner. Also covering why you might want to do this and the problems it may help to solve.
Docker Tips And Tricks at the Docker Beijing MeetupJérôme Petazzoni
This talk was presented in October at the Docker Beijing Meetup, in the VMware offices.
It presents some of the latest features of Docker, discusses orchestration possibilities with Docker, then gives a briefing about the performance of containers; and finally shows how to use volumes to decouple components in your applications.
CloudBees' webinar slides: 7 Ways to Optimize Hudson in Production. Webinar delivered by Kohsuke Kawaguchi - the founder of Hudson.
Video of the Webinar available on http://www.youtube.com/cloudbeestv
Containers: from development to production at DevNation 2015Jérôme Petazzoni
In Docker, applications are shipped using a lightweight format, managed with a high-level API, and run within software containers which abstract the host environment. Operating details like distributions, versions, and network setup no longer matter to the application developer.
Thanks to this abstraction level, we can use the same container across all steps of the life cycle of an application, from development to production. This eliminates problems stemming from discrepancies between those environments.
Even so, these environments will always have different requirements. If our quality assurance (QA) and production systems use different logging systems, how can we still ship the same container to both? How can we satisfy the backup and security requirements of our production stack without bloating our development stack?
In this sess, you will learn about the unique features in containers that allow you to cleanly decouple system administrator tasks from the core of your application. We’ll show you how this decoupling results in smaller, simpler containers, and gives you more flexibility when building, managing, and evolving your application stacks.
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...Lucas Jellema
Creating and managing environments for development and R&D activities can be cumbersome. Quickly spinning up databases and web servers, using physical resources in a smart way, installing application components, and having all the elements talk to each other can take a lot of time. This session takes you by the hand and introduces you to Vagrant and Oracle VM VirtualBox for quickly provisioning VMs in which Docker containers run platform components, applications, and microservices—all set up by use of Puppet and interacting with Git(Hub). You’ll start from zero on your laptop and end with both local and public cloud environments in which to develop, test, and run various types of applications. Lean governance and evolution of the environments are discussed too.
Containerization is more than the new Virtualization: enabling separation of ...Jérôme Petazzoni
Docker offers a new, lightweight approach to application
portability. Applications are shipped using a common container format,
and managed with a high-level API. Their processes run within isolated
namespaces which abstract the operating environment, independently of
the distribution, versions, network setup, and other details of this
environment.
This "containerization" has often been nicknamed "the new
virtualization". But containers are more than lightweight virtual
machines. Beyond their smaller footprint, shorter boot times, and
higher consolidation factors, they also bring a lot of new features
and use cases which were not possible with classical virtual machines.
We will focus on one of those features: separation of operational
concerns. Specifically, we will demonstrate how some fundamental tasks
like logging, remote access, backups, and troubleshooting can be
entirely decoupled from the deployment of applications and
services. This decoupling results in independent, smaller, simpler
moving parts; just like microservice architectures break down large
monolithic apps in more manageable components.
Introductory seminar on Docker and its components (networks and Compose in particular). Focused on going through some basic concepts, mention some more advanced topics, and introduce a practical workshop held on the same evening.
"Containers wrap up software with all its dependencies in packages that can be executed anywhere. This can be specially useful in HPC environments where, often, getting the right combination of software tools to build applications is a daunting task. However, typical container solutions such as Docker are not a perfect fit for HPC environments. Instead, Shifter is a better fit as it has been built from the ground up with HPC in mind. In this talk, we show you what Shifter is and how to leverage from the current Docker environment to run your applications with Shifter."
Watch the video presentation: http://wp.me/p3RLHQ-f81
See more talks in the Switzerland HPC Conference Video Gallery: http://insidehpc.com/2016-swiss-hpc-conference/
Sign up for our insideHPC Newsletter: http://insidehpc.com/newsletter
Introduction of the open source project hosting site 'Google Code' and it's newly support distributed version control system 'Mercurial (hg)'. Also mentions the innovative 'Cloud distributed version control' scenario, which use Dropbox/hg to achieve the version control within the private cloud.
An introduction to version control using git, github and the Apache CloudStack git repository.
Git is a distributed version control where developers can mantain a working local copy, make local changes and push to a central repository to share their code with other developers. Git has replaced SVN and CVS has the version control system of choice, especially with the adoption of github by the OSS community.
In this talk we show the basics of version control, we use gist from github to put simple scripts under version control and submit patches to it. We then show how to clone the cloudstack repository, explore the various feature and release branches. We then show how to create a patch and submit it to the Apache Software Foundation review board so that a committer of the CloudStack community can pick it up and apply it to the source tree.
This is the perfect talk to discover git and submit your first patch to CloudStack.
Looking at how people, with current deployments, can start using docker with out having to replace anything. Also giving a migration path that allows testing the separate pieces and migrating over slowly without painting yourself into a corner. Also covering why you might want to do this and the problems it may help to solve.
Docker Tips And Tricks at the Docker Beijing MeetupJérôme Petazzoni
This talk was presented in October at the Docker Beijing Meetup, in the VMware offices.
It presents some of the latest features of Docker, discusses orchestration possibilities with Docker, then gives a briefing about the performance of containers; and finally shows how to use volumes to decouple components in your applications.
CloudBees' webinar slides: 7 Ways to Optimize Hudson in Production. Webinar delivered by Kohsuke Kawaguchi - the founder of Hudson.
Video of the Webinar available on http://www.youtube.com/cloudbeestv
Containers: from development to production at DevNation 2015Jérôme Petazzoni
In Docker, applications are shipped using a lightweight format, managed with a high-level API, and run within software containers which abstract the host environment. Operating details like distributions, versions, and network setup no longer matter to the application developer.
Thanks to this abstraction level, we can use the same container across all steps of the life cycle of an application, from development to production. This eliminates problems stemming from discrepancies between those environments.
Even so, these environments will always have different requirements. If our quality assurance (QA) and production systems use different logging systems, how can we still ship the same container to both? How can we satisfy the backup and security requirements of our production stack without bloating our development stack?
In this sess, you will learn about the unique features in containers that allow you to cleanly decouple system administrator tasks from the core of your application. We’ll show you how this decoupling results in smaller, simpler containers, and gives you more flexibility when building, managing, and evolving your application stacks.
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...Lucas Jellema
Creating and managing environments for development and R&D activities can be cumbersome. Quickly spinning up databases and web servers, using physical resources in a smart way, installing application components, and having all the elements talk to each other can take a lot of time. This session takes you by the hand and introduces you to Vagrant and Oracle VM VirtualBox for quickly provisioning VMs in which Docker containers run platform components, applications, and microservices—all set up by use of Puppet and interacting with Git(Hub). You’ll start from zero on your laptop and end with both local and public cloud environments in which to develop, test, and run various types of applications. Lean governance and evolution of the environments are discussed too.
Containerization is more than the new Virtualization: enabling separation of ...Jérôme Petazzoni
Docker offers a new, lightweight approach to application
portability. Applications are shipped using a common container format,
and managed with a high-level API. Their processes run within isolated
namespaces which abstract the operating environment, independently of
the distribution, versions, network setup, and other details of this
environment.
This "containerization" has often been nicknamed "the new
virtualization". But containers are more than lightweight virtual
machines. Beyond their smaller footprint, shorter boot times, and
higher consolidation factors, they also bring a lot of new features
and use cases which were not possible with classical virtual machines.
We will focus on one of those features: separation of operational
concerns. Specifically, we will demonstrate how some fundamental tasks
like logging, remote access, backups, and troubleshooting can be
entirely decoupled from the deployment of applications and
services. This decoupling results in independent, smaller, simpler
moving parts; just like microservice architectures break down large
monolithic apps in more manageable components.
Introductory seminar on Docker and its components (networks and Compose in particular). Focused on going through some basic concepts, mention some more advanced topics, and introduce a practical workshop held on the same evening.
"Containers wrap up software with all its dependencies in packages that can be executed anywhere. This can be specially useful in HPC environments where, often, getting the right combination of software tools to build applications is a daunting task. However, typical container solutions such as Docker are not a perfect fit for HPC environments. Instead, Shifter is a better fit as it has been built from the ground up with HPC in mind. In this talk, we show you what Shifter is and how to leverage from the current Docker environment to run your applications with Shifter."
Watch the video presentation: http://wp.me/p3RLHQ-f81
See more talks in the Switzerland HPC Conference Video Gallery: http://insidehpc.com/2016-swiss-hpc-conference/
Sign up for our insideHPC Newsletter: http://insidehpc.com/newsletter
Introduction of the open source project hosting site 'Google Code' and it's newly support distributed version control system 'Mercurial (hg)'. Also mentions the innovative 'Cloud distributed version control' scenario, which use Dropbox/hg to achieve the version control within the private cloud.
An introduction to version control using git, github and the Apache CloudStack git repository.
Git is a distributed version control where developers can mantain a working local copy, make local changes and push to a central repository to share their code with other developers. Git has replaced SVN and CVS has the version control system of choice, especially with the adoption of github by the OSS community.
In this talk we show the basics of version control, we use gist from github to put simple scripts under version control and submit patches to it. We then show how to clone the cloudstack repository, explore the various feature and release branches. We then show how to create a patch and submit it to the Apache Software Foundation review board so that a committer of the CloudStack community can pick it up and apply it to the source tree.
This is the perfect talk to discover git and submit your first patch to CloudStack.
Shipping Applications to Production in Containers with DockerJérôme Petazzoni
Docker is an Open Source engine to build, run, and manage Linux Containers. Containers use less resources than virtual machines, they boot faster, but they have similar guarantees of portability and repeatability for Linux applications. Those features made Docker and Linux Containers extremely popular for development and testing environments. But what does it take to use Docker and Containers for production workloads?
DockerCon SF 2015: Docker in the New York Times NewsroomDocker, Inc.
Eric Buth's Presentation at DockerCon SF 2015:
Talk Description: In the New York Times newsroom you’ll find a deeply heterogeneous technology environment that exists – by necessity – outside of the larger, more well-defined development pipelines of the rest of the organization. On the Interactive News team, part of our mission is providing a reliable path to production for designers/developers/reporters who need to be able to make their own technology choices on what can be extremely tight deadlines.
Containerization is becoming increasingly important to these efforts, and we’re ready to share our experience working with Docker and crafting complementary orchestration, communication, and organization solutions.
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.
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
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
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.
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 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.
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.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
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.
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.
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.
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.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
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
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
6. Branching is easy, but
merging is painful
Branching is easy, merging is
(relatively) easy
7. Active net connection
required to interact
If your computer is on, you
have access to the repository
8. Unable to share changes
with others without sharing
with everyone
(including the build server)
Sharing changes with
selected people is easy
(hg serve/hg push/hg pull)
9. Fails to merge changes when
something is renamed
Aware of file history and
can merge into renamed file
10. .svn files are littered
throughout your source tree
Single .hg directory at root
of source tree
11. Slow over-the-wire
performance
Fast performance; you’re
working on local filesystem
22. Git - Use in the Wild
• Linux Kernel
• One Laptop Per Child (OLPC)
• Ruby on Rails
• Lots of other Ruby stuff
• Written mostly in C
23. Git - Common Wisdom
• Fastest of the DVCS systems
• Unfriendly to non-Linux/Unix systems
• Complex, with ~150 commands added to path
• Very popular in the Linux/Ruby communities
• Probably the most “buzz” off all DVCS systems right
now
26. Bazaar - Use in the Wild
• Ubuntu
• Drupal
• Fairly big in Python community
• it’s written mostly in Python
27. Bazaar - Common Wisdom
• Has gone through lots of revisions/changed formats
• Slowest of the 3
• Migration of an existing SVN repository is REALLY
slow
• Made to be friendly, similar to SVN
• Smallest market share
30. Mercurial - Use in the Wild
• OpenJDK (Java)
• OpenSolaris
• Mozilla
• NetBeans
• Many others (largely Java/Python related)
• Like Bazaar, it’s mostly written in Python
31. Mercurial - Common Wisdom
• Similar syntax to SVN
• Slightly slower than Git, but faster than Bazaar
• Good cross-platform support
• Getting good support from large Java projects
(OpenJDK, NetBeans, etc)
• Lower maintenance and easier learning curve than
Git
41. portal/** portal/.hg
hg init
local local
file hg addremove
repos
system hg commit
Create a new repository
42. portal/** portal/.hg http://hg01/repos/portal
local creates tip files local remote
file hg clone
on filesystem repos repos
system
hg clone http://hg01/repos/portal
“Checkout” an Existing Repository
43. portal/** portal/.hg http://hg01/repos/portal
local hg pull
local remote
file
hg update repos repos
system
quot;hg pull -uquot; will do this in one command
Pull down the latest changes
(no conflicts with local changes)
44. local file changes
portal/.hg http://hg01/repos/portal
hg commit
conflict! hg pull
local files unchanged! hg update
local remote
file hg merge repos repos
system
hg commit
quot;hg fetchquot; will pull->update->merge->commit in one command
Pull down the latest changes
(conflicts detected with local changes)
45. local file changes
portal/.hg http://hg01/repos/portal
hg add
local hg remove
hg addremove local remote
file repos
hg commit repos
system
hg push
Push changes to another repository
(by default, push will refuse to run if it would require a merge)
47. portal/.hg
local
Branching is done by repos
simply cloning a repository hg clone
hg clone portal portal-clone
portal-clone/** portal-clone/.hg
local creates tip files local
file on filesystem repos
system
Create a new “branch”
(experimenting is cheap and easy)
48. local file changes
portal/.hg
local hg diff
file hg status local
system hg identify repos
Compare file system with repository
49. portal/.hg
hg log
hg annotate
hg cat local
hg grep repos
hg serve
Query repository for info
58. A quick way to stick your toes in
and try Mercurial out:
use it as a “Super Client” for SVN
59. Web Resources
• Choosing a distributed version control system
http://www.dribin.org/dave/blog/archives/2007/12/28/dvcs/
• Understanding Mercurial
http://www.selenic.com/mercurial/wiki/index.cgi/UnderstandingMercurial
• Version Control and the “80%” (DVCS counterpoint)
http://blog.red-bean.com/sussman/?p=79
• Mercurial Book
http://hgbook.red-bean.com/hgbook.html
• Video of Bryan O’Sullivan (creator of the Mercurial Book)
http://video.google.com/videoplay?docid=-7724296011317502612