SlideShare a Scribd company logo
DIFF AND MERGE WITH EASE

E M F C O M PA R E

Mikaël Barbero
Obeo

October 30th, 2013
Eclipse Con Europe

© Csilla Zelko
http://500px.com/photo/37091940
DIFF AND MERGE WITH EASE

E M F C O M PA R E

Mikaël Barbero
Obeo

October 30th, 2013
Eclipse Con Europe

© Csilla Zelko
http://500px.com/photo/37091940
DIFF AND MERGE WITH EASE

E M F C O M PA R E

Mikaël Barbero
Obeo

October 30th, 2013
Eclipse Con Europe
DIFF AND MERGE WITH EASE

E M F C O M PA R E

Mikaël Barbero
Obeo

October 30th, 2013
Eclipse Con Europe
© David Cornejo
http://500px.com/photo/1683454
Who know what is EMF?

© David Cornejo
http://500px.com/photo/1683454
Who know what is EMF?
I T I S P R E C I S E LY W H AT W E W I L L N O T TA L K A B O U T

© David Cornejo
http://500px.com/photo/1683454
IT IS ALL ABOUT

DIFFERENCES

© Adrian Limani
http://500px.com/photo/18438151
Diff and Merge with Ease: EMF Compare
Diff and Merge with Ease: EMF Compare
Diff and Merge with Ease: EMF Compare
Diff and Merge with Ease: EMF Compare
E M F C O M PA R E

BIRD VIEW
EMF
MODEL 1

EMF
MODEL 2
E M F C O M PA R E

BIRD VIEW
EMF
MODEL 1

EMF
MODEL 2
E M F C O M PA R E

BIRD VIEW
EMF
MODEL 1
C O M PA R I S O N
EMF
MODEL 2
E M F C O M PA R E

BIRD VIEW
EMF
MODEL 1
C O M PA R I S O N
EMF
MODEL 2

MERGED
MODEL
E M F C O M PA R E

BIRD VIEW
EMF
MODEL 1

EMF
MODEL 2

EMF
MODEL 3

C O M PA R I S O N

MERGED
MODEL
INTEGRATED WITH

ECLIPSE TEAM
PROVIDERS
TA G L I N E

If you can inject your data within EMF,
!

EMF Compare will diff and merge it for free
INDEX
INDEX

© Joe @Plasmatico
http://500px.com/photo/38068154

Structured Data
Comparison
INDEX

© Joe @Plasmatico
http://500px.com/photo/38068154

Structured Data
Comparison

© Guille Massagué Conde
http://500px.com/photo/42703584

Java API
Evolution
INDEX

© Joe @Plasmatico
http://500px.com/photo/38068154

Structured Data
Comparison

© Guille Massagué Conde
http://500px.com/photo/42703584

Java API
Evolution

© Ryan Photography
http://500px.com/photo/33582547

Incremental
Transformation
INDEX

© Joe @Plasmatico
http://500px.com/photo/38068154

Structured Data
Comparison

© Guille Massagué Conde
http://500px.com/photo/42703584

Java API
Evolution

© Ryan Photography
http://500px.com/photo/33582547

Incremental
Transformation
<? XML ?>
<? XML ?>
<? TROUBLE ?>
DOM MODEL
<?xml version="1.0"?>
<project name="guice">
<target name="jar" depends="manifest">
<jar jarfile="guice-${version}.jar">
<zipfileset src="${build.dir}/deps.jar"/>
</jar>
</target>
</project>
DOM MODEL
DOCUMENT

<?xml version="1.0"?>
<project name="guice">
<target name="jar" depends="manifest">
<jar jarfile="guice-${version}.jar">
<zipfileset src="${build.dir}/deps.jar"/>
</jar>
</target>
</project>

ELEMENT
NAME

AT T R I B U T E
NAME
VA L U E
3… 2… 1…

SHOWTIME

© Christoph Ruhland
http://500px.com/photo/1145370
ANT MODEL
<?xml version="1.0"?>
<project name="guice">
<target name="jar" depends="manifest">
<jar jarfile="guice-${version}.jar">
<zipfileset src="${build.dir}/deps.jar"/>
</jar>
</target>
</project>
ANT MODEL
PROJECT

<?xml version="1.0"?>
<project name="guice">
<target name="jar" depends="manifest">
<jar jarfile="guice-${version}.jar">
<zipfileset src="${build.dir}/deps.jar"/>
</jar>
</target>
</project>

TA R G E T
NAME

DEPENDS

JAR
DIRECTIVE
ANT MODEL
PROJECT

