SlideShare une entreprise Scribd logo
1  sur  29
SVN
Rahul Tripathi
What is version control?
Version management allows you to control and monitor
changes to files
What changes were made?
Revert to pervious versions
When were changes made
What code was present in release 2.7?
Earliest tools were around 1972 (SCCS)
Older tools – RCS, CVS, Microsoft Source Safe, PVCS
Version Manager, etc…
Current tools – Subversion, Mercurial, Git, Bazaar
We will use subversion (svn)
Why?

Because it’s popular
It’s well supported
IDEs - Netbeans, Eclipse
Numerous GUI tools
Command line
XP Dev has support for it (you will use this for your semester
projects)
subversion concepts
checkout – get a local copy of the files
I have no files yet, how do I get them?
add – add a new file into the repository
I created a new file and want to check it in
commit – send locally modified files to the repository
I’ve made changes, how do I send them to the group?
update – update all files with latest changes
Other people made changes, how do I get them?
tag / branch – label a “release”
I want to “turn in” a set of files
Creating a new repository
Command Line:
Open command prompt
Go to a directory where you want your files to be stored
svn checkout <<location>>/svn/<<your project>>/

GUI Mac OSX SCPlugin
Adds commands to right-click menu in Finder

GUI Windows Tortoise SVN
Adds commands to right-click menu in Explorer
How to Use Version Control
checkout (first time)
(do some work, test)
update
commit
(do more work, test)
serverclient
send current revision ( n )
update your local copy with any
changes in the repo.
save your changes and log entry
check status
any changes since revision n?
(resolve conflicts)
tags
branches
trunk
Project 1
Root
Project 2
Subversion Repository Layout
tags
branches
trunk
tags
trunk
Project 1
Repository parent dir
Project 2
tags
trunk
One repository, many projects One project per repository
branches
branches
Subversion "repository"
Typically one "repository" per project.
Server can have an unlimited number of
"repositories".
/var/svn/kuclock
revision 1
(initial repo structure)
revision 2
revision 3
revision 3:
content diffs
author
date
reason for change (comment)
revision 4
"KUClock" Project Repository
revision 2:
initial project check-in
...etc...
Revision numbers
0 1 2 3
Revision number is
increased for every
transaction that
changes the repository.
Properties of a Repository
History of all changes to files and directories.
you can recover any previous version of a file
remembers "moved" and "deleted" files
Access Control
Read / write permission for users and groups
Permissions can apply to repo, directory, or file
Logging
author of the change
date of the change
reason for the change
URLs and Protocols
http://myhost.com:port/path/to/repository
Protocol:
svn
svn+ssh
http
https
file
Host name or
IP address
127.0.0.1
localhost
host:8443
optional port
number
Repository
relative
path
(1) Check Out using TortoiseSVN
Using Windows Explorer, right-click in a directory.
If not sure of path to check-out
then use Repo-browser first.
In Repo-browser, right-click on
folder or file you want to check-
out.
(1) Check out using Eclipse
Many ways to do it. Here is a simple way:
1. Switch to "SVN Repository Exploring Mode".
2. Right click and choose
New => Repository Location
3. Enter URL and (optional)
authentication info.
(1) Check out using Eclipse
Now you can browse the repository.
Choose the part you want to check-out
(usually "trunk")
Right click and choose "Check Out as..."
("Check Out as..." gives you a chance to
change local project name if you want.)
Merging
Merging from a Branch
Merge Tracking
Best Practices
Merging From a Branch
•What’s with the bug you've fixed on the bug-
fix-branch?
•What about your current development?
•You have to merge the
•changes made in the branch
•back to the main line.
RELEASE 1.0.0
BUGFIX_BRANCH
Merge back
267
RELEASE
1.0.1
Merge From a Branch via CLI
You can merge the changes from the branch
into your current working copy with the
following command:
svn merge -r 267:HEAD branchname
1)The Subversion “merge”-command.
2)The revision in which we created the branch (267) and HEAD
3) for the complete branch.
4)The branch-name you like to merge into your current
5) working copy.
Merge From a Branch via CLI
You can find the revision number when the
branch was created using the command:
svn log --verbose --stop-on-copy branchname
1) The Subversion “log”-command.
2) Print out much information (verbose).
3) Stop the log-output at the revision the branch was copied.
4) The branch-name you like to merge into your current
5) working copy.
Merge From a Branch via CLI
Extract the start point of the branch via CLI:
Merge From a Branch via CLI
Merging of a branch via CLI:
Merge From a Branch via
TortoiseSVN
Merging of a branch via TortoiseSVN:
Merge From a Branch via
TortoiseSVN
Merging of a branch via TortoiseSVN:
Merge From a Branch via
TortoiseSVN
Merging of a branch via TortoiseSVN:
Merge Tracking
Merge tracking:
•Subversion does not have any function to
track merges that have already been done,
•i.e., to prevent you to merge a branch a
second time.
•You have to do it yourself!
•Example: after merging, create a README-
merged file in the branch stating that it was merged
into trunk revision r99.
From the technical view branch and tag are the
same.
BUT:
•The intention of a tag is that it should be used as
read-only area whereas a branch is used to
continue development (interim code, bug-fixing,
release candidate etc.).
•Technically you can use a tag to continue
development and check in etc. but you shouldn’t
do it.
•So in other words the difference between a tag
and a branch is just an agreement.
Merge Warning
Developer Branches
•Separation of team members can be realized
with branches.
•One branch per team member or several
members on a branch - the decision is based
on the size of the teams.
Member 2
Main line
Member 1
Developer Branches
•Advantages using branches for team work:
•No changes during development on the main line
needed => Code stability.
•Every team member can work in its own environment.
•
•Disadvantages:
•Sometimes the mainline and the branch will diverge if
the branch lives too long.
Feature Branches
•Separation by features (one branch each).
Feature 2
Main line
Feature 1
Thank You

