Tag Archive for 'tortoisesvn'

Subversion Tip of the Week

Relocating a Working Copy

At some point during the Apache Subversion development lifecycle, your repository may change location – and therefore get a new URL. This may be because the IP address of the server has changed, or the repository root path in the server setup could have changed.

This can be particularly problematic if you’ve put some serious effort into modifying your working copy, as it effectively prevents you from performing an ‘SVN Commit…’ In this instance, checking out a fresh working copy from the new location and porting your changes across, could be a daunting task! This is where the ‘Relocate’ command comes into play. This command rewrites all the URLs associated with the files and folders in your working copy, with the new URL.

1) Start by selecting the ‘Relocate’ command from the TortoiseSVN menu.

2) Specify the URL you want to switch to and click ‘Ok.’

3) TortoiseSVN will then relocate to the new URL.

Warning! This operation should be used with caution, as if used incorrectly it can corrupt your working copy. In this happens, the only solution is to perform a fresh checkout.

The ‘Relocate’ command should not be used to:

    • move to a different Subversion repository.
    • switch to a different branch or directory within the same repository.

Need more Subversion know-how? After getting a great response from the Apache Subversion community in 2011, Subversion Live is back for 2012, bringing the Subversion community sessions covering everything from Subversion’s future, to expert-led best practices workshops, as well as the unique opportunity to meet the core Subversion committers.

Merging in Subversion: Merge a Range of Revisions

Along with branching, merging is the issue that regularly causes Apache Subversion users the most confusion – but merging needn’t be complicated! In this post, we’ll show you how to successfully perform a merge in less than ten steps, using TortoiseSVN’s ‘merge a range of revisions’ option.

Tip. Two common scenarios where this type of merge comes in handy are sync’ing a development branch by applying all the latest changes from its ‘parent’ branch; and cherry-picking specific changes to add to your release branch.

To merge a range of revisions:

1) Right-click on the file you wish to merge and open the ‘TortoiseSVN’ menu.

2) Select ‘Merge’ from TortoiseSVN’s sub-menu.









3) Select the ‘Merge a Range of Revisions’ option.










4) In the ‘Merge’ dialog, select the desired URL using the “….” button.

5) Either specify the revision numbers you wish to merge, or leave the revision range blank to merge all outstanding changes from the specified source.










6) Once you have entered all the relevant information, click ‘Next.’

7) TortoiseSVN will open the ‘Merge options’ dialog. In most instances, the default settings can be used.

8) Select ‘Merge’ to perform your merge!

Need more info on branching and merging in Subversion? This year’s Subversion Live series of conferences features a session dedicated to Branching and Merging Best Practices. Visit http://www.wandisco.com/svn-live-2012 to find out more.

Branching in Apache Subversion Made Easy

Branching is a powerful and useful feature of Apache Subversion but, because it has a reputation for being difficult to master, many users never take advantage of it. In this post we’ll show you how to create a new branch, and then switch to this branch ready to begin working on its contents.

Creating a Branch in 5 Steps

1) To get started, right click on the folder you want to copy to a branch, and select the ‘Branch/Tag’ option from the TortoiseSVN menu.










2) In the ‘To path’ box, enter the location you want your branch to be copied to.

3) Enter a log message in the ‘Log message’ box.

4) Select which revision you wish to copy (this is typically HEAD revision, but you can specify another revision, if required.)

5) Click ‘OK.’










You have now created your branch!






3 Steps to Switch to Your New Branch

Now you’ve created a new branch, you’ll need to switch to it in order to begin working on its contents.

1) Right-click on the top level folder of your project and select ‘Switch’ from the TortoiseSVN context menu.

2) Enter the URL of the new branch you just created.

3) Ensure the ‘Head Revision’ button is selected, and click ‘Ok.’







The new branch will appear in your working copy!

Note, any changes that have not been committed to the repository will be merged when you run the switch command. Make sure you’ve either committed your changes before performing the switch, or revert your working copy to a revision that has already been committed to the repository.

Need more Subversion know-how? After getting a great response from the Apache Subversion community in 2011, Subversion Live is back for 2012, bringing the Subversion community sessions covering everything from Subversion’s future, to expert-led best practices workshops, as well as the unique opportunity to meet the core Subversion committers.

Getting Started with TortoiseSVN 1.7.9

