SlideShare a Scribd company logo
1 of 32
VCS




      A ndrea Salicetti
Today we'll talk about...
Ἡράκλειτος
                                                          “T he only constant
                                                               is c h a n g e ”




Eraclito from Epheso, philosopher – 535 b.C. - 475 a.C.




                   VCS manage c h a n g e s
How?

They allow teams to collaborate


                               Who cares?
                              I work alone!
                                  (with my code)
Case study “lonley developer”
“L onley D ev already released version 1.0 of his “great A pp”, that now is in production.
H e's working on the code of the next version (2.0) since a couple of weeks.

L onley D ev is very happy, since he removed a lot of duplications from his code and – even if
   currently “Great A pp” doesn't work at all due to the refactoring of some parts – he plans
   to release the next greatest and stable version (2.0) within a couple of weeks.

Suddenly the phone rings... “
Case study “lonley developer”
         “H ello?“
                                                                “H i there, H ere's C ustomer.
                                                        W e hav found a critical bug on 1.0! “
         WTF !

                                                                    ... sorry?
          Nope ...
D         What's                                                      Well, ...
 e          that?                                                                                C
                                                                        blah,
                                                                       blah,                      u
                                                                       blah,...                   s
e                                           5 minutes later
           OMG .                                                ... blah, blah, blah,
o                                                             ... r e a l l y serious ...        o
             ..                                                                                  m
p                                                                     blah, blah ...
        ... I see... I can fix it for the                                                        e
e                     next rel.
       U will have it within 2 weeks,                     R U kidding? We need it
                        ok?                                        N O W!

             Of
          FUCK! .
            course                                                     Have a
               ..                                                      nice day!
Case study “lonley developer”
                             Solutions



  E x p e r ie n c e d                         N o o b ie
            LD                                     LD
 He ha s a c opy
         o f 1. 0                  Loos e
                                    fa c e                  Loos e
                                   “Wait for                 w ork
                                     2.0”

            ... but twice effort
             to fix also in 2.0
How?

VCS allow teams to collaborate
                                  ( yes L D dude, even you with your brain...)

VCS manage change and allow for inspection
  by tracking ownership
  by tracking evolution of changes
  by allowing for branching
  by allowing for continuous integration
VCS Taxonomy

            VCS




            Centraliz    Distribute
 Local
               ed              d



SCCS       CVS          Git
RCS        SVN          Mercurial
Local VCS
Who cares?
Come on...
...neither you still use them!




        L e t’ s d ra w a
         v e il
VCS Taxonomy

             VCS




            Centraliz    Distribute
 Local
               ed              d



SCCS       CVS          Git
RCS        SVN          Mercurial
Centralized VCS

Client / Server                       R e p o s it o
                                            ry

                                  t                          co
                               mi                              mm




                                         commit
                            m                                    it
                          co




                                                  checkout
                      t                                               ch
                   ou                                                   ec
                ck                                                         ko
             he                                                              ut
            c
      Ann                                Ben
  D e v e lo p e                      D e v e lo p e                              Yo u r
        r 's                                r 's                                  lo c a l
     lo c a l                            lo c a l                                  c opy
      c opy                               c opy
Centralized VCS
Single server with revision information
Clients c h e c k o u t a working copy locally
Most operations happen on the server
Linear revision history
Centralized VCS

R e p o s it o r y :                  R e p o s it o
                                            ry
Keeps versions histories.
Holds official version of resources
Differences between versions as delta
checkout & commit




                             TIME
                                                   R e p o s it o r y
                                               index.html          (ver
      Wo r k s p a c e




                                          ut
                                                 1.2)




                                         ko
                                               page1.html          (ver




                                         ec
*index.html (ver 1.2(ver
 index.html            -
                                                 1.32)




                                     ch
  modified)
   1.2)
 page1.html (ver 1.32)                         style.css      (ver 1.4)
 page1.html           (ver
*style.css    (ver 1.4 –
   1.32)
  modified)
 style.css
*page2.html(new)(ver 1.4)




                                                   R e p o s it o r y
                               co



                                               index.html          (ver
                                    mm



                                                 1.3)
                                     it



                                               page1.html          (ver
                                                 1.32)
                                               style.css      (ver 1.5)
                                               page2.html          (ver
                                                 1.1)