<?xml version="1.0"?>
<project name="guice">
<target name="jar" depends="manifest">
<jar jarfile="guice-${version}.jar">
<zipfileset src="${build.dir}/deps.jar"/>
</jar>
</target>
</project>

TA R G E T
NAME

DEPENDS

JAR
DIRECTIVE

…
3… 2… 1…

SHOWTIME

© Christoph Ruhland
http://500px.com/photo/1145370
INDEX

© Joe @Plasmatico
http://500px.com/photo/38068154

© Guille Massagué Conde
http://500px.com/photo/42703584

Structured Data
Comparison

Java API
Evolution

© Ryan Photography
http://500px.com/photo/33582547

Incremental
Transformation
INDEX

© Joe @Plasmatico
http://500px.com/photo/38068154

© Guille Massagué Conde
http://500px.com/photo/42703584

Structured Data
Comparison

Java API
Evolution

© Ryan Photography
http://500px.com/photo/33582547

Incremental
Transformation
Diff and Merge with Ease: EMF Compare
Diff and Merge with Ease: EMF Compare
RULES FOR

E V O LV I N G A P I I N T E R F A C E S
CHANGE

RESTRICTION
IF NOT IMPLEMENTED
BY CLIENT

DELETE API METHOD

MOVE API METHOD UP
TYPE HIERARCHY

B I N A R Y C O M PAT I B L E

IF IMPLEMENTED BY
CLIENT

ADD API METHOD

I M PA C T

B R E A K S C O M PAT I B I L I T Y

—

B R E A K S C O M PAT I B I L I T Y

IF METHOD IN SUPERTYPE NEED
NOT BE IMPLEMENTED BY
CLIENT

B I N A R Y C O M PAT I B L E

IF METHOD IN SUPERTYPE MUST
BE IMPLEMENTED BY CLIENT

B R E A K S C O M PAT I B I L I T Y

http://wiki.eclipse.org/index.php/Evolving_Java-based_APIs
C O M PA R I S O N M O D E L

TEARDOWN
C O M PA R I S O N M O D E L

TEARDOWN
C O M PA R I S O N
C O M PA R I S O N M O D E L

TEARDOWN
C O M PA R I S O N

REFERENCE
CHANGE
C O M PA R I S O N M O D E L

TEARDOWN
C O M PA R I S O N

REFERENCE
CHANGE

EREFERENCE
(FROM ECORE)
C O M PA R I S O N M O D E L

TEARDOWN
C O M PA R I S O N

REFERENCE
CHANGE

EOBJECT

(FROM ECORE)

EREFERENCE
(FROM ECORE)
C O M PA R I S O N M O D E L

TEARDOWN
C O M PA R I S O N

AT T R I B U T E
CHANGE

REFERENCE
CHANGE

EOBJECT

(FROM ECORE)

EREFERENCE
(FROM ECORE)
C O M PA R I S O N M O D E L

TEARDOWN
C O M PA R I S O N

E AT T R I B U T E
(FROM ECORE)

AT T R I B U T E
CHANGE

REFERENCE
CHANGE

EOBJECT

(FROM ECORE)

EREFERENCE
(FROM ECORE)
C O M PA R I S O N M O D E L

TEARDOWN
C O M PA R I S O N

E AT T R I B U T E
(FROM ECORE)

AT T R I B U T E
CHANGE

REFERENCE
CHANGE

E J AVA O B J E C T

EOBJECT

(FROM ECORE)

(FROM ECORE)

EREFERENCE
(FROM ECORE)
3… 2… 1…

SHOWTIME

© Christoph Ruhland
http://500px.com/photo/1145370
INDEX

© Joe @Plasmatico
http://500px.com/photo/38068154

Structured Data
Comparison

© Guille Massagué Conde
http://500px.com/photo/42703584

Java API
Evolution

© Ryan Photography
http://500px.com/photo/33582547

Incremental
Transformation
INDEX

© Joe @Plasmatico
http://500px.com/photo/38068154

Structured Data
Comparison

© Guille Massagué Conde
http://500px.com/photo/42703584

Java API
Evolution

© Ryan Photography
http://500px.com/photo/33582547

Incremental
Transformation
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N

MODEL A0
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N

MODEL A0

MODEL B0
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N

MODEL A0

MODEL B0
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

MODEL B0
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

MODEL A1

MODEL B0
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

MODEL B0

MODEL A1

MODEL B1
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

MODEL B0

MODEL A1

MODEL B1
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

MODEL B0

