Study of Tree Conflict Handling in Selected Modern Version Control Systems, with the Goal of Providing Guidelines for Subversion

Study of Tree Conflict Handling in Selected Modern Version Control Systems, with the Goal of Providing Guidelines for Subversion

Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Study of tree conflict handling in selected modern version control systems, with the goal of providing guidelines for Subversion’s new working copy library ”wc-ng” (Introductory presentation) Stefan Sperling Free University of Berlin June 13, 2008 Stefan Sperling Free University of Berlin Tree Conflicts Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! 1 Introduction 2 What are tree conflicts? 3 The problem 4 The plan 5 Modelling tree conflicts 6 Results so far 7 That was it! Stefan Sperling Free University of Berlin Tree Conflicts Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Who am I? Stefan Sperling Studying at inf.fu-berlin.de since 2004. Subversion developer since 2007. Been working on Subversion’s “tree-conflicts” branch and other areas. Stefan Sperling Free University of Berlin Tree Conflicts Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Revision control basics Does everybody know what these terms mean? working copy repository updating committing branching feature branch, release branch trunk a.k.a. “main line” merging text conflict I can explain them now if you want me to. I will lose you after this slide if you don’t know this stuff! Stefan Sperling Free University of Berlin Tree Conflicts Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! What are tree conflicts? Conflicts at the level of directory tree structure. If not handled properly by your revision control tool, they can: Lead to local modifications being lost accidentally. Lead to whole files or directories being lost accidentally. Stefan Sperling Free University of Berlin Tree Conflicts Sally deletes the same file in her working copy. Sally commits. You update. What do you think should happen in your working copy now? Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Example tree conflict scenario You modify a file in your working copy. Stefan Sperling Free University of Berlin Tree Conflicts Sally commits. You update. What do you think should happen in your working copy now? Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Example tree conflict scenario You modify a file in your working copy. Sally deletes the same file in her working copy. Stefan Sperling Free University of Berlin Tree Conflicts You update. What do you think should happen in your working copy now? Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Example tree conflict scenario You modify a file in your working copy. Sally deletes the same file in her working copy. Sally commits. Stefan Sperling Free University of Berlin Tree Conflicts What do you think should happen in your working copy now? Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Example tree conflict scenario You modify a file in your working copy. Sally deletes the same file in her working copy. Sally commits. You update. Stefan Sperling Free University of Berlin Tree Conflicts Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Example tree conflict scenario You modify a file in your working copy. Sally deletes the same file in her working copy. Sally commits. You update. What do you think should happen in your working copy now? Stefan Sperling Free University of Berlin Tree Conflicts Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Example tree conflict scenario How does Mercurial 1.0 handle this case? Stefan Sperling Free University of Berlin Tree Conflicts Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Example tree conflict scenario added 1 changesets with 0 changes to 0 files (run ’hg update’ to get a working copy) $ hg update local changed foo.c which remote deleted use (c)hanged version or (d)elete? It detects the tree conflict and asks us how to proceed. Stefan Sperling Free University of Berlin Tree Conflicts Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Example tree conflict scenario How does Subversion 1.5 handle this case? Stefan Sperling Free University of Berlin Tree Conflicts Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Example tree conflict scenario $ svn status M foo.c $ svn update D foo.c Updated to revision 2. $ svn status ? foo.c foo.c fell out of version control! Clearly, there is room for improvement. Stefan Sperling Free University of Berlin Tree Conflicts You rename foo.c to baz.c in your working copy. Note that the target locations of both moves differ. Sally commits. You update. What do you think should happen in your working copy now? Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Another example Sally renames foo.c to bar.c in her working copy. Stefan Sperling Free University of Berlin Tree Conflicts Note that the target locations of both moves differ. Sally commits. You update. What do you think should happen in your working copy now? Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Another example Sally renames foo.c to bar.c in her working copy. You rename foo.c to baz.c in your working copy. Stefan Sperling Free University of Berlin Tree Conflicts Sally commits. You update. What do you think should happen in your working copy now? Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Another example Sally renames foo.c to bar.c in her working copy. You rename foo.c to baz.c in your working copy. Note that the target locations of both moves differ. Stefan Sperling Free University of Berlin Tree Conflicts You update. What do you think should happen in your working copy now? Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Another example Sally renames foo.c to bar.c in her working copy. You rename foo.c to baz.c in your working copy. Note that the target locations of both moves differ. Sally commits. Stefan Sperling Free University of Berlin Tree Conflicts What do you think should happen in your working copy now? Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Another example Sally renames foo.c to bar.c in her working copy. You rename foo.c to baz.c in your working copy. Note that the target locations of both moves differ. Sally commits. You update. Stefan Sperling Free University of Berlin Tree Conflicts Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Another example Sally renames foo.c to bar.c in her working copy. You rename foo.c to baz.c in your working copy. Note that the target locations of both moves differ. Sally commits. You update. What do you think should happen in your working copy now? Stefan Sperling Free University of Berlin Tree Conflicts Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Another example How does Subversion 1.5 handle this case? Stefan Sperling Free University of Berlin Tree Conflicts Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Another example $ svn mv foo.c baz.c A baz.c D foo.c $ svn update D foo.c A bar.c Updated to revision 2. $ svn status A + baz.c $ ls bar.c baz.c $ svn ci -m "log message" Adding baz.c Committed revision 3. Stefan Sperling Free University of Berlin Tree Conflicts Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Another example The same file content now lives at two different locations. Clearly, there is room for improvement. Stefan Sperling Free University of Berlin Tree Conflicts Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Another example How does Mercurial 1.0 handle this case? Stefan Sperling Free University of Berlin Tree Conflicts Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Another example $ hg rename foo.c baz.c $ hg pull /home/sally/repo pulling from /home/sally/repo added 1 changesets with 1 changes to 1 files (run ’hg update’ to get a working copy) $ hg update warning: detected divergent renames of foo.c to: baz.c bar.c $ hg status A baz.c $ ls bar.c baz.c Stefan Sperling Free University of Berlin Tree Conflicts Outline Introduction What are tree conflicts? The problem The plan Modelling tree conflicts Results so far That was it! Another example It prints a warning.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    56 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us