checkout & commit
checkout: with this command, one can summon files or sets of files
  from the repository based on date, tag, branch, or any of a number of other
  criteria.

commit: with this command, one can summon files or sets of files from
  the repository based on date, tag, branch, or any of a number of other
  criteria.

update: will automatically bring your workspace up-to-date with the latest
  (or however you specify) files from the
  repository, automatically merging non-exclusive
  changes between files and initiating conflict resolution if necessary. Updates
  involving conflicts solicit information from the user how they wish to have a
  conflict resolve.
update




                                    TIME
        Wo r k s p a c e

 index.html     (ver 1.2)
 page1.html     (ver 1.32)
*style.css      (ver 1.14 –
  modified)
*page2.html(ver 1.1 – modified)                                R e p o s it o r y
*page3.html(new)
                                                           index.html          (ver
                                                             1.4)
                                                           page1.html          (ver
                                                             1.32)
       Wo r k s p a c e



                                                 te
                                                           style.css      (ver 1.15)


                                              da
                                                           page2.html          (ver
 index.html     (ver 1.4 –                 up                1.2)
  updated)                                                 image.png      (ver 1.3)
 page1.html     (ver 1.32)
*style.css      (ver 1.14 –
  conflict)
*page2.html(ver 1.2 – updated
                     & still
                                                      Changed in the meanwhile
  modified)                                           by other developers...
*page3.html(new)
 image.png (ver 1.1– updated)
DEMO
VCS Taxonomy

            VCS




            Centraliz     Distribute
 Local
               ed               d



SCCS       CVS          Git
RCS        SVN          Mercurial
Distributed VCS  co
                                m
                                m
                                i
                                tB e n
                              D e v e lo p e
Peer-to-Peer                        r 's
                                 node

                      ll




                                                pu
                                          pu
                              sh
                     pu




                                                   sh
                                           ll
                                                                 co
                           pu
     co
                 /

                                                                  m




                                                     /
       m




                                               /
                          /
              sh




                                                        pu
                                                                  m




                                                pu
       m
                     ll
            pu




                                                         ll
                                                   sh
                   pu



       i                                                          i
       tA n n              push / pull                            t
    D e v e lo p e                                      Yo u r
          r's              pull / push                  node
       node
Distributed VCS
Every client has a copy of the full repository locally
All repository operations are local (except sharing)
Intelligent network operations when sharing content
A very non linear revision history
Large online communities to share changes
Distributed VCS
                     B r a n c h p a r ty!
M e r g e = weaving together two (or more)
 local branches into one.

Creating and destroying branches are simple
  operations so it's easy to experimen with
  new ideas.

Very easy to isolate changes.

Unlike CVCS, you don't have to specify
 anything about where you're merging from
 and to; the trees automatically know what
 their split point was in the past.
DVCS vs CVCS
C o lla b o r a t io n


  Developers can easily collaborate directly without
   needing a central authority or dealing with server
   administration costs
