SlideShare une entreprise Scribd logo
1  sur  29
Subversion
SVN
Md. Maidul Islam
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 branchnamebranchname
(1) The Subversion “merge”-command.
(2) The revision in which we created the branch (267) and HEAD
for the complete branch.
(3) The branch-name you like to merge into your current
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 branchnamebranchname
(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
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 notnot 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

Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version ControlJeremy Coates
 
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...Edureka!
 
GIT presentation
GIT presentationGIT presentation
GIT presentationNaim Latifi
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git RightSven Peters
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hubVenkat Malladi
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development CodeOps Technologies LLP
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configurationKishor Kumar
 
Introduction to Git Commands and Concepts
Introduction to Git Commands and ConceptsIntroduction to Git Commands and Concepts
Introduction to Git Commands and ConceptsCarl Brown
 
What Is DevOps?
What Is DevOps?What Is DevOps?
What Is DevOps?Soumya De
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CDHoang Le
 
Introduce to Git and Jenkins
Introduce to Git and JenkinsIntroduce to Git and Jenkins
Introduce to Git and JenkinsAn Nguyen
 
UrbanCode Deploy course and product overview slides
UrbanCode Deploy course and product overview slidesUrbanCode Deploy course and product overview slides
UrbanCode Deploy course and product overview slidesIBM Rational software
 
Continuous Integration With Jenkins
Continuous Integration With JenkinsContinuous Integration With Jenkins
Continuous Integration With JenkinsEdureka!
 

Tendances (20)

Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version Control
 
Version Control
Version ControlVersion Control
Version Control
 
Git training v10
Git training v10Git training v10
Git training v10
 
Git & GitHub WorkShop
Git & GitHub WorkShopGit & GitHub WorkShop
Git & GitHub WorkShop
 
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
 
GIT presentation
GIT presentationGIT presentation
GIT presentation
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git Right
 
Git vs svn
Git vs svnGit vs svn
Git vs svn
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
 
Source Code management System
Source Code management SystemSource Code management System
Source Code management System
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configuration
 
Version control
Version controlVersion control
Version control
 
Introduction to Git Commands and Concepts
Introduction to Git Commands and ConceptsIntroduction to Git Commands and Concepts
Introduction to Git Commands and Concepts
 
What Is DevOps?
What Is DevOps?What Is DevOps?
What Is DevOps?
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
Introduce to Git and Jenkins
Introduce to Git and JenkinsIntroduce to Git and Jenkins
Introduce to Git and Jenkins
 
Devops ppt
Devops pptDevops ppt
Devops ppt
 
UrbanCode Deploy course and product overview slides
UrbanCode Deploy course and product overview slidesUrbanCode Deploy course and product overview slides
UrbanCode Deploy course and product overview slides
 
Continuous Integration With Jenkins
Continuous Integration With JenkinsContinuous Integration With Jenkins
Continuous Integration With Jenkins
 

En vedette

Application Automation with Habitat
Application Automation with HabitatApplication Automation with Habitat
Application Automation with HabitatChef
 
Jenkins vs GitLab CI
Jenkins vs GitLab CIJenkins vs GitLab CI
Jenkins vs GitLab CICEE-SEC(R)
 
Version Control With Subversion
Version Control With SubversionVersion Control With Subversion
Version Control With SubversionSamnang Chhun
 
Subversion Overview
Subversion OverviewSubversion Overview
Subversion Overviewpolarion
 
Orchestration? You Don't Need Orchestration. What You Want Is Choreography by...
Orchestration? You Don't Need Orchestration. What You Want Is Choreography by...Orchestration? You Don't Need Orchestration. What You Want Is Choreography by...
Orchestration? You Don't Need Orchestration. What You Want Is Choreography by...Docker, Inc.
 
Gitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTreeGitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTreeTeerapat Khunpech
 

En vedette (6)

Application Automation with Habitat
Application Automation with HabitatApplication Automation with Habitat
Application Automation with Habitat
 
Jenkins vs GitLab CI
Jenkins vs GitLab CIJenkins vs GitLab CI
Jenkins vs GitLab CI
 
Version Control With Subversion
Version Control With SubversionVersion Control With Subversion
Version Control With Subversion
 
Subversion Overview
Subversion OverviewSubversion Overview
Subversion Overview
 
Orchestration? You Don't Need Orchestration. What You Want Is Choreography by...
Orchestration? You Don't Need Orchestration. What You Want Is Choreography by...Orchestration? You Don't Need Orchestration. What You Want Is Choreography by...
Orchestration? You Don't Need Orchestration. What You Want Is Choreography by...
 
Gitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTreeGitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTree
 

Similaire à SVN Tool Information : Best Practices

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
 
Subversion
SubversionSubversion
Subversionrchakra
 
Source version control using subversion
Source version control using subversionSource version control using subversion
Source version control using subversionMangesh Bhujbal
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best PracticesAshraf Fouad
 
Practical SVN for PHP Developers
Practical SVN for PHP DevelopersPractical SVN for PHP Developers
Practical SVN for PHP DevelopersLorna Mitchell
 
Totalsvn Usage And Administration By Gopi
Totalsvn Usage And Administration By GopiTotalsvn Usage And Administration By Gopi
Totalsvn Usage And Administration By Gopigopinathkarangula
 
Subversion
SubversionSubversion
Subversionthebdot1
 
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
 
Git and GitFlow branching model
Git and GitFlow branching modelGit and GitFlow branching model
Git and GitFlow branching modelPavlo Hodysh
 
Linux13 concurrent versions system
Linux13 concurrent versions systemLinux13 concurrent versions system
Linux13 concurrent versions systemJainul Musani
 
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
 
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
 

Similaire à SVN Tool Information : Best Practices (20)

SVN Information
SVN Information  SVN Information
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 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
 
Source version control using subversion
Source version control using subversionSource version control using subversion
Source version control using subversion
 
Subversion
SubversionSubversion
Subversion
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best Practices
 
Practical SVN for PHP Developers
Practical SVN for PHP DevelopersPractical SVN for PHP Developers
Practical SVN for PHP Developers
 
Svn workflow
Svn workflowSvn workflow
Svn workflow
 
Totalsvn Usage And Administration By Gopi
Totalsvn Usage And Administration By GopiTotalsvn Usage And Administration By Gopi
Totalsvn Usage And Administration By Gopi
 
Subversion
SubversionSubversion
Subversion
 
Subversion
SubversionSubversion
Subversion
 
ClearCase Basics
ClearCase BasicsClearCase Basics
ClearCase Basics
 
Version Control Training - First Lego League
Version Control Training - First Lego LeagueVersion Control Training - First Lego League
Version Control Training - First Lego League
 
Git and GitFlow branching model
Git and GitFlow branching modelGit and GitFlow branching model
Git and GitFlow branching model
 
Subversion
SubversionSubversion
Subversion
 
Linux13 concurrent versions system
Linux13 concurrent versions systemLinux13 concurrent versions system
Linux13 concurrent versions system
 
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?
 
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
 

Dernier

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
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
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
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
 
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
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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
 

Dernier (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
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
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

SVN Tool Information : Best Practices

  • 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 branchnamebranchname (1) The Subversion “merge”-command. (2) The revision in which we created the branch (267) and HEAD for the complete branch. (3) The branch-name you like to merge into your current 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 branchnamebranchname (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 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 notnot 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

Notes de l'éditeur

  1. Subversion Revision numbers are global across the whole repository Identify how the entire repository looks at that instant in time A commit creates a snapshot of the entire tree in the repository at that revision number Allows users to say, “Hey so-and-so, go get revision 1432 of XYZ and try to compile it.” Before an update, both bar.c and foo.c are at revision 25 Modify bar.c and commit Then update the working copy Now bar.c and foo.c are at revision 26, except that foo.c in revision 25 and 26 are identical No additional space in repository required, i.e. a cheap copy or a symbolic link is made