Top Banner
Version Control Systems: Subversion Version Control Systems: Subversion Miguel A. Figueroa Villanueva Xabriel J. Collazo Mojica Miguel A. Figueroa Villanueva Electrical and Computer Engineering Department University of Puerto Rico – Mayagüez Campus 1
24

Version Control Systems: Subversion - UPRM

Feb 09, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Version Control Systems: Subversion - UPRM

Version Control Systems: SubversionVersion Control Systems: Subversion

Miguel A. Figueroa VillanuevaXabriel J. Collazo Mojicaj

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus 1

Page 2: Version Control Systems: Subversion - UPRM

OutlineIntroduction

Document managementCMSWikiAigaionCode and Document Repositories

V i C t l S tVersion Control SystemsCentralizedDistributed

U i S h i iUnison Synchronization

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus 2

Page 3: Version Control Systems: Subversion - UPRM

Document ManagementContent Management System (CMS)

Manage content:DocumentsMultimedia files: images, videos, etc.Web content in general

Basic principles:S ti f t t d t tiSeparation of content and presentationIntuitive web-based interface for uploading, editing, and managing contentFoster collaboration among teams

WikipediaWikipediaArticles written collaboratively by volunteers around the world.Most content can be edited by anyone.

Difference between wiki and blog?Difference between wiki and blog?Aigaion - http://www.aigaion.nl

A Web based bibliography management system.

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus 3

Page 4: Version Control Systems: Subversion - UPRM

Document ManagementCode and Document Repositories: Version Control Systems (VCS)

You might already have it:Resume200708.docResume200801.docEtc.

Or maybe something more sophisticated:P t 1Proyecto_ver1Proyecto_finalProyecto_final2

This doesn’t work!! Not for software projects at leastThis doesn t work!! Not for software projects, at least…

4

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus

Page 5: Version Control Systems: Subversion - UPRM

Version Control Systems (VCS)Backup and Restore – You backup your files in a repository and checkout a working copy.Synchronization – Share files with team members; by more sophisticated methods than e-mail and a pen drive!Track ownership – Files are tagged with log messages and author/developer IDs.Track changes – You have a history of your files with log messages.Undo changes – Go back in time to any point!g y pBranch and merge – Create a sandbox to work in without interrupting your teams work.

5

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus

Page 6: Version Control Systems: Subversion - UPRM

Version Control Systems (VCS)Centralized VCS

CVSSVN – Subversion: “CVS done right”.Perforceetc.

Distributed VCSSVKGitMercurialetc.

6

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus

Page 7: Version Control Systems: Subversion - UPRM

Centralized VCS – Basic InteractionJuan and Elena want to work on the database project, but they don’t want to e-mail / pen drive each other every change.They decide to use a Centralized VCS.

Juan “imports” the first version. Now a common copy is available for all users.Elena “checks out” a working copy. She makes changes and “commits”.Juan makes changes too but before “committing” he “updates” hisJuan makes changes too, but before committing , he updates his working copy.Bosses (aka Nayda and Fernando) don’t do work (as usual ☺), but they are always watching progress So he makes a “checkout” andthey are always watching progress. So, he makes a checkout and “updates” frequently.

7

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus

Page 8: Version Control Systems: Subversion - UPRM

Centralized VCS – Basic InteractionImport – Put a project in Version Control for the first time.

Check-out – Get a “working copy” from the repo.g py p

Commit = Check-in – Put changes on the repo.

Update – Get latest changes from the repo.

8

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus

Page 9: Version Control Systems: Subversion - UPRM

Centralized VCS – Basic Scenario

Suppose we have a file list.txtThe image represents four revisions checked in.

Photo taken from: Better Explained [1] 9

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus

Page 10: Version Control Systems: Subversion - UPRM

Centralized VCS – Basic Work Cycle

10

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus

Photo taken from: Better Explained [1]

Page 11: Version Control Systems: Subversion - UPRM

Centralized VCS – Basic Work Cycle

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus 11Photo taken from: Better Explained [1]

Page 12: Version Control Systems: Subversion - UPRM

Centralized VCS – Basic Work Cycle

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus 12Photo taken from: Better Explained [1]