Contenu connexe

Tendances

Part 4 - Managing your svn repository using jas forge
Part 4  - Managing your svn repository using jas forgePart 4  - Managing your svn repository using jas forge
Part 4 - Managing your svn repository using jas forgeJasmine Conseil
 
Subversion Best Practices
Subversion Best PracticesSubversion Best Practices
Subversion Best PracticesMatt Wood
 
Subversion Overview
Subversion OverviewSubversion Overview
Subversion Overviewpolarion
 
Subversion
SubversionSubversion
Subversionthebdot1
 
Version Control and Continuous Integration
Version Control and Continuous IntegrationVersion Control and Continuous Integration
Version Control and Continuous IntegrationGeff Henderson Chang
 
SCM (Source Control Management) - Git Basic
SCM (Source Control Management) - Git Basic SCM (Source Control Management) - Git Basic
SCM (Source Control Management) - Git Basic Aman Patial
 
SVN Tutorial
SVN TutorialSVN Tutorial
SVN TutorialenggHeads
 
Practical SVN for PHP Developers
Practical SVN for PHP DevelopersPractical SVN for PHP Developers
Practical SVN for PHP DevelopersLorna Mitchell
 
SVN session from PiTechnologies
SVN session from PiTechnologies SVN session from PiTechnologies
SVN session from PiTechnologies PiTechnologies
 
Source version control using subversion
Source version control using subversionSource version control using subversion
Source version control using subversionMangesh Bhujbal
 
Version Control with SVN
Version Control with SVNVersion Control with SVN
Version Control with SVNPHPBelgium
 
Source Code Management systems
Source Code Management systemsSource Code Management systems
Source Code Management systemsxSawyer
 

Tendances (20)

Part 4 - Managing your svn repository using jas forge
Part 4  - Managing your svn repository using jas forgePart 4  - Managing your svn repository using jas forge
Part 4 - Managing your svn repository using jas forge
 
Subversion Best Practices
Subversion Best PracticesSubversion Best Practices
Subversion Best Practices
 
Subversion Overview
Subversion OverviewSubversion Overview
Subversion Overview
 
Subversion
SubversionSubversion
Subversion
 
