Commits

Kevin Dangoor  committed 7541bdb

register all of the new svn commands

  • Participants
  • Parent commits 8d7acb0

Comments (0)

Files changed (2)

File frontend/js/bespin/vcs.js

 
 
 /* PASTEHERE: VCS commands that are generated by paver generate_vcs */
-
 bespin.vcs.svnCommands.addCommand({
     name: 'add',
     takes: ['*'],
 
 
 bespin.vcs.svnCommands.addCommand({
+    name: 'merge',
+    takes: ['*'],
+    keychain: true,
+    preview: 'Apply the differences between two sources to a working copy path',
+    description:         "usage: svn merge [--help] [--revision REVISION] [--quiet] [--changelist\n" +
+        "                 CHANGELIST] [--depth {empty,files,immediates,infinity}]\n" +
+        "                 [--force] [--accept {base,working,mine-full,theirs-full}]\n" +
+        "                 [--change CHANGE] [--dry-run] [--record-only] [--ignore-\n" +
+        "                 ancestry IGNORE_ANCESTRY] [--reintegrate]\n" +
+        "                 paths [paths ...]\n" +
+        "\n" +
+        "Apply the differences between two sources to a working copy path.\n" +
+        "\n" +
+        "usage: 1. merge sourceURL1[@N] sourceURL2[@M] [WCPATH]\n" +
+        "       2. merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH]\n" +
+        "       3. merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [WCPATH]\n" +
+        "\n" +
+        "  1. In the first form, the source URLs are specified at revisions\n" +
+        "     N and M.  These are the two sources to be compared.  The revisions\n" +
+        "     default to HEAD if omitted.\n" +
+        "\n" +
+        "  2. In the second form, the URLs corresponding to the source working\n" +
+        "     copy paths define the sources to be compared.  The revisions must\n" +
+        "     be specified.\n" +
+        "\n" +
+        "  3. In the third form, SOURCE can be either a URL or a working copy\n" +
+        "     path (in which case its corresponding URL is used).  SOURCE (in\n" +
+        "     revision REV) is compared as it existed between revisions N and M\n" +
+        "     for each revision range provided.  If REV is not specified, HEAD\n" +
+        "     is assumed.  '-c M' is equivalent to '-r <M-1>:M', and '-c -M'\n" +
+        "     does the reverse: '-r M:<M-1>'.  If no revision ranges are\n" +
+        "     specified, the default range of 0:REV is used.  Multiple '-c'\n" +
+        "     and/or '-r' instances may be specified, and mixing of forward\n" +
+        "     and reverse ranges is allowed.\n" +
+        "\n" +
+        "  WCPATH is the working copy path that will receive the changes.\n" +
+        "  If WCPATH is omitted, a default value of '.' is assumed, unless\n" +
+        "  the sources have identical basenames that match a file within '.':\n" +
+        "  in which case, the differences will be applied to that file.\n" +
+        "\n" +
+        "  NOTE:  Subversion will only record metadata to track the merge\n" +
+        "  if the two sources are on the same line of history -- if the\n" +
+        "  first source is an ancestor of the second, or vice-versa.  This is\n" +
+        "  guaranteed to be the case when using the third form listed above.\n" +
+        "  The --ignore-ancestry option overrides this, forcing Subversion to\n" +
+        "  regard the sources as unrelated and not to track the merge.\n" +
+        "\n" +
+        "positional arguments:\n" +
+        "  paths\n" +
+        "\n" +
+        "optional arguments:\n" +
+        "  --help, -h            show this message and exit\n" +
+        "  --revision REVISION, -r REVISION\n" +
+        "                        ARG (some commands also take ARG1:ARG2 range) A\n" +
+        "                        revision argument can be one of: NUMBER revision\n" +
+        "                        number '{' DATE '}' revision at start of the date\n" +
+        "                        'HEAD' latest in repository 'BASE' base rev of item's\n" +
+        "                        working copy 'COMMITTED' last commit at or before BASE\n" +
+        "                        'PREV' revision just before COMMITTED\n" +
+        "  --quiet, -q           print nothing, or only summary information\n" +
+        "  --changelist CHANGELIST, --cl CHANGELIST\n" +
+        "                        operate only on members of changelist ARG\n" +
+        "  --depth {empty,files,immediates,infinity}\n" +
+        "                        limit operation by depth ARG ('empty', 'files',\n" +
+        "                        'immediates', or 'infinity')\n" +
+        "  --force               force operation to run\n" +
+        "  --accept {base,working,mine-full,theirs-full}\n" +
+        "                        specify automatic conflict resolution source\n" +
+        "  --change CHANGE, -c CHANGE\n" +
+        "                        the change made by revision ARG (like -r ARG-1:ARG) If\n" +
+        "                        ARG is negative this is like -r ARG:ARG-1\n" +
+        "  --dry-run             try operation but make no changes\n" +
+        "  --record-only         mark revisions as merged (use with -r)\n" +
+        "  --ignore-ancestry IGNORE_ANCESTRY\n" +
+        "                        ignore ancestry when calculating merges\n" +
+        "  --reintegrate         lump-merge all of source URL's unmerged changes\n" +
+        "\n",
+    execute: bespin.vcs.svnCommands.genericExecute
+});
+
+
+
+bespin.vcs.svnCommands.addCommand({
     name: 'blame',
     takes: ['*'],
+    aliases: ['praise', 'annotate', 'ann'],
     keychain: true,
     preview: 'blame (praise, annotate, ann): Output the content of specified files with revision and author information in-line',
     description:         "usage: svn blame [--help] [--revision REVISION] [--quiet] [--verbose]\n" +
 bespin.vcs.svnCommands.addCommand({
     name: 'copy',
     takes: ['*'],
+    aliases: ['cp'],
     prompting: function(command) {
         var dst = command[command.length - 1];
         var lastsrc = command[command.length - 2];
         return null;
     },
     preview: 'copy (cp): Duplicate something in working copy or repository, remembering history',
-    description:         "usage: svn copy [--help] [--revision REVISION] [--quiet] [--parents]\n" +
-        "                [--message MESSAGE] [--with-revprop WITH_REVPROP]\n" +
+    description:         "usage: svn copy [--help] [--revision REVISION] [--quiet] [--message MESSAGE]\n" +
+        "                [--parents] [--with-revprop WITH_REVPROP]\n" +
         "                src [src ...] dst\n" +
         "\n" +
         "copy (cp): Duplicate something in working copy or repository, remembering history.\n" +
         "                        working copy 'COMMITTED' last commit at or before BASE\n" +
         "                        'PREV' revision just before COMMITTED\n" +
         "  --quiet, -q           print nothing, or only summary information\n" +
+        "  --message MESSAGE, -m MESSAGE\n" +
+        "                        specify log message\n" +
         "  --parents             make intermediate directories\n" +
-        "  --message MESSAGE, -m MESSAGE\n" +
-        "                        specify log message MESSAGE\n" +
         "  --with-revprop WITH_REVPROP\n" +
         "                        set revision property WITH_REVPROP in new revision\n" +
         "                        using the name[=value] format\n" +
 
 
 bespin.vcs.svnCommands.addCommand({
-    name: 'help',
+    name: 'delete',
     takes: ['*'],
-    preview: 'Most subcommands take file and/or directory arguments, recursing on the directories',
-    description:         "usage: svn help\n" +
+    aliases: ['del', 'remove', 'rm'],
+    keychain: true,
+    preview: 'Remove files and directories from version control',
+    description:         "usage: svn delete [--help] [--quiet] [--message MESSAGE] [--force] [--keep-\n" +
+        "                  local]\n" +
+        "                  PATH_OR_URL [PATH_OR_URL ...]\n" +
         "\n" +
-        "Most subcommands take file and/or directory arguments, recursing on the directories.  If no arguments are supplied to such a command, it recurses on the current directory (inclusive) by default.\n" +
+        "Remove files and directories from version control.\n" +
+        "\n" +
+        "usage: 1. delete PATH...\n" +
+        "       2. delete URL...\n" +
+        "\n" +
+        "  1. Each item specified by a PATH is scheduled for deletion upon\n" +
+        "    the next commit.  Files, and directories that have not been\n" +
+        "    committed, are immediately removed from the working copy\n" +
+        "    unless the --keep-local option is given.\n" +
+        "    PATHs that are, or contain, unversioned or modified items will\n" +
+        "    not be removed unless the --force option is given.\n" +
+        "\n" +
+        "  2. Each item specified by a URL is deleted from the repository\n" +
+        "    via an immediate commit.\n" +
+        "\n" +
+        "positional arguments:\n" +
+        "  PATH_OR_URL\n" +
+        "\n" +
+        "optional arguments:\n" +
+        "  --help, -h            show this message and exit\n" +
+        "  --quiet, -q           print nothing, or only summary information\n" +
+        "  --message MESSAGE, -m MESSAGE\n" +
+        "                        specify log message\n" +
+        "  --force               force operation to run\n" +
+        "  --keep-local          keep path in working copy\n" +
+        "\n",
+    execute: bespin.vcs.svnCommands.genericExecute
+});
+
+
+
+bespin.vcs.svnCommands.addCommand({
+    name: 'switch',
+    takes: ['*'],
+    aliases: ['sw'],
+    keychain: true,
+    preview: 'Update the working copy to a different URL',
+    description:         "usage: svn switch [--help] [--revision REVISION] [--quiet] [--depth\n" +
+        "                  {empty,files,immediates,infinity}] [--force] [--accept\n" +
+        "                  {base,working,mine-full,theirs-full}] [--relocate FROM]\n" +
+        "                  [--ignore-externals]\n" +
+        "                  url [path]\n" +
+        "\n" +
+        "Update the working copy to a different URL.\n" +
+        "\n" +
+        "usage: 1. switch URL[@PEGREV] [PATH]\n" +
+        "       2. switch --relocate FROM TO [PATH...]\n" +
+        "\n" +
+        "  1. Update the working copy to mirror a new URL within the repository.\n" +
+        "     This behaviour is similar to 'svn update', and is the way to\n" +
+        "     move a working copy to a branch or tag within the same repository.\n" +
+        "     If specified, PEGREV determines in which revision the target is first\n" +
+        "     looked up.\n" +
+        "\n" +
+        "     If --force is used, unversioned obstructing paths in the working\n" +
+        "     copy do not automatically cause a failure if the switch attempts to\n" +
+        "     add the same path.  If the obstructing path is the same type (file\n" +
+        "     or directory) as the corresponding path in the repository it becomes\n" +
+        "     versioned but its contents are left 'as-is' in the working copy.\n" +
+        "     This means that an obstructing directory's unversioned children may\n" +
+        "     also obstruct and become versioned.  For files, any content differences\n" +
+        "     between the obstruction and the repository are treated like a local\n" +
+        "     modification to the working copy.  All properties from the repository\n" +
+        "     are applied to the obstructing path.\n" +
+        "\n" +
+        "     Use the --set-depth option to set a new working copy depth on the\n" +
+        "     targets of this operation.  Currently, the depth of a working copy\n" +
+        "     directory can only be increased (telescoped more deeply); you cannot\n" +
+        "     make a directory more shallow.\n" +
+        "\n" +
+        "  2. Rewrite working copy URL metadata to reflect a syntactic change only.\n" +
+        "     This is used when repository's root URL changes (such as a scheme\n" +
+        "     or hostname change) but your working copy still reflects the same\n" +
+        "     directory within the same repository.\n" +
+        "\n" +
+        "positional arguments:\n" +
+        "  url\n" +
+        "  path\n" +
+        "\n" +
+        "optional arguments:\n" +
+        "  --help, -h            show this message and exit\n" +
+        "  --revision REVISION, -r REVISION\n" +
+        "                        ARG (some commands also take ARG1:ARG2 range) A\n" +
+        "                        revision argument can be one of: NUMBER revision\n" +
+        "                        number '{' DATE '}' revision at start of the date\n" +
+        "                        'HEAD' latest in repository 'BASE' base rev of item's\n" +
+        "                        working copy 'COMMITTED' last commit at or before BASE\n" +
+        "                        'PREV' revision just before COMMITTED\n" +
+        "  --quiet, -q           print nothing, or only summary information\n" +
+        "  --depth {empty,files,immediates,infinity}\n" +
+        "                        limit operation by depth ARG ('empty', 'files',\n" +
+        "                        'immediates', or 'infinity')\n" +
+        "  --force               force operation to run\n" +
+        "  --accept {base,working,mine-full,theirs-full}\n" +
+        "                        specify automatic conflict resolution source\n" +
+        "  --relocate FROM       relocate via URL-rewriting\n" +
+        "  --ignore-externals    ignore externals definitions\n" +
+        "\n",
+    execute: bespin.vcs.svnCommands.genericExecute
+});
+
+
+
+bespin.vcs.svnCommands.addCommand({
+    name: 'move',
+    takes: ['*'],
+    aliases: ['mv', 'rename', 'ren'],
+    keychain: true,
+    preview: 'Move and/or rename something in working copy or repository',
+    description:         "usage: svn move [--help] [--quiet] [--message MESSAGE] [--force] [--parents]\n" +
+        "                [--with-revprop WITH_REVPROP]\n" +
+        "                src [src ...] dst\n" +
+        "\n" +
+        "Move and/or rename something in working copy or repository.\n" +
+        "\n" +
+        "When moving multiple sources, they will be added as children of DST,\n" +
+        "which must be a directory.\n" +
+        "\n" +
+        "  Note:  this subcommand is equivalent to a 'copy' and 'delete'.\n" +
+        "  Note:  the --revision option has no use and is deprecated.\n" +
+        "\n" +
+        "  SRC and DST can both be working copy (WC) paths or URLs:\n" +
+        "    WC  -> WC:   move and schedule for addition (with history)\n" +
+        "    URL -> URL:  complete server-side rename.\n" +
+        "  All the SRCs must be of the same type.\n" +
+        "\n" +
+        "positional arguments:\n" +
+        "  src                   source file(s) or URL(s)\n" +
+        "  dst                   destination file, url or directory\n" +
+        "\n" +
+        "optional arguments:\n" +
+        "  --help, -h            show this message and exit\n" +
+        "  --quiet, -q           print nothing, or only summary information\n" +
+        "  --message MESSAGE, -m MESSAGE\n" +
+        "                        specify log message\n" +
+        "  --force               force operation to run\n" +
+        "  --parents             make intermediate directories\n" +
+        "  --with-revprop WITH_REVPROP\n" +
+        "                        set revision property WITH_REVPROP in new revision\n" +
+        "                        using the name[=value] format\n" +
         "\n",
     execute: bespin.vcs.svnCommands.genericExecute
 });
         return {getKeychain: true, getMessage: true};
     },
     preview: 'commit (ci): Send changes from your working copy to the repository',
-    description:         "usage: svn commit [--help] [--quiet] [--changelist CHANGELIST] [--depth\n" +
-        "                  {empty,files,immediates,infinity}] [--no-unlock] [--message\n" +
-        "                  MESSAGE] [--with-revprop WITH_REVPROP] [--keep-changelists]\n" +
+    description:         "usage: svn commit [--help] [--quiet] [--message MESSAGE] [--changelist\n" +
+        "                  CHANGELIST] [--depth {empty,files,immediates,infinity}]\n" +
+        "                  [--no-unlock] [--with-revprop WITH_REVPROP] [--keep-\n" +
+        "                  changelists]\n" +
         "                  [files [files ...]]\n" +
         "\n" +
         "commit (ci): Send changes from your working copy to the repository.\n" +
         "optional arguments:\n" +
         "  --help, -h            show this message and exit\n" +
         "  --quiet, -q           print nothing, or only summary information\n" +
+        "  --message MESSAGE, -m MESSAGE\n" +
+        "                        specify log message\n" +
         "  --changelist CHANGELIST, --cl CHANGELIST\n" +
         "                        operate only on members of changelist ARG\n" +
         "  --depth {empty,files,immediates,infinity}\n" +
         "                        limit operation by depth ARG ('empty', 'files',\n" +
         "                        'immediates', or 'infinity')\n" +
         "  --no-unlock           don't unlock the targets\n" +
-        "  --message MESSAGE, -m MESSAGE\n" +
-        "                        specify log message\n" +
         "  --with-revprop WITH_REVPROP\n" +
         "                        set revision property ARG in new revision using the\n" +
         "                        name[=value] format\n" +
 
 
 bespin.vcs.svnCommands.addCommand({
+    name: 'propset',
+    takes: ['*'],
+    aliases: ['pset', 'ps'],
+    preview: 'Set the value of a property on files, dirs, or revisions',
+    description:         "usage: svn propset [--help] [--quiet] [--changelist CHANGELIST] [--depth\n" +
+        "                   {empty,files,immediates,infinity}] [--force]\n" +
+        "                   propname propval path [path ...]\n" +
+        "\n" +
+        "Set the value of a property on files, dirs, or revisions.\n" +
+        "\n" +
+        "  Note: svn recognizes the following special versioned properties\n" +
+        "  but will store any arbitrary properties set:\n" +
+        "    svn:ignore     - A newline separated list of file patterns to ignore.\n" +
+        "    svn:keywords   - Keywords to be expanded.  Valid keywords are:\n" +
+        "      URL, HeadURL             - The URL for the head version of the object.\n" +
+        "      Author, LastChangedBy    - The last person to modify the file.\n" +
+        "      Date, LastChangedDate    - The date/time the object was last modified.\n" +
+        "      Rev, Revision,           - The last revision the object changed.\n" +
+        "      LastChangedRevision\n" +
+        "      Id                       - A compressed summary of the previous\n" +
+        "                                   4 keywords.\n" +
+        "    svn:executable - If present, make the file executable.  Use\n" +
+        "      'svn propdel svn:executable PATH...' to clear.\n" +
+        "    svn:eol-style  - One of 'native', 'LF', 'CR', 'CRLF'.\n" +
+        "    svn:mime-type  - The mimetype of the file.  Used to determine\n" +
+        "      whether to merge the file, and how to serve it from Apache.\n" +
+        "      A mimetype beginning with 'text/' (or an absent mimetype) is\n" +
+        "      treated as text.  Anything else is treated as binary.\n" +
+        "    svn:externals  - A newline separated list of module specifiers,\n" +
+        "      each of which consists of a relative directory path, optional\n" +
+        "      revision flags and an URL.  The ordering of the three elements\n" +
+        "      implements different behavior.  Subversion 1.4 and earlier only\n" +
+        "      support the following formats and the URLs cannot have peg\n" +
+        "      revisions:\n" +
+        "        foo             http://example.com/repos/zig\n" +
+        "        foo/bar -r 1234 http://example.com/repos/zag\n" +
+        "      Subversion 1.5 and greater support the above formats and the\n" +
+        "      following formats where the URLs may have peg revisions:\n" +
+        "                http://example.com/repos/zig foo\n" +
+        "        -r 1234 http://example.com/repos/zig foo/bar\n" +
+        "      Relative URLs are supported in Subversion 1.5 and greater for\n" +
+        "      all above formats and are indicated by starting the URL with one\n" +
+        "      of the following strings\n" +
+        "        ../  to the parent directory of the extracted external\n" +
+        "        ^/   to the repository root\n" +
+        "        //   to the scheme\n" +
+        "        /    to the server root\n" +
+        "      The ambiguous format 'relative_path relative_path' is taken as\n" +
+        "      'relative_url relative_path' with peg revision support.\n" +
+        "    svn:needs-lock - If present, indicates that the file should be locked\n" +
+        "      before it is modified.  Makes the working copy file read-only\n" +
+        "      when it is not locked.  Use 'svn propdel svn:needs-lock PATH...'\n" +
+        "      to clear.\n" +
+        "\n" +
+        "  The svn:keywords, svn:executable, svn:eol-style, svn:mime-type and\n" +
+        "  svn:needs-lock properties cannot be set on a directory.  A non-recursive\n" +
+        "  attempt will fail, and a recursive attempt will set the property\n" +
+        "  only on the file children of the directory.\n" +
+        "\n" +
+        "positional arguments:\n" +
+        "  propname\n" +
+        "  propval\n" +
+        "  path\n" +
+        "\n" +
+        "optional arguments:\n" +
+        "  --help, -h            show this message and exit\n" +
+        "  --quiet, -q           print nothing, or only summary information\n" +
+        "  --changelist CHANGELIST, --cl CHANGELIST\n" +
+        "                        operate only on members of changelist ARG\n" +
+        "  --depth {empty,files,immediates,infinity}\n" +
+        "                        limit operation by depth ARG ('empty', 'files',\n" +
+        "                        'immediates', or 'infinity')\n" +
+        "  --force               force operation to run\n" +
+        "\n",
+    execute: bespin.vcs.svnCommands.genericExecute
+});
+
+
+
+bespin.vcs.svnCommands.addCommand({
     name: 'update',
     takes: ['*'],
     aliases: ['up'],
 
 
 bespin.vcs.svnCommands.addCommand({
+    name: 'cat',
+    takes: ['*'],
+    keychain: true,
+    preview: 'Output the content of specified files or URLs',
+    description:         "usage: svn cat [--help] [--revision REVISION] targets [targets ...]\n" +
+        "\n" +
+        "Output the content of specified files or URLs.\n" +
+        "\n" +
+        "usage: cat TARGET[@REV]...\n" +
+        "\n" +
+        "  If specified, REV determines in which revision the target is first\n" +
+        "  looked up.\n" +
+        "\n" +
+        "positional arguments:\n" +
+        "  targets\n" +
+        "\n" +
+        "optional arguments:\n" +
+        "  --help, -h            show this message and exit\n" +
+        "  --revision REVISION, -r REVISION\n" +
+        "                        ARG (some commands also take ARG1:ARG2 range) A\n" +
+        "                        revision argument can be one of: NUMBER revision\n" +
+        "                        number '{' DATE '}' revision at start of the date\n" +
+        "                        'HEAD' latest in repository 'BASE' base rev of item's\n" +
+        "                        working copy 'COMMITTED' last commit at or before BASE\n" +
+        "                        'PREV' revision just before COMMITTED\n" +
+        "\n",
+    execute: bespin.vcs.svnCommands.genericExecute
+});
+
+
+
+bespin.vcs.svnCommands.addCommand({
     name: 'info',
     takes: ['*'],
     preview: 'info: Display information about a local or remote item',
 
 
 bespin.vcs.svnCommands.addCommand({
+    name: 'propget',
+    takes: ['*'],
+    aliases: ['pg', 'pget'],
+    preview: 'Print the value of a property on files, dirs, or revisions',
+    description:         "usage: svn propget [--help] [--revision REVISION] [--changelist CHANGELIST]\n" +
+        "                   [--depth {empty,files,immediates,infinity}] [--strict]\n" +
+        "                   [--xml]\n" +
+        "                   propname [files [files ...]]\n" +
+        "\n" +
+        "Print the value of a property on files, dirs, or revisions.\n" +
+        "\n" +
+        "  By default, this subcommand will add an extra newline to the end\n" +
+        "  of the property values so that the output looks pretty.  Also,\n" +
+        "  whenever there are multiple paths involved, each property value\n" +
+        "  is prefixed with the path with which it is associated.  Use\n" +
+        "  the --strict option to disable these beautifications (useful,\n" +
+        "  for example, when redirecting binary property values to a file).\n" +
+        "\n" +
+        "positional arguments:\n" +
+        "  propname\n" +
+        "  files                 list of files to operate on\n" +
+        "\n" +
+        "optional arguments:\n" +
+        "  --help, -h            show this message and exit\n" +
+        "  --revision REVISION, -r REVISION\n" +
+        "                        ARG (some commands also take ARG1:ARG2 range) A\n" +
+        "                        revision argument can be one of: NUMBER revision\n" +
+        "                        number '{' DATE '}' revision at start of the date\n" +
+        "                        'HEAD' latest in repository 'BASE' base rev of item's\n" +
+        "                        working copy 'COMMITTED' last commit at or before BASE\n" +
+        "                        'PREV' revision just before COMMITTED\n" +
+        "  --changelist CHANGELIST, --cl CHANGELIST\n" +
+        "                        operate only on members of changelist ARG\n" +
+        "  --depth {empty,files,immediates,infinity}\n" +
+        "                        limit operation by depth ARG ('empty', 'files',\n" +
+        "                        'immediates', or 'infinity')\n" +
+        "  --strict              use strict semantics\n" +
+        "  --xml                 output in XML\n" +
+        "\n",
+    execute: bespin.vcs.svnCommands.genericExecute
+});
+
+
+
+bespin.vcs.svnCommands.addCommand({
+    name: 'proplist',
+    takes: ['*'],
+    aliases: ['plist', 'pl'],
+    preview: 'List all properties on files, dirs, or revisions',
+    description:         "usage: svn proplist [--help] [--quiet] [--verbose] [--changelist CHANGELIST]\n" +
+        "                    [--depth {empty,files,immediates,infinity}] [--xml]\n" +
+        "                    [files [files ...]]\n" +
+        "\n" +
+        "List all properties on files, dirs, or revisions.\n" +
+        "\n" +
+        "positional arguments:\n" +
+        "  files                 list of files to operate on\n" +
+        "\n" +
+        "optional arguments:\n" +
+        "  --help, -h            show this message and exit\n" +
+        "  --quiet, -q           print nothing, or only summary information\n" +
+        "  --verbose, -v         print extra information\n" +
+        "  --changelist CHANGELIST, --cl CHANGELIST\n" +
+        "                        operate only on members of changelist ARG\n" +
+        "  --depth {empty,files,immediates,infinity}\n" +
+        "                        limit operation by depth ARG ('empty', 'files',\n" +
+        "                        'immediates', or 'infinity')\n" +
+        "  --xml                 output in XML\n" +
+        "\n",
+    execute: bespin.vcs.svnCommands.genericExecute
+});
+
+
+
+bespin.vcs.svnCommands.addCommand({
     name: 'status',
     takes: ['*'],
     aliases: ['st', 'stat'],
 
 
 bespin.vcs.svnCommands.addCommand({
+    name: 'mkdir',
+    takes: ['*'],
+    keychain: true,
+    preview: 'Create a new directory under version control',
+    description:         "usage: svn mkdir [--help] [--quiet] [--message MESSAGE] [--changelist\n" +
+        "                 CHANGELIST] [--parents]\n" +
+        "                 path [path ...]\n" +
+        "\n" +
+        "Create a new directory under version control.\n" +
+        "\n" +
+        "  Create version controlled directories.\n" +
+        "\n" +
+        "  1. Each directory specified by a working copy PATH is created locally\n" +
+        "    and scheduled for addition upon the next commit.\n" +
+        "\n" +
+        "  2. Each directory specified by a URL is created in the repository via\n" +
+        "    an immediate commit.\n" +
+        "\n" +
+        "  In both cases, all the intermediate directories must already exist,\n" +
+        "  unless the --parents option is given.\n" +
+        "\n" +
+        "positional arguments:\n" +
+        "  path                  URL or file path to create\n" +
+        "\n" +
+        "optional arguments:\n" +
+        "  --help, -h            show this message and exit\n" +
+        "  --quiet, -q           print nothing, or only summary information\n" +
+        "  --message MESSAGE, -m MESSAGE\n" +
+        "                        specify log message\n" +
+        "  --changelist CHANGELIST, --cl CHANGELIST\n" +
+        "                        operate only on members of changelist ARG\n" +
+        "  --parents             make intermediate directories\n" +
+        "\n",
+    execute: bespin.vcs.svnCommands.genericExecute
+});
+
+
+
+bespin.vcs.svnCommands.addCommand({
+    name: 'propdel',
+    takes: ['*'],
+    aliases: ['pdel', 'pd'],
+    preview: 'Remove a property from files, dirs, or revisions',
+    description:         "usage: svn propdel [--help] [--quiet] [--changelist CHANGELIST] [--depth\n" +
+        "                   {empty,files,immediates,infinity}]\n" +
+        "                   propname [files [files ...]]\n" +
+        "\n" +
+        "Remove a property from files, dirs, or revisions.\n" +
+        "\n" +
+        "positional arguments:\n" +
+        "  propname\n" +
+        "  files                 list of files to operate on\n" +
+        "\n" +
+        "optional arguments:\n" +
+        "  --help, -h            show this message and exit\n" +
+        "  --quiet, -q           print nothing, or only summary information\n" +
+        "  --changelist CHANGELIST, --cl CHANGELIST\n" +
+        "                        operate only on members of changelist ARG\n" +
+        "  --depth {empty,files,immediates,infinity}\n" +
+        "                        limit operation by depth ARG ('empty', 'files',\n" +
+        "                        'immediates', or 'infinity')\n" +
+        "\n",
+    execute: bespin.vcs.svnCommands.genericExecute
+});
+
+
+
+bespin.vcs.svnCommands.addCommand({
     name: 'resolve',
     takes: ['*'],
     preview: 'Resolve conflicts on working copy files or directories',
         }
         return {getKeychain: true, getMessage: true};
     },"""
+        elif "help" in command.__name__:
+            # use the help that's defined in Bespin
+            continue
         else:
             prompting = ""
             keychain = "" if not command.reads_remote and not command.writes_remote \