TortoiseSVN on cloud

1-click AWS Deployment    1-click Azure Deployment

Overview

TortoiseSVN is a Subversion client, implemented as a Microsoft Windows shell extension, that helps programmers manage different versions of the source code for their programs. It is free software released under the GNU General Public License. 

TortoiseSVN won the SourceForge.net 2007 Community Choice Award for Best Tool or Utility for Developers.  

In Windows Explorer, besides showing context menu items for Subversion commands, TortoiseSVN provides icon overlay that indicates the status of Subversion working copies. 

It also comes with the TortoiseMerge utility, available from Tigris.org website, to visually compare two files. 

TortoiseSVN can be integrated into Microsoft Visual Studio by using a third-party plugin such as VsTortoise. 

A third-party repository monitoring application using TortoiseSVN was named SVN-Monitor, then evolved into Vercue in 2011 

TortoiseSVN is an Apache Subversion (SVN)® client, implemented as a Windows shell extension. It’s intuitive and easy to use, since it doesn’t require the Subversion command line client to run. And it is free to use, even in a commercial environment. Simply the coolest Interface to (Sub)Version Control. 

TortoiseSVN is a popular Apache Subversion client for Windows, implemented as a Microsoft Windows shell extension. As it isn’t integrated into a specific IDE it can be used with a range of development tools; for example, it can be integrated into Microsoft Visual Studio using a third-party plugin such as VisualSVN. 

The key benefits of using TortoiseSVN include: 

con overlays, which allow you to see the status of every versioned file and folder at a glance. 

Easy access to all Subversion commands though a TortoiseSVN sub-menu that’s automatically added to the Windows context menu. 

Windows integration, which allows you to work with tools you’re already familiar with. 

Context-aware sub-menu — available commands are filtered based on the selected file or folder. You will not see any commands you cannot use within the current context. 

Powerful commit dialog — with integrated spellchecker, auto completion capabilities, and the ability to double-click on a modified file to open the diff program. 

TortoiseSVN also comes with some useful tools for version control: 

  • TortoiseMerge – a diff / merge tool that displays the changes made to particular files. 
  • TortoiseBlame – displays who is responsible for a particular change, and the log message for the corresponding commit. 
  • TortoiseIDiff – displays the changes made to image files, as it’s not possible to use a standard file diff tool for images. TortoiseIDiff can display two images side-by-side, and display images blended over one another. 

How to  integrate TortoiseSVN into Visual Studio: 

If you’re using Visual Studio, you can integrate TortoiseSVN commands to various context menus. Of course, there are Subversion plugins for Visual Studio like AnkhSVN or VisualSVN, with the latter already using TortoiseSVN for many of its UI. Those plugins also have the advantage that when you do refactoring, they automatically record the renames and moves in SVN.

The first step is to add the TortoiseSVN commands as external tools, under the menu TOOLS->External Tools….

VS_externaltools

Add the name of the command, the path to TortoiseProc.exe and then the parameters for the command.

Use the VS variables wherever needed. Since I add my commands to the context menu of the open file tab, here’s the parameters I used:

  • /command:blame /path:"$(ItemPath)" /line:$(CurLine) /startrev:1 /endrev:HEAD
  • /command:diff /path:"$(ItemPath)"
  • /command:log /path:"$(ItemPath)"

Notice the /line: parameter: this will make TortoiseBlame automatically scroll to the same line the cursor is located in the opened file in Visual Studio. If you omit the /startrev and /endrev parameters for the blame command then a dialog is first shown where you can specify more options for the blame.

Now to add those new commands to the file tab context menu, go to TOOLS->Customize…, select the Commands tab, click the radio button Context menu and then select Other Context Menus | Easy MDI Document Window.

VS_customize

Then click the Add command… button:

VS_addcommand

Now you have to select the commands. Problem is that the custom commands are not shown with their title but only as External Command X with X being the number of the external command.

In my case, the commands were number 9-11, you might have to do some trial-and-error here. Just add the commands you think are the ones you added and then check if the right ones show up in the context menu.

And this is how the context menu of the open file tab looks like:

VS_contextmenu

 Guide to TortoiseSVN, the Windows Subversion Client : 

