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.66. 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 Menu → Show 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 Menu → Copy 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 Menu → Add to Bookmarks.
Clicking on a bookmark will browse to that repository and file/folder.