4.24. The Repository Browser


4.24. The Repository Browser

Sometimes you need to work directly on the repository, without having a working copy. That's what the Repository Browser is for. Just as the explorer and the icon overlays allow you to view your working copy, so the Repository Browser allows you to view the structure and status of the repository.

Figure 4.63. The Repository Browser

The Repository Browser

With the Repository Browser you can execute commands like copy, move, rename, ... directly on the repository.

The repository browser looks very similar to the Windows explorer, except that it is showing the content of the repository at a particular revision rather than files on your computer. In the left pane you can see a directory tree, and in the right pane are the contents of the selected directory. At the top of the Repository Browser Window you can enter the URL of the repository and the revision you want to browse.

Folders included with the svn:externals property are also shown in the repository browser. Those folders are shown with a small arrow on them to indicate that they are not part of the repository structure, just links.

Just like Windows explorer, you can click on the column headings in the right pane if you want to set the sort order. And as in explorer there are context menus available in both panes.

The context menu for a file allows you to:

  • Open the selected file, either with the default viewer for that file type, or with a program you choose.

  • Edit the selected file. This will checkout a temporary working copy and start the default editor for that file type. When you close the editor program, if changes were saved then a commit dialog appears, allowing you to enter a comment and commit the change.

  • Show the revision log for that file, or show a graph of all revisions so you can see where the file came from.

  • Blame the file, to see who changed which line and when.

  • Checkout a single file. This creates a sparse working copy which contains just this one file.

  • Delete or rename the file.

  • Save an unversioned copy of the file to your hard drive.

  • Copy the URL shown in the address bar to the clipboard.

  • Make a copy of the file, either to a different part of the repository, or to a working copy rooted in the same repository.

  • View/Edit the file's properties.

  • Create a shortcut so that you can quickly start repo browser again, opened directly at this location.

The context menu for a folder allows you to:

  • Show the revision log for that folder, or show a graph of all revisions so you can see where the folder came from.

  • Export the folder to a local unversioned copy on your hard drive.

  • Checkout the folder to produce a local working copy on your hard drive.

  • Create a new folder in the repository.

  • Add unversioned files or folders directly to the repository. This is effectively the Subversion Import operation.

  • Delete or rename the folder.

  • Make a copy of the folder, either to a different part of the repository, or to a working copy rooted in the same repository. This can also be used to create a branch/tag without the need to have a working copy checked out.

  • View/Edit the folder's properties.

  • Mark the folder for comparison. A marked folder is shown in bold.

  • Compare the folder with a previously marked folder, either as a unified diff, or as a list of changed files which can then be visually diffed using the default diff tool. This can be particularly useful for comparing two tags, or trunk and branch to see what changed.

If you select two folders in the right pane, you can view the differences either as a unified-diff, or as a list of files which can be visually diffed using the default diff tool.

If you select multiple folders in the right pane, you can checkout all of them at once into a common parent folder.

If you select 2 tags which are copied from the same root (typically /trunk/), you can use Context MenuShow Log... to view the list of revisions between the two tag points.

External items (referenced using svn:externals are also shown in the repository browser, and you can even drill down into the folder contents. External items are marked with a red arrow over the item.

You can use F5 to refresh the view as usual. This will refresh everything which is currently displayed. If you want to pre-fetch or refresh the information for nodes which have not been opened yet, use Ctrl-F5. After that, expanding any node will happen instantly without a network delay while the information is fetched.

You can also use the repository browser for drag-and-drop operations. If you drag a folder from explorer into the repo-browser, it will be imported into the repository. Note that if you drag multiple items, they will be imported in separate commits.

If you want to move an item within the repository, just left drag it to the new location. If you want to create a copy rather than moving the item, Ctrl-left drag instead. When copying, the cursor has a plus symbol on it, just as it does in Explorer.

If you want to copy/move a file or folder to another location and also give it a new name at the same time, you can right drag or Ctrl-right drag the item instead of using left drag. In that case, a rename dialog is shown where you can enter a new name for the file or folder.

Whenever you make changes in the repository using one of these methods, you will be presented with a log message entry dialog. If you dragged something by mistake, this is also your chance to cancel the action.

Sometimes when you try to open a path you will get an error message in place of the item details. This might happen if you specified an invalid URL, or if you don't have access permission, or if there is some other server problem. If you need to copy this message to include it in an email, just right click on it and use Context MenuCopy error message to clipboard, or simply use Ctrl+C.

Bookmarked urls/repositories are shown below the current repository folders in the left tree view. You can add entries there by right clicking on any file or folder and select Context MenuAdd to Bookmarks. Clicking on a bookmark will browse to that repository and file/folder.