Subversion last minute survival crash course
Subversion  last minute survival crash courseSubversion  last minute survival crash course
Subversion last minute survival crash course
 
Subversion
SubversionSubversion
Subversion
 
Subversion
SubversionSubversion
Subversion
 
Version Control and Continuous Integration
Version Control and Continuous IntegrationVersion Control and Continuous Integration
Version Control and Continuous Integration
 
SCM (Source Control Management) - Git Basic
SCM (Source Control Management) - Git Basic SCM (Source Control Management) - Git Basic
SCM (Source Control Management) - Git Basic
 
svn
svnsvn
svn
 
SVN Tutorial
SVN TutorialSVN Tutorial
SVN Tutorial
 
Version control
Version controlVersion control
Version control
 
SVN
SVNSVN
SVN
 
Practical SVN for PHP Developers
Practical SVN for PHP DevelopersPractical SVN for PHP Developers
Practical SVN for PHP Developers
 
SVN session from PiTechnologies
SVN session from PiTechnologies SVN session from PiTechnologies
SVN session from PiTechnologies
 
Source version control using subversion
Source version control using subversionSource version control using subversion
Source version control using subversion
 
Source Code management System
Source Code management SystemSource Code management System
Source Code management System
 
Version Control with SVN
Version Control with SVNVersion Control with SVN
Version Control with SVN
 
Source Code Management systems
Source Code Management systemsSource Code Management systems
Source Code Management systems
 
Servlet session 4
Servlet   session 4Servlet   session 4
Servlet session 4
 

En vedette

In what ways does your media product use conventions
In what ways does your media product use conventionsIn what ways does your media product use conventions
In what ways does your media product use conventions957755
 
How did you use media technologies in the
How did you use media technologies in theHow did you use media technologies in the
How did you use media technologies in the957755
 
Planning
PlanningPlanning
Planning957755
 
Angello module 3.9 inquiry
Angello module 3.9 inquiryAngello module 3.9 inquiry
Angello module 3.9 inquiryPhysicsKristin
 
Organisation of costume and props
Organisation of costume and propsOrganisation of costume and props
Organisation of costume and props957755
 
Michael jackson ‘beat it’.pptx
Michael jackson ‘beat it’.pptxMichael jackson ‘beat it’.pptx
Michael jackson ‘beat it’.pptx957755
 
Namiin jagsaalt 2012
Namiin jagsaalt 2012Namiin jagsaalt 2012
Namiin jagsaalt 2012GEC Mongolia
 
A2 q3 advert
A2 q3 advertA2 q3 advert
A2 q3 advert957755
 
Avdert feedback new
Avdert feedback newAvdert feedback new
Avdert feedback new957755
 
Making the advert
Making the advertMaking the advert
Making the advert957755
 
Togt 30-tb biin juram
Togt 30-tb biin juramTogt 30-tb biin juram
Togt 30-tb biin juramGEC Mongolia
 

En vedette (20)

In what ways does your media product use conventions
In what ways does your media product use conventionsIn what ways does your media product use conventions
In what ways does your media product use conventions
 
How did you use media technologies in the
How did you use media technologies in theHow did you use media technologies in the
How did you use media technologies in the
 
მასწ ინგლისურის ტესტი 2012
მასწ ინგლისურის ტესტი 2012მასწ ინგლისურის ტესტი 2012
მასწ ინგლისურის ტესტი 2012
 
Leveraging social media 2016 final
Leveraging social media 2016 finalLeveraging social media 2016 final
Leveraging social media 2016 final
 
მასწ ინგლისურის ტესტი 2014
მასწ ინგლისურის ტესტი 2014მასწ ინგლისურის ტესტი 2014
მასწ ინგლისურის ტესტი 2014
 
Planning
PlanningPlanning
Planning
 
Mi presentacion
Mi presentacionMi presentacion
Mi presentacion
 
Angello module 3.9 inquiry
Angello module 3.9 inquiryAngello module 3.9 inquiry
Angello module 3.9 inquiry
 
