Subversion User Manual
Subversion User Manual
Version 1.4.5
Installing TortoiseSVN
Click here to download the latest version of the Installer of 32bit TortoiseSVN Or Copy/paste the following link to your web-browser: http://tortoisesvn.net/downloads Once you have downloaded the TortoiseSVN client, you need to install this client on your system. Here are the steps to install TortoiseSVN client: Locate the path where you have downloaded TortoiseSVN installer. After the installation from the .msi file, you can start using TortoiseSVN. But a restart is recommended.
Repository: A repository is a place where data is stored and maintained.Usually it is stored on the main server which contains data of all the projects. A client/user requires to access the repository to perform various actions like add/modify/delete etc. with the contents of their respective project. Working Copy: To use this Subversion client, or any other subversion client, we first need a local copy in our system of the repository contents. This local copy is also known as the 'Working copy'. This is where we make all modifications and then send these changes to the repository.
svn://brown.usc.edu:3690/cs577a08/Team <#>
where Team <#> is the team number. Note the space between Team and <#> For example, URL for team 1 is svn://brown.usc.edu:3690/cs577a08/Team 1 5. Authorization:
6. Enter your username and password in the authentication window, and click ok. Check the Save authentication box to avoid repetitive authorization. 7. Once username and password are authenticated, the repository files will be checked out into the working copy and a window like the one below will appear, and then click ok.
8. When you open the working copy folder you will see icons with a green tick mark sign. If you encounter any other sign you can refer them by icon overlays mentioned in the end.
3. Click 'OK'
Icon Overlays
Now that you have checked out a working copy from a Subversion repository you can see your files in the windows explorer with changed icons. TortoiseSVN adds a so called overlay icon to each file icon which overlaps the original file icon. Depending on the Subversion status of the file the overlay icon is different. A fresh checked out working copy has a green checkmark as overlay. That means the Subversion Status is normal. As soon as you start editing a file, the status changes to modified and the icon overlay then Change to a red exclamation mark. That way you can easily see which files were changed since you last updated your working copy and need to be committed. If during an update a conflict occurs then the icon changes to a yellow exclamation mark. If you have set the svn: needs-lock property on a file, Subversion makes that file read-only until You get a lock on that file. Read-only files have this overlay to indicate that you have to get a lock first before you can edit that file. If you hold a lock on a file, and the Subversion status is normal, this icon overlay reminds you that you should release the lock if you are not using it to allow others to commit their changes to the file.
This icon shows you that some files or folders inside the current folder have been scheduled to be deleted from version control or a file under version control is missing in a folder. 8
The plus sign tells you that a file or folder has been scheduled to be added to version control. Unlike TortoiseCVS (the CVS shell integration) no overlay icon for unversioned files is shown. We do this because the number of icon overlays are limited system wide and should be used economically.
5. The 'TortoiseSVN: Add' box will be displayed which will confirm the file that is to be added. Click 'OK' 6. The 'TortoiseSVN Add ... Finished!' box will be displayed with a success message. Click 'OK' 7. A blue plus overlay appears on the added file/folder. 8. To send this change from the working copy to the repository, you need to perform a 'Commit' operation. Right click on the file meeting_7_21st_oct.doc
10
9. Select the option 'SVN Commit' 10. Enter a log message 11. Click 'OK' 12. The blue plus overlay on the added file/folder will turn to green tick mark.
NOTE:
The steps to add file or a folder or a folder tree are exactly the same. When you add a folder tree, its enough you perform the above steps on the parent folder. The sub folders and files present in this folder are added and committed together with the parent.
11
Delete a file/folder
1. Right click on the file/folder that you want to delete 2. Select TortoiseSVN - >Delete 3. A red exclamation overlay will appear on the deleted file/folders parent folder.
4. 5. 6. 7. 8.
Navigate to the parent folder and right click on it Select the option 'SVN Commit' Enter a message Click 'OK' The red exclamation overlay from the parent folder will convert to a green tick mark overlay.
12
Rename a file/folder
1. Right click on the file/folder that you want to rename 2. Select the TortoiseSVN - >Rename
3. A pop window will open wherein you need to enter the new name for the file or folder
4. 5. 6. 7. 8. 9.
A red exclamation overlay will appear on the renamed file/folders parent folder. Navigate to the parent folder and right click on it Select the option 'SVN Commit' Enter a log message Click 'OK' The red exclamation overlay from the parent folder will convert to a green tick mark overlay.
13
Revert Changes
If you wish to remove all changes made to the working copy that have been added but not committed, you can use the revert operation. This will undo all changes made to a file since the last commit. 1. 2. 3. 4. 5. Make a few changes to the contents of a file. A red exclamation overlay will appear on the modified file/folder. Right click on the file/folder of which you want to revert the changes Select the TortoiseSVN - >Revert The red exclamation overlay on the modified file will convert to a green tick mark overlay.
14
Copy a file/folder
This command is used to copy a file/folder from your working copy to your system 1. Right click on the file or folder that you wish to copy 2. Without releasing the mouse button drag the file/folder to its destination NOTE: Use the right click to drag 3. Drop the file/folder at the destination folder and you'd see a pop up menu like the following:
'SVN Move versioned files here' : Moves the file/folder from one location to another without loosing its history 'SVN Copy versioned files here' : Copies the file/folder from one location to another without loosing its history 'SVN Copy and rename versioned files here' : Copies and Renames the file/folder from one location to another without loosing its history 'SVN Add files to this WC' : Adds the file/folder as a new file to the Working copy 'SVN Export to here' : Exports the file/folder to the repository 'SVN Export all to here' : Exports all the files and folders in the source directory to the repository 'Copy here' : Copies the file/folder from source to destination as a new file 'Move here' : Moves the file/folder from source to destination as a new file 'Create shortcuts here' : Create a shortcut in destination folder 'Cancel' : Copy/Move operation is cancelled
5. For copying, select 'SVN Copy versioned files here' 6. Navigate to the parent folder and right click 7. Right click on the file/folder 8. Select the TortoiseSVN - >Commit option 9. Enter a log message 10. Click
'OK'
15
View Log
You can view the various log messages entered for a particular file/folder during commit operations. 1. Right click on the file/folder 2. Select TortoiseSVN - >Show Log 3. The 'Log Message' window will display the various log messages entered for a file/folder
16
3. If you select Head revision, Click OK 4. Else If you select Revision, enter the revision number viewable from the show log button into the input box, Click OK
17
Conflict Resolution (when same file is being modified by two or more users simultaneously)
During updates, conflict may arise that prevent TortoiseSVN from updating the repository. This type of situation occurs when two or more users have modified the same file in their corresponding working copies. After one of them has taken the SVN Commit action, when the other one tries to do a SVN Commit, the following window of conflicting state appears:
When such a conflict arise for a file, 3 additional files are created namely filename.ext.mine, filename.ext.rOLDREVand filename.ext.rNEWREV 1. A red exclamation overlay will appear on the file. 2. Right click on the file 'filename.ext'. 3. Select TortoiseSVN - >Edit Conflicts.
18
4. Resolve Conflict The 'TortoiseMerge' window displays two conflicting versions of the files. One has changes made by you and the other is the version of the file currently residing in the repository. Right click on the changes made by you.
19
The 'Use this text block' option will use the change done by you and will override the changes made in the previous revision. The 'Use this while file' option will override all the changes made in the previous revision. The changes made by you will be final. The 'Use text block from "mine" before "theirs"' option will append the two text snippets with your changes preceding the other set of changes The 'Use text block from "theirs" before "mine" option will append the two text snippets with the other changes preceding the changes done by you.
5. After choosing appropriate conflict resolving method, exit from the conflict resolve window. 6. Right click on the file 'filename.ext'. 7. Select Tortoise SVN -> Resolved. The filename.ext.r* files will get deleted. 8. Right click on the file 'filename.ext'. 9. Select TortoiseSVN - >Commit 10. Enter a log message. 11. Click 'OK'. 12. The red exclamation overlay on the conflicting file will convert to a green tick mark overlay.
If a file is modified in working copy but SVN Commit is not done, then to view its differences with the file in the repository, we use the diff command. 1. A red exclamation overlay will appear on the modified file. 2. Right click on the file in the working copy that you want to compare with the repositorys copy. 3. Select TortoiseSVN - >Diff
4. The file that has been modified in the working copy will open up with the differences between working copy and repositories copy mentioned.
21
Explanation for the Screenshot: In the working copy the text None. was deleted from the ISSUES/PROBLEMS topic in the weekly meetings file, but it existed in the repositories copy of the same file. Hence the diff command highlights the point from where the text was deleted and in a block mentions the difference i.e. Deleted: None.
22
Getting Help
To get help for using any of the Subversion commands using TortoiseSVN: 1. Right click anywhere on your Windows System 2. Select TortoiseSVN -> Help
Creating a Branch
Branching is the ability to isolate changes onto a separate line of development. This line is known as a branch. Branches are often used to try out new features without disturbing the main line of development with compiler errors and bugs. This is useful when working out a (big) change that needs to be coordinated in a team or when using a single working-copy for the work with the change. 1. Right click on the file/folder that you wish to branch. 2. Select the TortoiseSVN ->Branch/Tag option. 3. In the 'Copy (Branch/tag)' dialogue, enter the 'To URL' as 'svn://brown.usc.edu:3690/code/Fall07/Project<projectnumber>/branches/filename' where, projectnumber is the number of your project team. 4. In the 'Create copy in the repository from' section, select the revision number of the file/folder from which you want to branch
HEAD revision in the repository: Select the option if you want to create the branch from the head revision Specific revision in repository: Select this option if you want to create the branch from a specific revision Working Copy : Select this option if you want to create the branch from the working copy revision 23
Creating a Tag
Tagging is the ability to mark particular revisions (e.g. a release version), so you can at any time recreate a certain build or environment. 1. Right click on the file/folder that you wish to tag. 2. Select the TortoiseSVN - >Branch/Tag option 3. In the 'Copy (Branch/tag)' dialogue, enter the 'To URL' as 'svn://brown.usc.edu:3690/code/Fall07/Project<projectnumber>/tags/filename' projectnumber is the number of your project team 4. In the 'Create copy in the repository from' section, select the revision number of the file/folder from which you want to tag
where,
HEAD revision in the repository: Select the option if you want to create the tag from the head revision
24
Specific revision in repository: Select this option if you want to create the tag from a specific revision Working Copy : Select this option if you want to create the tag from the working copy revision
25
3. Enter the URL of the file in the repository from where you want to bring in changes 4. Choose the appropriate revision 5. Click 'OK'
Merge
Merge applies the differences between two sources to a working copy path. 1. Right click on the file/folder in which you want to merge the changes 2. Select the TortoiseSVN - >Merge option
26
3. Enter the complete URL of the file/folder that contains the changes that you want to merge (source) 4. Enter the complete URL of the file/folder to which the changes must be merged 5. Click 'Merge' button
As an optional step, you can choose to click the 'Dry Run' button which will perform the merge operation, but will not modify the working copy. It displays the list of the files that will be changed when you choose to 'merge', and notes those areas where conflicts will occur. You can also view the diff in the unified diff format by clicking 'Unified Diff' button
6. The "TortoiseSVN Merge ... Finished!" dialogue must be displayed with message that the destination file/folder was updated with the required changes. Click 'OK' 7. Right click on the destination file/folder 8. Select the TortoiseSVN - >Commit option 9. Enter a log message 10. Click 'OK'
27
Get Lock
If you get a Lock on a file, then only you can commit that file. Commits by all other users will be blocked until you release the lock. A locked file cannot be modified in any way in the repository, so it cannot be deleted or renamed either, except by the lock owner. 1. Right click on the file/folder on which you want to acquire the lock 2. Select the TortoiseSVN - >Get Lock option 3. In the 'TortoiseSVN: Lock files' dialogue, enter a reason about why you need the lock on this file/folder. Click 'OK' NOTE: When you wish to lock a folder, TortoiseSVN gives you the option to choose the files that exists within this folder, you can select the files that you wish to lock. 4. Once the file/folder is locked for edit by other users, the 'Lock Finished' dialogue will be displayed with a success message. Click 'OK' 5. A yellow lock overlay appears on the locked file/folder.
Release Lock
The lock owner can release the lock from a previously locked file. Once the lock has been released, any other user can modify the file. 1. 2. 3. 4. A yellow lock overlay appears on the locked file/folder. Right click on the locked file/folder for which you want to release the lock Select the TortoiseSVN - >Release Lock option Once the file/folder is unlocked, the 'Unlock Finished' dialogue will be displayed with a success message. Click 'OK' 5. The yellow lock overlay on the locked file/folder will convert to a green tick mark overlay.
28
Export
When you create a working copy of a repository some .svn directories are formed. Sometimes you may want a working copy without any of those .svn directories. For this purpose, TortoiseSVN offers the command Export to avoid making a copy and then delete all those .svn directories manually,. 1. Right click on the folder that you wish to export 2. Select the TortoiseSVN - >Export option 3. Select the location where you wish to export the folder contents in the 'Browse for Folder' dialogue. You can choose an existing location or create a new folder using the 'Make new folder' button. After selecting the location, click 'OK' 4. After the folder is exported successfully, the 'TortoiseSVN' dialogue is displayed with success message. Click 'OK'
Relocate
To make the working copy point to a new repository, you can use the 'Relocate' option 1. 2. 3. 4. Right click on the top level folder in the working copy Select the TortoiseSVN - >Relocate option Enter the URL to which you need to relocate to, click 'OK' After the working copy is relocated successfully, the 'TortoiseSVN' dialogue is displayed with success message. Click 'OK'
Clean Up
If your working copy gives a working copy locked error and becomes unusable, you must use this command to make the working copy usable again. 1. Right click on the folder on which you want to perform the 'Clean up' activity 2. Select the TortoiseSVN - >Clean Up option 3. Once the clean up is done, the 'Clean Up has Finished' dialogue will be displayed with a success message. Click 'OK'
29
Repository Browser
The Repository Browser allows you to view the structure and status of the repository. 1. Right click on the file/folder 2. Select the TortoiseSVN - >Repo-browser 3. The repository browser must open which displays the directory structure of the working copy
30
3. When using this option for a folder, the window that opens displays all the files that were modified since the last commit. In case of a file, it just gives the information about the user who made the changes
Settings
To set your Subversion specific settings, use the 'Settings' option 1. Right click any where on your system 2. Select the TortoiseSVN - >Settings option 3. You can decide on the look and feel, network, external programs, and saved data from here. After setting the choosing the required options, click 'OK'.
31
Revision Graph
This command analyses the revision history and attempts to create a tree showing the points at which copies were taken, and when branches/tags were deleted. 1. Right click on the file/folder 2. Select the TortoiseSVN - >Revision Graph option 3. The revision graph window displays the number of versions the file/folder has been through
About
1. Right click any where on your system 2. Select the TortoiseSVN - >About option 3. Information on the installed version of TortoiseSVN must be displayed. Click 'OK'
32
33