The latest release of TortoiseSVN – version 1.7.9 – has just been released. But how do you get started with the popular Apache Subversion client for Windows? In this post, we show you how to install TortoiseSVN and checkout your first working copy.

1) TortoiseSVN 1.7.9 binaries are available from http://www.wandisco.com/subversion/download#tortoise Click on the appropriate installer to download.

2) Open the installer, and select ‘Run’ when prompted.

3) You will be taken to TortoiseSVN’s setup wizard. Click ‘Next.’

4) Accept the terms in the License Agreement, and select ‘Next.’

5) In the subsequent dialog, select where TortoiseSVN should be installed and which features you want to install. Once you are happy with the configuration, click ‘Next.’

6) Click the ‘Install’ button. Once TortoiseSVN has finished installing, click the ‘Finish’ button to complete the setup process.

7) TortoiseSVN is implemented as a Windows shell extension. To perform a checkout in TortoiseSVN, right-click on the location where you wish to create a working copy, and select ‘SVN Checkout…’

8) Enter the URL of your repository and select whether you want to checkout the HEAD revision, or a particular revision number. Click ‘Ok’ to perform the checkout.

You have now successfully performed your first checkout!

Remember that TortoiseSVN can be downloaded for free from http://www.wandisco.com/subversion/download 


TortoiseSVN 1.7.9 Available to Download

TortoiseSVN 1.7.9 is now available to download.

This release of the popular Windows client for Apache Subversion fixes a bug introduced in the 1.7.8 release, that could cause other applications to crash. This release also fixes some additional bugs, including crashes when refreshing the status list control, and copied files failing to revert to the recycle bin. TortoiseSVN 1.7.9 is linked against Subversion 1.7.6.

TortoiseSVN users are recommended to upgrade to this release as soon as possible.

Looking for tips and tricks on getting the most out of TortoiseSVN? We publish a new Subversion Tip of the Week every Monday, which includes frequent TortoiseSVN tips.


Subversion Tip of the Week

You may have noticed we’ve been running regular polls for the Apache Subversion community, and after seeing that Windows is a hugely popular OS amongst Subversion users (according to the results, at least!) we’re planning to bring you more Windows-centric content over the coming weeks. In this week’s tip, we’ll show you how to get the most out of the repository browser, using TortoiseSVN, the Subversion client for Windows. 

Getting More out of the Repo Browser

With TortoiseSVN, there is the option of interacting directly with the repository, without even creating a working copy, using TortoiseSVN’s repo browser.

    • Right-click on your screen and select ‘Repo-browser’ from the TortoiseSVN menu.

    • Specify the URL of the repository you want to access.

    • The repo browser will open automatically, displaying the contents of your specified repository.

From the repo browser, you can perform basic tasks such as opening and editing a file and examining the revision log, but it’s also possible to perform some more complex tasks:

1) Blame – selecting this option will bring up a dialog where you can select a revision to examine. Enter the revision number, or select HEAD to see the latest revision in the repository, and TortoiseBlame will open automatically.

2) Checkout a single file – this options creates a ‘sparse’ working copy, containing just the file selected.

You will be asked to confirm the file’s URL and the location where it should be created. Click ‘Ok’ to perform the checkout.

3) Copy to working copy… – it’s possible to make a copy of a file in a different part of the repository. Right-click on the file in question, and select ‘Copy to working copy…’

Select the location where you wish to create your copy and click ‘Save.’

We’ll be running more community polls over the coming weeks, allowing us to tailor our tutorials, tips, refcards, and webinars to best suit the needs of the Subversion community. Be sure to keep checking back, to make your voice heard! 

Getting More Out of Version Control

So, you’ve downloaded Apache Subversion and have mastered the standard workflow – but this is just the start of what the world’s most popular version control system has to offer! In this post, we’ll dig a little deeper into Subversion and provide an overview of five features that can help you get even more out of version control, including discovering who is responsible for a specific change, and reverting to a previous version of your project.

1. Hook Scripts

Hook scripts are essentially programs that are triggered by a specific repository event. Usually, hook scripts are server side, but it’s also possible to run client side hook scripts. Hook scripts can be configured to perform the following tasks:

    • Reporting on events (e.g emailing alerts when a commit occurs.)
    • Testing for a pre-condition before allowing a commit (e.g checking a commit is accompanied by a log message)
    • Blocking certain actions (e.g blocking a commit that contains multi-gigabyte files)