MODEL A1

MODEL B1
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

MODEL A1

MODEL B0
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

MODEL B0

MODEL A1
E M F C O M PA R E
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

MODEL A1
E M F C O M PA R E
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

MODEL A1
E M F C O M PA R E
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

C O M PA R I S O N

MODEL A1
E M F C O M PA R E
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

C O M PA R I S O N

MODEL A1
E M F C O M PA R E

MODEL B0
3… 2… 1…

SHOWTIME

© Christoph Ruhland
http://500px.com/photo/1145370
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

MODEL B0

MODEL A1

MODEL B1
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

MODEL B0

MODEL B2

MODEL A1

MODEL B1
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

MODEL B0

MODEL B2

MODEL A1

MODEL B1
E M F C O M PA R E
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

MODEL B0

MODEL A1

MODEL B1
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

MODEL B0

MODEL A1

MODEL B1

MODEL B2
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

MODEL B0

MODEL A1

MODEL B1

MODEL B2
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

MODEL B0

MODEL A1

MODEL B1

MODEL B2
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

MODEL B0

MODEL B2

MODEL A1

MODEL B1

MODEL B3
PRINCIPLES OF

I N C R E M E N TA L T R A N S F O R M AT I O N
MODEL A0

MODEL B0

MODEL B2

MODEL A1

MODEL B1

MODEL B3
E M F C O M PA R E
3… 2… 1…

SHOWTIME

© Christoph Ruhland
http://500px.com/photo/1145370
INDEX

© Joe @Plasmatico
http://500px.com/photo/38068154

Structured Data
Comparison

© Guille Massagué Conde
http://500px.com/photo/42703584

Java API
Evolution

© Ryan Photography
http://500px.com/photo/33582547

Incremental
Transformation
INDEX

© Joe @Plasmatico
http://500px.com/photo/38068154

Structured Data
Comparison

© Guille Massagué Conde
http://500px.com/photo/42703584

Java API
Evolution

© Ryan Photography
http://500px.com/photo/33582547

Incremental
Transformation
Diff and Merge with Ease: EMF Compare
« One more thing! »

G R A P H I C A L C O M PA R I S O N
W H AT Y O U S H O U L D
REMEMBER

• Infinite potential for delta

computation

• EMF Compare will diff and merge

any EMF data for free

• Default UI with tremendous

extension capabilities

© Braeden Petruk
http://500px.com/photo/23711467
H T T P : / / W W W. E C L I P S E . O R G / E M F / C O M PA R E /

EMF Compare
Q&A?

© Damon Fullington
http://500px.com/photo/21930711
PLEASE

L E AV E F E E D B A C K

SIGN IN
W W W. E C L I P S E C O N . O R G

SELECT SESSION
E V A L U AT E

VOTE +1, 0, OR -1

© Denis Dervisevic
http://www.flickr.com/photos/denisdervisevic/4745520501/
MIKAËL BARBERO
mikael.barbero@obeo.fr
+Mikaël Barbero
@mikbarbero

OBEO

http://www.obeo.fr

More Related Content

PDF
Writing Apps that Can See: Getting Data from CoreImage to Computer Vision - ...
PDF
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevNexus 2017
PDF
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code Au...
PDF
A Research Study into DevOps Bottlenecks
PDF
A Research Study into DevOps Bottlenecks
PDF
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...
PDF
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevOps Days Be...
PDF
EMF.Edit the Force Unleashed!
Writing Apps that Can See: Getting Data from CoreImage to Computer Vision - ...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevNexus 2017
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code Au...
A Research Study into DevOps Bottlenecks
A Research Study into DevOps Bottlenecks
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevOps Days Be...
EMF.Edit the Force Unleashed!

Similar to Diff and Merge with Ease: EMF Compare (20)