Literacy in Science
Literacy in Science Literacy in Science
Literacy in Science
 
Organisation of costume and props
Organisation of costume and propsOrganisation of costume and props
Organisation of costume and props
 
Michael jackson ‘beat it’.pptx
Michael jackson ‘beat it’.pptxMichael jackson ‘beat it’.pptx
Michael jackson ‘beat it’.pptx
 
Namiin jagsaalt 2012
Namiin jagsaalt 2012Namiin jagsaalt 2012
Namiin jagsaalt 2012
 
A2 q3 advert
A2 q3 advertA2 q3 advert
A2 q3 advert
 
Avdert feedback new
Avdert feedback newAvdert feedback new
Avdert feedback new
 
მასწ ინგლისურის ტესტი 2011
მასწ ინგლისურის ტესტი 2011მასწ ინგლისურის ტესტი 2011
მასწ ინგლისურის ტესტი 2011
 
მასწ ინგლისურის ტესტი 2013
მასწ ინგლისურის ტესტი 2013მასწ ინგლისურის ტესტი 2013
მასწ ინგლისურის ტესტი 2013
 
Best places in London to visit
Best places in London to visit Best places in London to visit
Best places in London to visit
 
Making the advert
Making the advertMaking the advert
Making the advert
 
“Animals and Their Young Ones”
“Animals and Their Young Ones” “Animals and Their Young Ones”
“Animals and Their Young Ones”
 
Togt 30-tb biin juram
Togt 30-tb biin juramTogt 30-tb biin juram
Togt 30-tb biin juram
 

Similaire à SVN Information

How to use CVS applied to SOLab
How to use CVS applied to SOLabHow to use CVS applied to SOLab
How to use CVS applied to SOLabPablo Arriazu
 
Subversion on .Unix
Subversion on .UnixSubversion on .Unix
Subversion on .UnixTrong Dinh
 
Subversion on .Unix
Subversion on .UnixSubversion on .Unix
Subversion on .UnixTrong Dinh
 
Slide set 7 (Source Code Management History Overview) - Copy.pptx
Slide set 7 (Source Code Management History  Overview) - Copy.pptxSlide set 7 (Source Code Management History  Overview) - Copy.pptx
Slide set 7 (Source Code Management History Overview) - Copy.pptxUTKARSHBHARDWAJ71
 
Version Control Training - First Lego League
Version Control Training - First Lego LeagueVersion Control Training - First Lego League
Version Control Training - First Lego LeagueJeffrey T. Pollock
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best PracticesAshraf Fouad
 
Git vs Subversion: ¿Cuando elegir uno u otro?
Git vs Subversion: ¿Cuando elegir uno u otro?Git vs Subversion: ¿Cuando elegir uno u otro?
Git vs Subversion: ¿Cuando elegir uno u otro?Paradigma Digital
 
Burlington, VT PHP Users Group Subversion Presentation
Burlington, VT PHP Users Group Subversion PresentationBurlington, VT PHP Users Group Subversion Presentation
Burlington, VT PHP Users Group Subversion PresentationBradley Holt
 
Git your life for fun & profit
Git your life for fun & profitGit your life for fun & profit
Git your life for fun & profitGeeks Anonymes
 
Version control with GIT
Version control with GITVersion control with GIT
Version control with GITZeeshan Khan
 
Digital Fabrication Studio v.0.2: Information
Digital Fabrication Studio v.0.2: InformationDigital Fabrication Studio v.0.2: Information
Digital Fabrication Studio v.0.2: InformationMassimo Menichinelli
 
Git and GitFlow branching model
Git and GitFlow branching modelGit and GitFlow branching model
Git and GitFlow branching modelPavlo Hodysh
 
Source Code Management Slides
Source Code Management SlidesSource Code Management Slides
Source Code Management Slidesdaschuck
 
Digital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 InformationDigital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 InformationMassimo Menichinelli
 

Similaire à SVN Information (20)

How to use CVS applied to SOLab
How to use CVS applied to SOLabHow to use CVS applied to SOLab
How to use CVS applied to SOLab
 