DVCS vs CVCS
O f f -lin e o p e r a t io n s


  Developers can still be productive and not
   worry about a central server going down...
   (remember the days of complaining that
     CVS was down and you couldn't work?)
Let's stop ...
... we won't use
  Git by now ...


    ;__;
IDE Facilities
F ile a n n o t a t io n s




Allows you to see who changed what when, line by line.

Useful for tracking bugs and responsability.

Can be used in combination with diff and history for even more info.
DEMO
Conclusion
                        - The future of version control.
           VCS          - Lesson learned at Eclipse & Linux
                        - Version controller enables nice
                          code review workflow.




          Centraliz     Distribute
 Local
             ed               d



SCCS      CVS         Git
RCS       SVN         Mercurial
Thanks!
(now you can wake up...)

More Related Content

Viewers also liked

What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great InfographicsSlideShare
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingContent Marketing Institute
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...SlideShare
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShareSlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShareSlideShare
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

Viewers also liked (8)

What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great Infographics
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
 
You Suck At PowerPoint!
You Suck At PowerPoint!You Suck At PowerPoint!
You Suck At PowerPoint!
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Similar to VCS Manage Change

Inside Rawkets - onGameStart
Inside Rawkets - onGameStartInside Rawkets - onGameStart
Inside Rawkets - onGameStartRobin Hawkes
 
QC Merge 2012: Growing community
QC Merge 2012: Growing communityQC Merge 2012: Growing community
QC Merge 2012: Growing communityLB Denker
 
Browserscene: Creating demos on the Web
Browserscene: Creating demos on the WebBrowserscene: Creating demos on the Web
Browserscene: Creating demos on the WebRobin Hawkes
 
Webinar - Q2 2010 - Leveraging MS SharePoint for Your Online Marketing Initia...
Webinar - Q2 2010 - Leveraging MS SharePoint for Your Online Marketing Initia...Webinar - Q2 2010 - Leveraging MS SharePoint for Your Online Marketing Initia...
Webinar - Q2 2010 - Leveraging MS SharePoint for Your Online Marketing Initia...daysoftware
 
WebSockets - Embracing the real-time Web
WebSockets - Embracing the real-time WebWebSockets - Embracing the real-time Web
WebSockets - Embracing the real-time WebRobin Hawkes
 

Similar to VCS Manage Change (7)

Context Mapping In Action
Context Mapping In ActionContext Mapping In Action
Context Mapping In Action
 
Inside Rawkets - onGameStart
Inside Rawkets - onGameStartInside Rawkets - onGameStart
Inside Rawkets - onGameStart
 
QC Merge 2012: Growing community
QC Merge 2012: Growing communityQC Merge 2012: Growing community
QC Merge 2012: Growing community
 
Browserscene: Creating demos on the Web
Browserscene: Creating demos on the WebBrowserscene: Creating demos on the Web
Browserscene: Creating demos on the Web
 
Webinar - Q2 2010 - Leveraging MS SharePoint for Your Online Marketing Initia...
Webinar - Q2 2010 - Leveraging MS SharePoint for Your Online Marketing Initia...Webinar - Q2 2010 - Leveraging MS SharePoint for Your Online Marketing Initia...
Webinar - Q2 2010 - Leveraging MS SharePoint for Your Online Marketing Initia...
 
WebSockets - Embracing the real-time Web
WebSockets - Embracing the real-time WebWebSockets - Embracing the real-time Web
WebSockets - Embracing the real-time Web
 
HLABC Forum: Summer 2008
HLABC Forum: Summer 2008HLABC Forum: Summer 2008
HLABC Forum: Summer 2008
 

Recently uploaded

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Recently uploaded (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

VCS Manage Change

  • 1. VCS A ndrea Salicetti
  • 2. Today we'll talk about...
  • 3. Ἡράκλειτος “T he only constant is c h a n g e ” Eraclito from Epheso, philosopher – 535 b.C. - 475 a.C. VCS manage c h a n g e s
  • 4. How? They allow teams to collaborate Who cares? I work alone! (with my code)
  • 5.
  • 6. Case study “lonley developer” “L onley D ev already released version 1.0 of his “great A pp”, that now is in production. H e's working on the code of the next version (2.0) since a couple of weeks. L onley D ev is very happy, since he removed a lot of duplications from his code and – even if currently “Great A pp” doesn't work at all due to the refactoring of some parts – he plans to release the next greatest and stable version (2.0) within a couple of weeks. Suddenly the phone rings... “
  • 7. Case study “lonley developer” “H ello?“ “H i there, H ere's C ustomer. W e hav found a critical bug on 1.0! “ WTF ! ... sorry? Nope ... D What's Well, ... e that? C blah, blah, u blah,... s e 5 minutes later OMG . ... blah, blah, blah, o ... r e a l l y serious ... o .. m p blah, blah ... ... I see... I can fix it for the e e next rel. U will have it within 2 weeks, R U kidding? We need it ok? N O W! Of FUCK! . course Have a .. nice day!
  • 8.
  • 9. Case study “lonley developer” Solutions E x p e r ie n c e d N o o b ie LD LD He ha s a c opy o f 1. 0 Loos e fa c e Loos e “Wait for w ork 2.0” ... but twice effort to fix also in 2.0
  • 10.
  • 11. How? VCS allow teams to collaborate ( yes L D dude, even you with your brain...) VCS manage change and allow for inspection by tracking ownership by tracking evolution of changes by allowing for branching by allowing for continuous integration
  • 12. VCS Taxonomy VCS Centraliz Distribute Local ed d SCCS CVS Git RCS SVN Mercurial
  • 13. Local VCS Who cares? Come on... ...neither you still use them! L e t’ s d ra w a v e il
  • 14. VCS Taxonomy VCS Centraliz Distribute Local ed d SCCS CVS Git RCS SVN Mercurial
  • 15. Centralized VCS Client / Server R e p o s it o ry t co mi mm commit m it co checkout t ch ou ec ck ko he ut c Ann Ben D e v e lo p e D e v e lo p e Yo u r r 's r 's lo c a l lo c a l lo c a l c opy c opy c opy
  • 16. Centralized VCS Single server with revision information Clients c h e c k o u t a working copy locally Most operations happen on the server Linear revision history
  • 17. Centralized VCS R e p o s it o r y : R e p o s it o ry Keeps versions histories. Holds official version of resources Differences between versions as delta
  • 18. checkout & commit TIME R e p o s it o r y index.html (ver Wo r k s p a c e ut 1.2) ko page1.html (ver ec *index.html (ver 1.2(ver index.html - 1.32) ch modified) 1.2) page1.html (ver 1.32) style.css (ver 1.4) page1.html (ver *style.css (ver 1.4 – 1.32) modified) style.css *page2.html(new)(ver 1.4) R e p o s it o r y co index.html (ver mm 1.3) it page1.html (ver 1.32) style.css (ver 1.5) page2.html (ver 1.1)
  • 19. checkout & commit checkout: with this command, one can summon files or sets of files from the repository based on date, tag, branch, or any of a number of other criteria. commit: with this command, one can summon files or sets of files from the repository based on date, tag, branch, or any of a number of other criteria. update: will automatically bring your workspace up-to-date with the latest (or however you specify) files from the repository, automatically merging non-exclusive changes between files and initiating conflict resolution if necessary. Updates involving conflicts solicit information from the user how they wish to have a conflict resolve.
  • 20. update TIME Wo r k s p a c e index.html (ver 1.2) page1.html (ver 1.32) *style.css (ver 1.14 – modified) *page2.html(ver 1.1 – modified) R e p o s it o r y *page3.html(new) index.html (ver 1.4) page1.html (ver 1.32) Wo r k s p a c e te style.css (ver 1.15) da page2.html (ver index.html (ver 1.4 – up 1.2) updated) image.png (ver 1.3) page1.html (ver 1.32) *style.css (ver 1.14 – conflict) *page2.html(ver 1.2 – updated & still Changed in the meanwhile modified) by other developers... *page3.html(new) image.png (ver 1.1– updated)
  • 21. DEMO
  • 22. VCS Taxonomy VCS Centraliz Distribute Local ed d SCCS CVS Git RCS SVN Mercurial
  • 23. Distributed VCS co m m i tB e n D e v e lo p e Peer-to-Peer r 's node ll pu pu sh pu sh ll co pu co / m / m / / sh pu m pu m ll pu ll sh pu i i tA n n push / pull t D e v e lo p e Yo u r r's pull / push node node
  • 24. Distributed VCS Every client has a copy of the full repository locally All repository operations are local (except sharing) Intelligent network operations when sharing content A very non linear revision history Large online communities to share changes
  • 25. Distributed VCS B r a n c h p a r ty! M e r g e = weaving together two (or more) local branches into one. Creating and destroying branches are simple operations so it's easy to experimen with new ideas. Very easy to isolate changes. Unlike CVCS, you don't have to specify anything about where you're merging from and to; the trees automatically know what their split point was in the past.
  • 26. DVCS vs CVCS C o lla b o r a t io n Developers can easily collaborate directly without needing a central authority or dealing with server administration costs
  • 27. DVCS vs CVCS O f f -lin e o p e r a t io n s Developers can still be productive and not worry about a central server going down... (remember the days of complaining that CVS was down and you couldn't work?)
  • 28. Let's stop ... ... we won't use Git by now ... ;__;
  • 29. IDE Facilities F ile a n n o t a t io n s Allows you to see who changed what when, line by line. Useful for tracking bugs and responsability. Can be used in combination with diff and history for even more info.
  • 30. DEMO
  • 31. Conclusion - The future of version control. VCS - Lesson learned at Eclipse & Linux - Version controller enables nice code review workflow. Centraliz Distribute Local ed d SCCS CVS Git RCS SVN Mercurial
  • 32. Thanks! (now you can wake up...)