The first step when using TortoiseSVN, is to download a local working copy of your repository. Start by creating a directory where you will store the working copy. Right-click on the folder and the Explorer context menu will appear, along with some new TortoiseSVN commands. Select SVN Checkout…’ 

Getting Started with TortoiseSVN

This will open the checkout dialog: 

Getting Started with TortoiseSVN

 

 

From here you can set the following properties: 

 

URL of Repository – the URL of the repository you wish to check out. (If you’re using uberSVN, you can copy/paste the repository URL from the repository screen.) 

Getting Started with TortoiseSVN

  • Checkout directory – the location on your local file system where the checkout will occur. By default, it will be the location you right-clicked, but you can change this manually. 
  • Checkout depth – an option to limit what you check out. This is useful if you’re changing one directory of a very large repository. 
  • Revision – get the latest version of the repository. You can also select a specific revision, which is useful if you need to roll back to a version before particular changes were made. 

When you’ve finished with these options, you’re ready to perform the checkout. Click OkYou’ll now see the progress of the checkout. All the files and the folders that are included in the checkout will be logged. 

Getting Started with TortoiseSVN

 

 

Making and Committing Your Changes with TortoiseSVN :

Now you have a working copy on your computer; you are free to work on your own, local version of the project. When you have finished making your changes, the modified files/directories will be shown with the red exclamation mark overlay to indicate that they have been modified since they were last checked out or updated. 

Getting Started with TortoiseSVN

 

Before you commit any changes, it’s a good practice to ensure your working copy is up to date with the repository. To update your working copy, select the desired files or directories, right-click them and select Update from the TortoiseSVN sub-menu. A new screen will open displaying the update’s progress. Changes performed by other team members will be merged into your files, but any changes you may have performed on the same files will be maintained. 

Getting Started with TortoiseSVN

 

Now that you’ve ensured your working copy is up to date, it’s time to add your changes to the repository. Select the desired files or directories and hit the SVN Commit… command. 

Getting Started with TortoiseSVN

SVN Commit… will open the commit dialog. From here, you can perform a number of actions: 

  • Launch the external diff tool, which displays every change made to the file, by double clicking on any modified file. 

Getting Started with TortoiseSVN

Add a log message from the commit dialog. It’s a good practice to leave a log message, as they can be useful if problems arise later. 

Getting Started with TortoiseSVN

Keep a particular file from being committed by unchecking that file. Hit Ok to commit your changes to the repository. 

Hidden TortoiseSVN Features :

You are now familiar with TortoiseSVN’s context menu, but did you know that if you hold down the shift key, you can access an extended context menu? This menu has some additional options: 

Diff with URL 

A big part of project development is pinpointing what has changed. TortoiseSVN has a trick for uncovering exactly what has changed on the trunk for users working on a branch and what has changed on a specific branch for users working on the trunk. When you hold down the Shift button and select TortoiseSVN, you will notice a new Diff with URL option has appeared. 

Getting Started with TortoiseSVN

 

Select Diff with URL. In the following dialog, specify the URL in the repository you wish to compare with your local file. This will bring up the TortoiseMerge box, allowing you to see the changes. 

Another new option that appears when you hold down Shift is Delete unversioned itemsIt’s possible to set the TortoiseSVN ignore list to exclude all unversioned items, but if you wish to purge all these ignored items and produce a clean build, this command comes in handy. Selecting Delete unversioned items launches a dialog listing all the unversioned files in the working copy, where you can select which files to delete. Note that this command only moves files to the recycle bin, so they can be recovered if you make a mistake 

Getting Started with TortoiseSVN

Break Lock 

Although Subversion was designed to use copying and merging rather than locking, there are some scenarios where locking is advisable (e.g. whenever “unmergeable” files such as images are involved.) Locking with TortoiseSVN is a matter of clicking the file that requires locking, and selecting Get Lock… from the TortoiseSVN sub-menu. It’s also a good practice to leave a comment explaining why you have decided to lock that file. 

If you can add locks, at some point you will need to release them. To release a lock manually with TortoiseSVN, select the locked file, press Shift and then select the new Break Lock option from the TortoiseSVN sub-menu. TortoiseSVN will then contact the repository and release the lock. You can also use this command on a folder to release all the locks recursively. 