Subversion on .Unix
Subversion on .UnixSubversion on .Unix
Subversion on .Unix
 
Subversion on .Unix
Subversion on .UnixSubversion on .Unix
Subversion on .Unix
 
Subversion
SubversionSubversion
Subversion
 
Svn workflow
Svn workflowSvn workflow
Svn workflow
 
Slide set 7 (Source Code Management History Overview) - Copy.pptx
Slide set 7 (Source Code Management History  Overview) - Copy.pptxSlide set 7 (Source Code Management History  Overview) - Copy.pptx
Slide set 7 (Source Code Management History Overview) - Copy.pptx
 
Version Control Training - First Lego League
Version Control Training - First Lego LeagueVersion Control Training - First Lego League
Version Control Training - First Lego League
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best Practices
 
Subversion
SubversionSubversion
Subversion
 
Git vs Subversion: ¿Cuando elegir uno u otro?
Git vs Subversion: ¿Cuando elegir uno u otro?Git vs Subversion: ¿Cuando elegir uno u otro?
Git vs Subversion: ¿Cuando elegir uno u otro?
 
Burlington, VT PHP Users Group Subversion Presentation
Burlington, VT PHP Users Group Subversion PresentationBurlington, VT PHP Users Group Subversion Presentation
Burlington, VT PHP Users Group Subversion Presentation
 
ClearCase Basics
ClearCase BasicsClearCase Basics
ClearCase Basics
 
Git your life for fun & profit
Git your life for fun & profitGit your life for fun & profit
Git your life for fun & profit
 
Git your life for fun & profit
Git your life for fun & profitGit your life for fun & profit
Git your life for fun & profit
 
Version control with GIT
Version control with GITVersion control with GIT
Version control with GIT
 
Digital Fabrication Studio v.0.2: Information
Digital Fabrication Studio v.0.2: InformationDigital Fabrication Studio v.0.2: Information
Digital Fabrication Studio v.0.2: Information
 
Mercurial presentation
Mercurial presentationMercurial presentation
Mercurial presentation
 
Git and GitFlow branching model
Git and GitFlow branching modelGit and GitFlow branching model
Git and GitFlow branching model
 
Source Code Management Slides
Source Code Management SlidesSource Code Management Slides
Source Code Management Slides
 
Digital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 InformationDigital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 Information
 

Dernier

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 

Dernier (20)

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

