The mkdir command has two forms and both are useful in different situations.

The first form uses a URL argument and operates directly on a repository. This is useful when you do not have local Working Copy, like when first creating a new project in a repository that is laid out in the multi-project form (see this post for more info). When using the multi-project layout for a repository, you need to create at least 2 directories for each project – the first being at the root of the repository and should be based on the project name (for clarity), and then a 2nd directory that is a child of the first directory called trunk.

The second form of the mkdir command uses a local directory name argument and operates on the local Working Copy only. Using this version of the mkdir command is a shortcut for using your operating system’s equivalent command to create a new directory and then using the add command to add the newly created directory to Subversion. The Subversion mkdir command does these two steps in one command.

General Form
The URL form is.

svn mkdir [OPTIONS] URL

The local directory form:

svn mkdir [OPTIONS] PATH

Example Usage 1
Create a directory on the server, in the root of the repository, to house a brand new project, and then create a trunk directory on the server, ready to add the for a brand new project:

svn mkdir -m “Commit Message” http://svn.mydomain.com/repos/test/exampleproject

svn mkdir -m “Commit Message” http://svn.mydomain.com/repos/test/exampleproject/trunk

Example Usage 2
Do the same thing as the previous example, but do it in one command by passing the --parents option, that tells Subversion to create any intermediate directories that do not already exist.

svn mkdir -m “Commit Message” –parents http://svn.mydomain.com/repos/test/exampleproject/trunk

Example Usage 3
Create a new sub-directory in the current local directory (which is part of a Working Copy) and mark it to be added to the repository the next time a Subversion commit command is performed.

svn mkdir mylocaldir