The hooks subdirectory is automatically created along with each new repository. By default, the hook files are saved as non-executable templates (.tmpl) To make changes to these files, you simply open them as text-based documents, enter the new text, and save the file in a new format. This format is different for each operating system, for example, in Windows, the format can be either .exe or .bat.

Need some more help getting started with hook scripts? Our ‘Introduction to Subversion Hook Scripts on Windows’ has a handy example of a pre-commit hook.

2. SVN Blame

Sometimes, you just need someone to blame! Subversion’s ‘blame’ command does exactly this: it displays each line of a particular file, along with who changed each line, and in which revision it was changed. This is obviously useful for pin-pointing who is responsible for bugs and broken code, but it can also be useful for finding out who you need to contact for more information about a particular part of your code.

To find out who is to blame for a particular change, right-click on the file in question and select ‘Blame’ from the TortoiseSVN menu.

In the TortoiseSVN dialog, select the revisions you wish to review, and click ‘Ok.’

This will bring up the TortoiseBlame dialog, where you can see the changes that were made to the file in each revision, and who is responsible for each change.

For more information on a particular revision, hover over that revision and a tooltip will appear displaying the revision’s log message.

3. SVN:Ignore

Sometimes, there will be files in your working copy that don’t need to be placed under version control (you own notes, or a To Do checklist, for example) In these instances, Subversion’s ‘Ignore’ property can be used. Simply create/drag-and-drop the new file into your working copy, right-click to bring up the ‘TortoiseSVN’ sub-menu, select ‘Add to ignore list’ and select the file you wish to ignore.

This file will then be added to the ‘ignore’ list, and will not be accidentally committed back to the repository when you perform an ‘SVN Commit.’

4. Reverse Merge

Subversion remembers every change that’s made to its files and directories; a potential life-saver if you introduce a code-breaking feature in revision 12, and need to revert to a revision before it all went wrong. Recovering previous revisions in Subversion, is simply a matter of performing a reverse merge i.e merging the changes in your current revision, to an earlier revision. To perform a reverse merge with TortoiseSVN:

1) Select ‘Merge’ from the TortoiseSVN menu.
2) Select the ‘Merge a range of revisions’ option.
3) Select the revision you wish to revert to. Ensure the ‘Reverse merge’ option is selected.

4) The following dialog will present you with a number of options for merging – in most instances the default settings can be used. Click ‘Merge’ and Subversion will roll back to revision 11. Note, that the reverse merge only affects your working copy, so you must perform an ‘SVN Commit’ to commit your changes back to the repository.

5. Revert Command

Less drastic than a reverse merge, the revert command overwrites any local changes made to the working copy, with the code held in the repository, including any property changes and any scheduling operations that may have been set on the working copy. However, this command should be used with care: the revert command replaces all the changes made since your last commit, and once they are gone there is no way to recover them.

Need more help with your Apache Subversion installation? Every Monday, we’ll be publishing a new Tip of the Week at our blog, so keep checking back every week for all the latest tips!

WANdisco’s August Roundup

This month we announced some exciting releases for the Apache Subversion community: the release of Subversion 1.7.6, and updates for uberSVN and TortoiseSVN.

Building on the 1.7 series, Apache Subversion 1.7.6 added even more fixes and enhancements for the SVN community:

  •  A fix for running tests against httpd version 2.4
  • Constant struct initialisers now used for C89 compatibility
  • Fixes for the output of ‘svn propget -R’ ‘svn proplist’ and ‘svn status’
  • Optimized ‘svn upgrade’ performance on large working copies
  • A fix for ‘svn upgrade’ on working copies with certain tree conflicts
  • Fixes for two asserts into errors for TortoiseSVN

More information on what’s new in Subversion 1.7.6 can be found in the Changes file. As always, if you want to get your hands on the latest, certified binaries you can do so from our website. The latest version of TortoiseSVN – 1.7.8 – is also available for download. This release is linked against Subversion 1.7.6, and features a list of bug fixes. For more information on all the updates and fixes in TortoiseSVN 1.7.8, check out the Changelog.

The uberSVN community also saw an update, as the WANdisco developers finished off uberSVN ‘Chimney House’ Release 3.