SVN Information

  • 2. What is version control? Version management allows you to control and monitor changes to files What changes were made? Revert to pervious versions When were changes made What code was present in release 2.7? Earliest tools were around 1972 (SCCS) Older tools – RCS, CVS, Microsoft Source Safe, PVCS Version Manager, etc… Current tools – Subversion, Mercurial, Git, Bazaar
  • 3. We will use subversion (svn) Why?  Because it’s popular It’s well supported IDEs - Netbeans, Eclipse Numerous GUI tools Command line XP Dev has support for it (you will use this for your semester projects)
  • 4. subversion concepts checkout – get a local copy of the files I have no files yet, how do I get them? add – add a new file into the repository I created a new file and want to check it in commit – send locally modified files to the repository I’ve made changes, how do I send them to the group? update – update all files with latest changes Other people made changes, how do I get them? tag / branch – label a “release” I want to “turn in” a set of files
  • 5. Creating a new repository Command Line: Open command prompt Go to a directory where you want your files to be stored svn checkout <<location>>/svn/<<your project>>/  GUI Mac OSX SCPlugin Adds commands to right-click menu in Finder  GUI Windows Tortoise SVN Adds commands to right-click menu in Explorer
  • 6. How to Use Version Control checkout (first time) (do some work, test) update commit (do more work, test) serverclient send current revision ( n ) update your local copy with any changes in the repo. save your changes and log entry check status any changes since revision n? (resolve conflicts)
  • 7. tags branches trunk Project 1 Root Project 2 Subversion Repository Layout tags branches trunk tags trunk Project 1 Repository parent dir Project 2 tags trunk One repository, many projects One project per repository branches branches
  • 8. Subversion "repository" Typically one "repository" per project. Server can have an unlimited number of "repositories". /var/svn/kuclock revision 1 (initial repo structure) revision 2 revision 3 revision 3: content diffs author date reason for change (comment) revision 4 "KUClock" Project Repository revision 2: initial project check-in ...etc...
  • 9. Revision numbers 0 1 2 3 Revision number is increased for every transaction that changes the repository.
  • 10. Properties of a Repository History of all changes to files and directories. you can recover any previous version of a file remembers "moved" and "deleted" files Access Control Read / write permission for users and groups Permissions can apply to repo, directory, or file Logging author of the change date of the change reason for the change
  • 11. URLs and Protocols http://myhost.com:port/path/to/repository Protocol: svn svn+ssh http https file Host name or IP address 127.0.0.1 localhost host:8443 optional port number Repository relative path
  • 12. (1) Check Out using TortoiseSVN Using Windows Explorer, right-click in a directory. If not sure of path to check-out then use Repo-browser first. In Repo-browser, right-click on folder or file you want to check- out.
  • 13. (1) Check out using Eclipse Many ways to do it. Here is a simple way: 1. Switch to "SVN Repository Exploring Mode". 2. Right click and choose New => Repository Location 3. Enter URL and (optional) authentication info.
  • 14. (1) Check out using Eclipse Now you can browse the repository. Choose the part you want to check-out (usually "trunk") Right click and choose "Check Out as..." ("Check Out as..." gives you a chance to change local project name if you want.)
  • 15. Merging Merging from a Branch Merge Tracking Best Practices
  • 16. Merging From a Branch •What’s with the bug you've fixed on the bug- fix-branch? •What about your current development? •You have to merge the •changes made in the branch •back to the main line. RELEASE 1.0.0 BUGFIX_BRANCH Merge back 267 RELEASE 1.0.1
  • 17. Merge From a Branch via CLI You can merge the changes from the branch into your current working copy with the following command: svn merge -r 267:HEAD branchname 1)The Subversion “merge”-command. 2)The revision in which we created the branch (267) and HEAD 3) for the complete branch. 4)The branch-name you like to merge into your current 5) working copy.
  • 18. Merge From a Branch via CLI You can find the revision number when the branch was created using the command: svn log --verbose --stop-on-copy branchname 1) The Subversion “log”-command. 2) Print out much information (verbose). 3) Stop the log-output at the revision the branch was copied. 4) The branch-name you like to merge into your current 5) working copy.
  • 19. Merge From a Branch via CLI Extract the start point of the branch via CLI:
  • 20. Merge From a Branch via CLI Merging of a branch via CLI:
  • 21. Merge From a Branch via TortoiseSVN Merging of a branch via TortoiseSVN:
  • 22. Merge From a Branch via TortoiseSVN Merging of a branch via TortoiseSVN:
  • 23. Merge From a Branch via TortoiseSVN Merging of a branch via TortoiseSVN:
  • 24. Merge Tracking Merge tracking: •Subversion does not have any function to track merges that have already been done, •i.e., to prevent you to merge a branch a second time. •You have to do it yourself! •Example: after merging, create a README- merged file in the branch stating that it was merged into trunk revision r99.
  • 25. From the technical view branch and tag are the same. BUT: •The intention of a tag is that it should be used as read-only area whereas a branch is used to continue development (interim code, bug-fixing, release candidate etc.). •Technically you can use a tag to continue development and check in etc. but you shouldn’t do it. •So in other words the difference between a tag and a branch is just an agreement. Merge Warning
  • 26. Developer Branches •Separation of team members can be realized with branches. •One branch per team member or several members on a branch - the decision is based on the size of the teams. Member 2 Main line Member 1
  • 27. Developer Branches •Advantages using branches for team work: •No changes during development on the main line needed => Code stability. •Every team member can work in its own environment. • •Disadvantages: •Sometimes the mainline and the branch will diverge if the branch lives too long.
  • 28. Feature Branches •Separation by features (one branch each). Feature 2 Main line Feature 1