PDF
Evolving for Multiple Screens
PDF
SpringOne 2GX 2015 - Fullstack Groovy developer
PDF
Build a production ready PWA - LINKIT & KLM Digital Studio Meetup
PDF
The Angular road from 1.x to 2.0
PDF
Build a production ready PWA with Angular and Firebase
PDF
Distribute/Support - パートナーオフィスアワー (Partner Office Hour) - きほんのき AppExchange ...
PDF
SIPOC Model PowerPoint Presentation Slides
PPTX
Bridge the PPC SEO Gap | SEMpdx | March 2015
PDF
10 Smart & Easy LinkedIn Background Images
PPT
Hadoop World 2011: Building a Model of Organic Link Traffic - Michael Dewar -...
PDF
Unboxing web with React Native
PDF
Edition Based Redefinition Made Easy - Oren Nakdimon
PDF
Puppet Camp Sydney 2014 - Evolving Design Patterns in AWS
PDF
Tesla sf tm
PDF
Tesla y Dassault Systèmes unidos de la mano
PDF
Automate iOS Deployment with Hamper and Schezhen
PPTX
COVID-19 are a cloud security catalyst
PDF
Linked Open GeoData for Electric Vehicle Charging Stations by ENEL
PDF
Linked Open GeoData for Enel Drive (W3C LOD2014)
PDF
Enel linked open geo data
Evolving for Multiple Screens
SpringOne 2GX 2015 - Fullstack Groovy developer
Build a production ready PWA - LINKIT & KLM Digital Studio Meetup
The Angular road from 1.x to 2.0
Build a production ready PWA with Angular and Firebase
Distribute/Support - パートナーオフィスアワー (Partner Office Hour) - きほんのき AppExchange ...
SIPOC Model PowerPoint Presentation Slides
Bridge the PPC SEO Gap | SEMpdx | March 2015
10 Smart & Easy LinkedIn Background Images
Hadoop World 2011: Building a Model of Organic Link Traffic - Michael Dewar -...
Unboxing web with React Native
Edition Based Redefinition Made Easy - Oren Nakdimon
Puppet Camp Sydney 2014 - Evolving Design Patterns in AWS
Tesla sf tm
Tesla y Dassault Systèmes unidos de la mano
Automate iOS Deployment with Hamper and Schezhen
COVID-19 are a cloud security catalyst
Linked Open GeoData for Electric Vehicle Charging Stations by ENEL
Linked Open GeoData for Enel Drive (W3C LOD2014)
Enel linked open geo data
Ad

More from mikaelbarbero (18)

PDF
Kubernetes 101 - A Cluster Operating System
PDF
Language Server Protocol - Why the Hype?
PDF
What's new in Eclipse Oxygen (Devoxx France 2017)
PDF
The Eclipse IDE: What's new in the 2017 release?
PDF
What every Eclipse developer should know about progress reporting and job can...
PDF
The Eclipse IDE - The Force Awakens (Devoxx France 2016)
PDF
Sirius: Graphical Editors for your DSLs
PDF
Modeling in a Team Environment with EMF Compare and EGit
PDF
Eclipse simultaneous release in a nutshell
PDF
OSGi: Don't let me be Misunderstood
PDF
EMF Compare 2.0: Scaling to Millions (updated)
KEY
EMFCompare 2.0: Scaling to Millions
KEY
3mf infinity-and-beyond
PDF
Eclipseconeurope 2011 - EMFCompare Improvements
PDF
Google Guava & EMF @ GTUG Nantes
ODP
5M lines of code migration
PDF
EMFPath
PDF
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)
Kubernetes 101 - A Cluster Operating System
Language Server Protocol - Why the Hype?
What's new in Eclipse Oxygen (Devoxx France 2017)
The Eclipse IDE: What's new in the 2017 release?
What every Eclipse developer should know about progress reporting and job can...
The Eclipse IDE - The Force Awakens (Devoxx France 2016)
Sirius: Graphical Editors for your DSLs
Modeling in a Team Environment with EMF Compare and EGit
Eclipse simultaneous release in a nutshell
OSGi: Don't let me be Misunderstood
EMF Compare 2.0: Scaling to Millions (updated)
EMFCompare 2.0: Scaling to Millions
3mf infinity-and-beyond
Eclipseconeurope 2011 - EMFCompare Improvements
Google Guava & EMF @ GTUG Nantes
5M lines of code migration
EMFPath
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)
Ad

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Machine learning based COVID-19 study performance prediction
PPTX
A Presentation on Artificial Intelligence
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Machine Learning_overview_presentation.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
Big Data Technologies - Introduction.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
Per capita expenditure prediction using model stacking based on satellite ima...
NewMind AI Weekly Chronicles - August'25-Week II
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Chapter 3 Spatial Domain Image Processing.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Machine learning based COVID-19 study performance prediction
A Presentation on Artificial Intelligence
Dropbox Q2 2025 Financial Results & Investor Presentation
Machine Learning_overview_presentation.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Electronic commerce courselecture one. Pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Agricultural_Statistics_at_a_Glance_2022_0.pdf
sap open course for s4hana steps from ECC to s4
Big Data Technologies - Introduction.pptx
MIND Revenue Release Quarter 2 2025 Press Release

Diff and Merge with Ease: EMF Compare