uberSVN ‘Chimney House’ Release 3 features many improvements and enhanced functionality for uberSVN’s ever-growing community of users. These include:

  •  Further improvements to the way uberSVN handles LDAP and LDAPS.
  • Improvements to uberSVN APIs and internal development of the uberSVN SDK (public release coming soon!)
  • New manageAPPS page allows you to see metadata attached to your APP license, such as expiry date, number of named users, and more.
  • A list of bug fixes, including some fixes and alignment/mapping of the uberSVN Access Control Team Leader and uberSVN Delegated Team Admin (where uberSVN Access Control is active)
We also conducted a community poll to find out more about how you’re using Subversion. We asked what operating system your Subversion server is running on and, once again, there was a very clear winner…..

You may have already noticed that we’ve been adding new Subversion refcards. We’ve had such a great response that we’ve already put together two more – ‘All About the Apache Subversion Commit Command’ and ‘All About Checkouts.’ The first covers everything from the basic “what is a commit?” to more advanced information on editing log messages, ignoring files and directories, and an intro to hook scripts. ‘All About Checkouts’ provides a quick reference to making full use of the checkout command and understanding the messages generated under different scenarios.

We hope you’re enjoying these latest refcards, and if have any ideas for future refcards, please do not hesitate to Contact Us. If you’re after more Apache Subversion know-how, then why not take a look at our upcoming Subversion Live conference?

On the enterprise side of things, we published a new case study of our enterprise-class Subversion MultiSite product. The case study looks at how global logistics technology leader Navis – a subsidiary of Cargotec, enjoyed a 10x improvement in Subversion performance and achieved 24-by-7 uptime across all of their development sites after implementing our Subversion MultiSite solution. Read the Navis case study in full to find out more.

Also this month, WANdisco CEO and co-founder David Richards was asked to do an interview with BloombergTV – check out the full video interview below!

Finally our friend, photographer Matt Lollar popped into the office to take some new snaps of WANdisco’s Sheffield office.


Subversion Tip of the Week

Tagging and Reverting in TortoiseSVN

Apache Subversion remembers every change made to its files and directories, which gives you the option of reverting to earlier versions of your code (useful for when you need to roll back to a revision before it all went wrong!) Tagging is an essential part of this process, giving you the option of labelling a specific revision with a handy, human-readable tag. Here’s our five step guide to creating a tag, and then reverting to that tag, a few revisions down the development line.

1) Right click on your working copy and select the ‘Branch/Tag option from the TortoiseSVN’ menu.

2) In the subsequent dialog, perform the following actions:

– select the ‘tags’ path and add the desired tag (in this example we’ll use ‘Release_5.0”)
– add a log message.
– select the revision you wish to tag.

When you are finished, select ‘OK’ to create your tag.

3) To roll back to this revision at a later date, right-click on your working copy and select ‘Show Log.’ This will bring up a list of revisions.

4) Select the revision you wish to revert to and right-click. Select ‘Revert to this revision.’ When prompted, confirm you wish to revert, and TortoiseSVN will revert to this revision.

5) Check the results of the revert and, if you’re happy with them, commit your working copy back to the repository. Warning: this will discard all the changes you made after the selected revision.

Need more Subversion know-how? After getting a great response from the Apache Subversion community in 2011, Subversion Live is back for 2012, bringing the Subversion community sessions covering everything from Subversion’s future, to expert-led best practices workshops, as well as the unique opportunity to meet the core Subversion committers.

Poll Results: Which OS does your Subversion Server Run On?

As a successful and established open source project, Apache Subversion has a vibrant community of users – but how exactly are they using Subversion? Last month, we found out which SVN client is the most popular, and a few weeks ago we posed another question to the community: which operating system is your Apache Subversion server running on? The results are in and, once again, Windows comes out on top:


60% of respondents are running their server on Microsoft Windows, and in a previous poll we found that over 60% were using the TortoiseSVN client (which isn’t surprising considering how easy it is to get started!)

If you’re a Windows user (and, judging from the poll results, there’s plenty of you out there in the Subversion community!) we have lots of useful tutorials aimed at your OS of choice, including some hidden TortoiseSVN commands.

Have a question you’d like us to put to the Subversion community? You can either post it here, or Contact Us directly and we’ll try and feature it in future polls.