Page 13: Version Control Systems: Subversion - UPRM

Centralized VCS – Advanced Work Cycle

13

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus

Photo taken from: Better Explained [1]

Page 14: Version Control Systems: Subversion - UPRM

Subversion: Tools and ResourcesTortoiseSVN - http://tortoisesvn.tigris.org

Easy to use svn GUI software for windoze.Subclipse - http://subclipse.tigris.org/install.html

Eclipse SVN Plugin by developers of subversion.

Version Control with Subversion - http://svnbook.red-bean.comVersion Control with Subversion http://svnbook.red bean.comFree on-line book by O’Reilly

14

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus

Page 15: Version Control Systems: Subversion - UPRM

Subversion: Experimental Repo SetupICOM 5047 Subversion access (Remote URL):https://capstone.ece.uprm.edu/svnroot/experimental/<project>

Will follow conventional structure:/project/trunk

/branches

/tags

Go to the following address to make the request:https://cga.ece.uprm.edu/admin/send_password_form.html

Requested resource field:“capstone repo: <desired_repo_name>”Reference field:e.g., “Nayda Santiago” or “Fernando Vega”

15

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus

Page 16: Version Control Systems: Subversion - UPRM

Subversion: Best PracticesAlways update BEFORE committing.If after updating there are conflicts, its YOUR duty to solve them.Always commit WORKING code.y

NEVER break the code in the trunk.Use branches for long term development cycles that will break the code.

Always append COMMENTS (log messages) to your commits.Always append COMMENTS (log messages) to your commits.

I t h t itti Pl b NEVER tInspect what you are committing. Please remember NEVER to include auto-generated files, such as *.class binaries.

16

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus

Page 17: Version Control Systems: Subversion - UPRM

Distributed VCS (DVCS)New trend in VCSMany distributed VCS server/clients.Linus Torvalds - http://www.youtube.com/watch?v=4XpnKHJAok8p y p

Very biased, opinionated, and demeaning perspective about non-DVCS users, but useful information never the less.

17

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus

Page 18: Version Control Systems: Subversion - UPRM

VCS vs DVCS – DifferencesPros

Allows disconnected (off-line) operations with the repository, since every client contains a copy of the entire repository.Branches are natural and don’t have to be published.Merge algorithms are more robust.

ConsDevelopers can run off and hide for too long…

then merging becomes overwhelmingly difficult.It is not centralized! Who has the official version of the repository?Graphical tools (GUIs) are still lacking a bit.

A compromise: Benefit from both models using DVCS tools.You can implement a good policy that enforces a centralized model and frequent commits, while taking advantage of the DVCS distributed tools fl ibilitflexibility.

18

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus

Page 19: Version Control Systems: Subversion - UPRM

VCS vs DVCS – Differences

Photo taken from: Better Explained [1]19Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus

Page 20: Version Control Systems: Subversion - UPRM

VCS vs DVCS – Differences

Photo taken from: Better Explained [1]20Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus

Page 21: Version Control Systems: Subversion - UPRM

Unison SynchronizationNot everything worth backing up is worth saving with history…Unison - http://www.cis.upenn.edu/~bcpierce/unison

File-synchronization tool for Unix and Windows.All li f ll i f fil d di i b d diffAllows two replicas of a collection of files and directories to be stored on different hosts (or different disks on the same host), modified separately, and then brought up to date by propagating the changes in each replica to the other.

21

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus

Page 22: Version Control Systems: Subversion - UPRM

ConclusionsSome tools where presented to help manage your documents and code files.You should start using software such as these to prevent chaos and disaster. It should be second nature after a while and very rewarding.Everyone here is required to have at least there code in a Subversion repository, which will be created when requested through the form presented previously.

22

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus

Page 23: Version Control Systems: Subversion - UPRM

References[1] Better Explained

http://betterexplained.com/articles/a-visual-guide-to-version-controlhttp://betterexplained.com/articles/intro-to-distributed-version-control-illustrated

23

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus

Page 24: Version Control Systems: Subversion - UPRM

Questions?

24

Miguel A. Figueroa VillanuevaElectrical and Computer Engineering DepartmentUniversity of Puerto Rico – Mayagüez Campus