version control using subversion
play

Version Control Using Subversion 1 September 2020 OSU CSE 2 - PowerPoint PPT Presentation

Version Control Using Subversion 1 September 2020 OSU CSE 2 Version Control In team projects, software engineers: Share and extend a common code base (and comply with standards, coding conventions, comment templates, ) Work


  1. Version Control Using Subversion 1 September 2020 OSU CSE 2

  2. Version Control • In team projects, software engineers: – Share and extend a common code base (and comply with standards, coding conventions, comment templates, …) – Work concurrently with each other • Best practice is for a team to use a version control system – We will use one called Subversion , but others are essentially similar 1 September 2020 OSU CSE 3

  3. Version Control This is not limited to code! A • In team projects, software engineers: version control system can handle non-code files as well, which – Share and extend a common code base (and makes it handy for other sorts of comply with standards, coding conventions, team projects, too. comment templates, …) – Work concurrently with each other • Best practice is for a team to use a version control system – We will use one called Subversion , but others are essentially similar 1 September 2020 OSU CSE 4

  4. Key Idea: The Repository • A central repository keeps all files (in our case, Java code) and a history of all modifications to them – A new team member can check out their own private copy from the repository – Each member can update their own copy to reflect the latest changes in the repository – Each member can commit changes from their own private copy to the repository 1 September 2020 OSU CSE 5

  5. Workflow Model: An Example Matt commit update repository update commit Ayesha 1 September 2020 OSU CSE 6

  6. How Work Gets Done • Repository holds master copy of all files – Never edited directly – Stores complete history, too! • Each team member has a local copy (or working copy ) in their own workspace – All file creation, editing, deletion occurs here • Update and commit commands are used to synchronize local and master copies 1 September 2020 OSU CSE 7

  7. The “Optimistic” Model • Any team member can modify their local copy of any file at any time – No “locking” or other synchronization among team members takes place on local copies • On an update, the latest version from the repository often can be merged automatically into the local copy – This is especially so when team members edit different files, so conflicts are rare 1 September 2020 OSU CSE 8

  8. Some Things That Can Happen update commit Matt repository Ayesha 1 September 2020 OSU CSE 9

  9. Some Things That Can Happen Matt does an update to get the update latest version to work on. commit Matt repository Ayesha 1 September 2020 OSU CSE 10

  10. Some Things That Can Happen Ayesha does an update to get the update latest version to work on. commit Matt repository Ayesha 1 September 2020 OSU CSE 11

  11. Some Things That Can Happen Matt does a commit to put his latest update edits into the repository. commit Matt repository Ayesha 1 September 2020 OSU CSE 12

  12. Some Things That Can Happen Ayesha does an update to get the update latest version before she commits. commit Matt repository Ayesha 1 September 2020 OSU CSE 13

  13. Some Things That Can Happen The latest revision in the repository update is merged into Ayesha’s copy. commit Matt repository Ayesha  Merge 1 September 2020 OSU CSE 14

  14. Some Things That Can Happen Suppose this merge is successful; update then Ayesha commits. commit Matt repository Ayesha  Merge 1 September 2020 OSU CSE 15

  15. Some Things That Can Happen Matt tries to commit more changes, update but has not updated recently. commit Matt repository Ayesha  Merge 1 September 2020 OSU CSE 16

  16. Some Things That Can Happen Ayesha has committed recently, update and Matt may not do so now. commit Matt repository Ayesha  Error: working Merge version out-of-date 1 September 2020 OSU CSE 17

  17. Some Things That Can Happen Matt needs to update first. update commit Matt repository Ayesha  Error: working Merge version out-of-date 1 September 2020 OSU CSE 18

  18. Some Things That Can Happen Suppose this merge has conflicts ; update then Matt must resolve them. commit Matt repository Ayesha  Error: working Conflict: Merge version requires out-of-date attention 1 September 2020 OSU CSE 19

  19. Some Things That Can Happen After Matt resolves conflicts, he can update continue and commit his changes. commit Matt repository Ayesha  Error: working Conflict: Merge version requires out-of-date attention 1 September 2020 OSU CSE 20

  20. Some Things That Can Happen Meanwhile, Ayesha updates and update continues with the latest version. commit Matt repository Ayesha  Error: working Conflict: Merge version requires out-of-date attention 1 September 2020 OSU CSE 21

Recommend


More recommend