Getting Started with TortoiseSVN

 

TortoiseSVN is a really easy to use Revision control / version control / source control software for Windows. It is based on Apache Subversion (SVN); TortoiseSVNprovides a nice and easy user interface for Subversion.

It is developed under the GPL. Which means it is completely free for anyone to use, including in a commercial environment, without any restriction. The source code is also freely available, so you can even develop your own version if you wish to.

Since it’s not an integration for a specific IDE like Visual Studio, Eclipse or others, you can use it with whatever development tools you like, and with any type of file.

 

Features

Features of TortoiseSVN :

  • Easy to use 
  • all commands are available directly from the Windows Explorer. 
  • only commands that make sense for the selected file/folder are shown. You won’t see any commands that you can’t use in your situation. 
  • See the status of your files directly in the Windows explorer 
  • descriptive dialogs, constantly improved due to user feedback 
  • allows moving files by right-dragging them in the Windows explorer 
  • All Subversion protocols are supported 
  • http:// 
  • https:// 
  • svn:// 
  • svn+ssh:// 
  • file:/// 
  • svn+XXX:// 
  • Powerful commit dialog 
  • integrated spell checker for log messages 
  • auto completion of paths and keywords of the modified files 
  • text formatting with special chars 
  • The big picture 
  • Can create a graph of all revisions/commits. You can then easily see where you created a tag/branch or modified a file/folder 
  • Graphs of commit statistics of the project 
  • Easy comparing of two branches or tags 
  • Per project settings 
  • minimum log message length to avoid accidentally committing with an empty log message 
  • language to use for the spell checker 
  • Integration with issue tracking systems 
  • TortoiseSVN provides a flexible mechanism to integrate any web based bug tracking system. 
  • A separate input box to enter the issue number assigned to the commit, or coloring of the issue number directly in the log message itself 
  • When showing all log messages, an extra column is added with the issue number. You can immediately see to which issue the commit belongs to. 
  • Issue numbers are converted into links which open the webbrowser directly on the corresponding issue 
  • Optional warning if a commit isn’t assigned to an issue number 
  • Helpful Tools 
  • TortoiseMerge 
  • Shows changes you made to your files 
  • Helps resolving conflicts 
  • Can apply patchfiles you got from users without commit access to your repository 
  • TortoiseBlame: to show blames of files. Shows also log messages for each line in a file. 
  • TortoiseIDiff: to see the changes you made to your image files 
  • SubWCRev: to include the revision numbers/dates/… into your source files 
  • Available in many languages 
  • TortoiseSVN is stable 
  • Before every release, we create one or more “release candidates” for adventurous people to test first. 
  • During development cycles, many people test intermediate builds. These are built every night automatically and made available to all our users. This helps finding bugs very early so they won’t even get into an official release. 
  • A big user community helps out with testing each build before we release it. 
  • A custom crash report tool is included in every TortoiseSVN release which helps us fix the bugs much faster, even if you can’t remember exactly what you did to trigger it. 

 

Major Features of  TortoiseSVN :

1. Easy to use

  • only commands that make sense for the selected file/folder are shown. You won’t see any commands that you can’t use in your situation.
  • descriptive dialogs, constantly improved due to user feedback
  • allows moving files by right-dragging them in the Windows explorer

2. TortoiseSVN is stable

  • Before every release, we create one or more “release candidates” for adventurous people to test first.
  • During development cycles, many people test intermediate builds. These are built every night automatically and made available to all our users. This helps finding bugs very early so they won’t even get into an official release.
  • A big user community helps out with testing each build before we release it.
  • A custom crash report tool is included in every TortoiseSVN release which helps us fix the bugs much faster, even if you can’t remember exactly what you did to trigger it.

3. Most current CVS features.

4. Directories, renames, and file meta-data are versioned.

5. Commits are truly atomic.

6. Branching and tagging are cheap (constant time) operations.

7. Efficient handling of binary files.

Videos

Tortoise SVN : An Overview of Configuration Management Tool : Code Management Solution

TortoiseSVN – Basic Tutorial

TortoiseSVN on cloud

Related Posts