Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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
h...
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
h...
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...
IT IS ALL ABOUT

DIFFERENCES

© Adrian Limani
http://500px.com/photo/18438151
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...
INDEX

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

Structured Data
Comparison

© Guille Massagué Conde
http://500px...
INDEX

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

Structured Data
Comparison

© Guille Massagué Conde
http://500px...
<? XML ?>
<? XML ?>
<? TROUBLE ?>
DOM MODEL
<?xml version="1.0"?>
<project name="guice">
<target name="jar" depends="manifest">
<jar jarfile="guice-${versio...
DOM MODEL
DOCUMENT

<?xml version="1.0"?>
<project name="guice">
<target name="jar" depends="manifest">
<jar jarfile="guic...
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-${versio...
ANT MODEL
PROJECT

<?xml version="1.0"?>
<project name="guice">
<target name="jar" depends="manifest">
<jar jarfile="guice...
ANT MODEL
PROJECT

<?xml version="1.0"?>
<project name="guice">
<target name="jar" depends="manifest">
<jar jarfile="guice...
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

Structu...
INDEX

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

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

Structu...
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

M...
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...
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

REFER...
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

REFER...
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...
INDEX

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

Structured Data
Comparison

© Guille Massagué Conde
http://500px...
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

...
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 ...
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
...
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...
INDEX

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

Structured Data
Comparison

© Guille Massagué Conde
http://500px...
« 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 ...
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, O...
MIKAËL BARBERO
mikael.barbero@obeo.fr
+Mikaël Barbero
@mikbarbero

OBEO

http://www.obeo.fr
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
Diff and Merge with Ease: EMF Compare
Diff and Merge with Ease: EMF Compare
Diff and Merge with Ease: EMF Compare
Upcoming SlideShare
Loading in …5
×

Diff and Merge with Ease: EMF Compare

1,803 views

Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Diff and Merge with Ease: EMF Compare

  1. 1. 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
  2. 2. 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
  3. 3. DIFF AND MERGE WITH EASE E M F C O M PA R E Mikaël Barbero Obeo October 30th, 2013 Eclipse Con Europe
  4. 4. DIFF AND MERGE WITH EASE E M F C O M PA R E Mikaël Barbero Obeo October 30th, 2013 Eclipse Con Europe
  5. 5. © David Cornejo http://500px.com/photo/1683454
  6. 6. Who know what is EMF? © David Cornejo http://500px.com/photo/1683454
  7. 7. 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
  8. 8. IT IS ALL ABOUT DIFFERENCES © Adrian Limani http://500px.com/photo/18438151
  9. 9. E M F C O M PA R E BIRD VIEW EMF MODEL 1 EMF MODEL 2
  10. 10. E M F C O M PA R E BIRD VIEW EMF MODEL 1 EMF MODEL 2
  11. 11. 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
  12. 12. 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
  13. 13. 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
  14. 14. INTEGRATED WITH ECLIPSE TEAM PROVIDERS
  15. 15. TA G L I N E If you can inject your data within EMF, ! EMF Compare will diff and merge it for free
  16. 16. INDEX
  17. 17. INDEX © Joe @Plasmatico http://500px.com/photo/38068154 Structured Data Comparison
  18. 18. INDEX © Joe @Plasmatico http://500px.com/photo/38068154 Structured Data Comparison © Guille Massagué Conde http://500px.com/photo/42703584 Java API Evolution
  19. 19. 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
  20. 20. 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
  21. 21. <? XML ?>
  22. 22. <? XML ?> <? TROUBLE ?>
  23. 23. 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>
  24. 24. 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
  25. 25. 3… 2… 1… SHOWTIME © Christoph Ruhland http://500px.com/photo/1145370
  26. 26. 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>
  27. 27. 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
  28. 28. 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 …
  29. 29. 3… 2… 1… SHOWTIME © Christoph Ruhland http://500px.com/photo/1145370
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. C O M PA R I S O N M O D E L TEARDOWN
  34. 34. C O M PA R I S O N M O D E L TEARDOWN C O M PA R I S O N
  35. 35. 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
  36. 36. 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)
  37. 37. 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)
  38. 38. 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)
  39. 39. 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)
  40. 40. 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)
  41. 41. 3… 2… 1… SHOWTIME © Christoph Ruhland http://500px.com/photo/1145370
  42. 42. 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
  43. 43. 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
  44. 44. 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
  45. 45. 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
  46. 46. 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
  47. 47. 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
  48. 48. 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
  49. 49. 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
  50. 50. 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
  51. 51. 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
  52. 52. 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
  53. 53. 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
  54. 54. 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
  55. 55. 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
  56. 56. 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
  57. 57. 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
  58. 58. 3… 2… 1… SHOWTIME © Christoph Ruhland http://500px.com/photo/1145370
  59. 59. 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
  60. 60. 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
  61. 61. 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
  62. 62. 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
  63. 63. 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
  64. 64. 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
  65. 65. 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
  66. 66. 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
  67. 67. 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
  68. 68. 3… 2… 1… SHOWTIME © Christoph Ruhland http://500px.com/photo/1145370
  69. 69. 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
  70. 70. 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
  71. 71. « One more thing! » G R A P H I C A L C O M PA R I S O N
  72. 72. 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
  73. 73. 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
  74. 74. Q&A? © Damon Fullington http://500px.com/photo/21930711
  75. 75. 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/
  76. 76. MIKAËL BARBERO mikael.barbero@obeo.fr +Mikaël Barbero @mikbarbero OBEO http://www.obeo.fr

×