# # # patch "asciik.cc" # from [2ca02070a5f71e971d8f8b7d1b469b805274ce0a] # to [a4d7d66878035a99c7a0424f4d4cc91318fe2ba4] # # patch "cmd.hh" # from [6dd61b122a71bc237aff5a33149542e3aad8a0f0] # to [3cb17398a31af4acc7c785e2f7efbbbe3a14c274] # # patch "cmd_automate.cc" # from [363c37841f31b7e61fec9779443aa218efd53309] # to [b051e7231aabf55de2e33d19379e7051d6fa72d1] # # patch "cmd_db.cc" # from [d000c1a9e64fec3d3cef0906b213fb79c7ec228b] # to [639d701a732f7b2f43ffade40fb3b3c966f92292] # # patch "cmd_diff_log.cc" # from [e271eade742d90477ce1659b6f1b529d3344a154] # to [65cc2380294983ba6e095247d434dbbd8883b898] # # patch "cmd_files.cc" # from [5bca090dd1c5e2b2531137089e1fd7eaf666e08c] # to [b3e0ca1cb55a38fbbf8cb631ae267032742f326f] # # patch "cmd_key_cert.cc" # from [1d33aed472b1d837b1dd26be4c37bf05a049789c] # to [41ec84001fbc2ad415128b1635a426317c56553e] # # patch "cmd_list.cc" # from [0ffb32b2c7d7d227341da5dc786ced87a80aa84c] # to [72e73a38bcb76a30f62a556d367b35f817eab8fb] # # patch "cmd_merging.cc" # from [754eaa4227908dcdafc4465ae67ae8500a070ff9] # to [6e93678185ed13e3b17a1297caa6cf8bb88d5632] # # patch "cmd_netsync.cc" # from [d47b6326a29bcaba6e63ce2769649e92faa032b0] # to [9b1d9738ce80949189304e0e3b31d3d7dc5f61b4] # # patch "cmd_othervcs.cc" # from [530af842d8bd686986b3b8b5f44c4163c81a1688] # to [4b7b092cc8a3aecc134727a10242958fcd97d651] # # patch "cmd_packet.cc" # from [b1244abb8ed7125ec335777c929496f177a05436] # to [d5146cb4d1118fad790c772741ceda7a055f8bf3] # # patch "cmd_ws_commit.cc" # from [0cad2978898b45193f1985b4286f59f2e1542452] # to [8402e317a9f920469babbae15748cde3dc5f9bfa] # # patch "commands.cc" # from [08eb1c1b105e755cb376db178167be48a53cb07a] # to [483ee28f4a155cf3bff85b6db3f77f1d85083eae] # # patch "revision.cc" # from [75a5757a70e4f194804406820e1faf3d4233a560] # to [e7ebc4012c20018b4b583e22eb3299d33113b862] # # patch "sha1.cc" # from [df789445950009447e89614f2b5752b016f490d2] # to [98c1df304ae062bdbf2157f023ce31595191fb02] # ============================================================ --- asciik.cc 2ca02070a5f71e971d8f8b7d1b469b805274ce0a +++ asciik.cc a4d7d66878035a99c7a0424f4d4cc91318fe2ba4 @@ -367,7 +367,7 @@ CMD(asciik, N_("debug"), N_("SELECTOR"), CMD(asciik, N_("debug"), N_("SELECTOR"), N_("Prints an ASCII representation of the revisions' graph"), - N_("prints an ASCII representation of the graph"), + N_(""), options::opts::none) { N(args.size() == 1, ============================================================ --- cmd.hh 6dd61b122a71bc237aff5a33149542e3aad8a0f0 +++ cmd.hh 3cb17398a31af4acc7c785e2f7efbbbe3a14c274 @@ -189,9 +189,9 @@ std::string commands::cmd_ ## C::desc() } \ std::string commands::cmd_ ## C::desc() \ { \ - std::string result = _(desc_.c_str()); \ + std::string result = abstract() + ".\n" + _(desc_.c_str()); \ result += "\n"; \ - result += (F("Alias for %s") % #realcommand).str(); \ + result += (F("Alias for %s.") % #realcommand).str(); \ return result; \ } \ void commands::cmd_ ## C::exec(app_state & app, \ ============================================================ --- cmd_automate.cc 363c37841f31b7e61fec9779443aa218efd53309 +++ cmd_automate.cc b051e7231aabf55de2e33d19379e7051d6fa72d1 @@ -376,7 +376,10 @@ CMD_WITH_SUBCMDS(automate, N_("automatio CMD_WITH_SUBCMDS(automate, N_("automation"), N_("Interface for scripted execution"), - N_("automation interface"), + N_("This set of commands provides a stable interface to run " + "monotone from other, external tools and interact with it " + "by means of a text protocol over standard file " + "descriptors."), options::opts::none) { if (args.size() == 0) ============================================================ --- cmd_db.cc d000c1a9e64fec3d3cef0906b213fb79c7ec228b +++ cmd_db.cc 639d701a732f7b2f43ffade40fb3b3c966f92292 @@ -62,7 +62,8 @@ CMD(db, N_("database"), "regenerate_caches\n" "set_epoch BRANCH EPOCH\n"), N_("Manipulates database state"), - N_("manipulate database state"), + N_("This set of commands are used to create and maintain the database " + "that monotone uses to maintain the certificates' data"), options::opts::drop_attr) { if (args.size() == 1) @@ -124,7 +125,9 @@ CMD(set, N_("vars"), N_("DOMAIN NAME VAL CMD(set, N_("vars"), N_("DOMAIN NAME VALUE"), N_("Sets a database variable"), - N_("set the database variable NAME to VALUE, in domain DOMAIN"), + N_("This command modifies (or adds if it did not exist before) the " + "variable named NAME, stored in the database, and sets it to the " + "given value in VALUE. The variable is placed in the domain DOMAIN."), options::opts::none) { if (args.size() != 3) @@ -141,7 +144,8 @@ CMD(unset, N_("vars"), N_("DOMAIN NAME") CMD(unset, N_("vars"), N_("DOMAIN NAME"), N_("Unsets a database variable"), - N_("remove the database variable NAME in domain DOMAIN"), + N_("This command removes the variable NAME from domain DOMAIN, which" + "was previously stored in the database."), options::opts::none) { if (args.size() != 2) @@ -159,7 +163,7 @@ CMD(complete, N_("informative"), N_("(re CMD(complete, N_("informative"), N_("(revision|file|key) PARTIAL-ID"), N_("Completes a partial identifier"), - N_("complete partial id"), + N_(""), options::opts::verbose) { if (args.size() != 2) @@ -207,9 +211,10 @@ CMD(test_migration_step, hidden_group(), } CMD(test_migration_step, hidden_group(), "SCHEMA", - "Runs one step of migration on the specified database", - "run one step of migration - from SCHEMA to its successor - " - "on the specified database", options::opts::none) + N_("Runs one step of migration on the specified database"), + N_("This command migrates the given database from the specified schema " + "in SCHEMA to its successor."), + options::opts::none) { if (args.size() != 1) throw usage(name); ============================================================ --- cmd_diff_log.cc e271eade742d90477ce1659b6f1b529d3344a154 +++ cmd_diff_log.cc 65cc2380294983ba6e095247d434dbbd8883b898 @@ -470,10 +470,12 @@ CMD(diff, N_("informative"), N_("[PATH]. CMD(diff, N_("informative"), N_("[PATH]..."), N_("Shows current differences"), - N_("show current diffs on stdout.\n" - "If one revision is given, the diff between the workspace and " - "that revision is shown. If two revisions are given, the diff between " - "them is given. If no format is specified, unified is used by default."), + N_("Compares the current tree with the files in the repository and " + "prints the differences on the standard output.\n" + "If one revision is given, the diff between the workspace and " + "that revision is shown. If two revisions are given, the diff " + "between them is given. If no format is specified, unified is " + "used by default."), options::opts::revision | options::opts::depth | options::opts::exclude | options::opts::diff_options) { @@ -600,8 +602,9 @@ CMD(log, N_("informative"), N_("[FILE] . CMD(log, N_("informative"), N_("[FILE] ..."), N_("Prints history in reverse order"), - N_("print history in reverse order (filtering by 'FILE'). If one or more " - "revisions are given, use them as a starting point."), + N_("This command prints history in reverse order, filtering it by " + "FILE if given. If one or more revisions are given, uses them as " + "a starting point."), options::opts::last | options::opts::next | options::opts::from | options::opts::to | options::opts::brief | options::opts::diffs ============================================================ --- cmd_files.cc 5bca090dd1c5e2b2531137089e1fd7eaf666e08c +++ cmd_files.cc b3e0ca1cb55a38fbbf8cb631ae267032742f326f @@ -28,7 +28,7 @@ CMD(fload, N_("debug"), "", CMD(fload, N_("debug"), "", N_("Loads a file's contents into the database"), - N_("load file contents into db"), + N_(""), options::opts::none) { data dat; @@ -46,7 +46,7 @@ CMD(fmerge, N_("debug"), N_(" "), N_("Merges 3 files and outputs the result"), - N_("merge 3 files and output result"), + N_(""), options::opts::none) { if (args.size() != 3) @@ -84,7 +84,7 @@ CMD(fdiff, N_("debug"), N_("SRCNAME DEST CMD(fdiff, N_("debug"), N_("SRCNAME DESTNAME SRCID DESTID"), N_("Differences 2 files and outputs the result"), - N_("diff 2 files and output result"), + N_(""), options::opts::diff_options) { if (args.size() != 4) @@ -121,7 +121,8 @@ CMD(annotate, N_("informative"), N_("PAT CMD(annotate, N_("informative"), N_("PATH"), N_("Prints an annotated copy of a file"), - N_("print annotated copy of the file from REVISION"), + N_("Calculates and prints an annotated copy of the given file from " + "the specified REVISION."), options::opts::revision | options::opts::brief) { revision_id rid; @@ -190,7 +191,8 @@ CMD(identify, N_("debug"), N_("[PATH]"), CMD(identify, N_("debug"), N_("[PATH]"), N_("Calculates the identity of a file or stdin"), - N_("calculate identity of PATH or stdin"), + N_("If any PATH is given, calculates their identity; otherwise, the " + "one from the standard input is calculated."), options::opts::none) { if (!(args.size() == 0 || args.size() == 1)) @@ -254,7 +256,8 @@ CMD(cat, N_("informative"), CMD(cat, N_("informative"), N_("FILENAME"), N_("Prints a file from the database"), - N_("write file from database to stdout"), + N_("Fetches the given file FILENAME from the database and prints it " + "to the standard output."), options::opts::revision) { if (args.size() != 1) ============================================================ --- cmd_key_cert.cc 1d33aed472b1d837b1dd26be4c37bf05a049789c +++ cmd_key_cert.cc 41ec84001fbc2ad415128b1635a426317c56553e @@ -31,7 +31,7 @@ CMD(genkey, N_("key and cert"), N_("KEYI CMD(genkey, N_("key and cert"), N_("KEYID"), N_("Generates an RSA key-pair"), - N_("generate an RSA key-pair"), + N_(""), options::opts::none) { if (args.size() != 1) @@ -59,7 +59,7 @@ CMD(dropkey, N_("key and cert"), N_("KEY CMD(dropkey, N_("key and cert"), N_("KEYID"), N_("Drops a public and/or private key"), - N_("drop a public and private key"), + N_(""), options::opts::none) { bool key_deleted = false; @@ -101,7 +101,7 @@ CMD(passphrase, N_("key and cert"), N_(" CMD(passphrase, N_("key and cert"), N_("KEYID"), N_("Changes the passphrase of a private RSA key"), - N_("change passphrase of a private RSA key"), + N_(""), options::opts::none) { if (args.size() != 1) @@ -123,8 +123,8 @@ CMD(ssh_agent_export, N_("key and cert") CMD(ssh_agent_export, N_("key and cert"), N_("[FILENAME]"), - N_("Export a private key for use with ssh-agent"), - N_("export your monotone key for use with ssh-agent"), + N_("Exports a private key for use with ssh-agent"), + N_(""), options::opts::none) { if (args.size() > 1) @@ -163,7 +163,7 @@ CMD(ssh_agent_add, N_("key and cert"), " CMD(ssh_agent_add, N_("key and cert"), "", N_("Adds a private key to ssh-agent"), - N_("Add your monotone key to ssh-agent"), + N_(""), options::opts::none) { if (args.size() > 1) @@ -180,7 +180,7 @@ CMD(cert, N_("key and cert"), N_("REVISI CMD(cert, N_("key and cert"), N_("REVISION CERTNAME [CERTVAL]"), N_("Creates a certificate for a revision"), - N_("create a cert for a revision"), + N_(""), options::opts::none) { if ((args.size() != 3) && (args.size() != 2)) @@ -214,8 +214,7 @@ CMD(trusted, N_("key and cert"), CMD(trusted, N_("key and cert"), N_("REVISION NAME VALUE SIGNER1 [SIGNER2 [...]]"), N_("Tests whether a hypothetical certificate would be trusted"), - N_("test whether a hypothetical cert would be trusted " - "by current settings"), + N_("The current settings are used to run the test."), options::opts::none) { if (args.size() < 4) @@ -262,7 +261,7 @@ CMD(tag, N_("review"), N_("REVISION TAGN CMD(tag, N_("review"), N_("REVISION TAGNAME"), N_("Puts a symbolic tag certificate on a revision"), - N_("put a symbolic tag cert on a revision"), + N_(""), options::opts::none) { if (args.size() != 2) @@ -276,7 +275,7 @@ CMD(testresult, N_("review"), N_("ID (pa CMD(testresult, N_("review"), N_("ID (pass|fail|true|false|yes|no|1|0)"), N_("Notes the results of running a test on a revision"), - N_("note the results of running a test on a revision"), + N_(""), options::opts::none) { if (args.size() != 2) @@ -290,7 +289,7 @@ CMD(approve, N_("review"), N_("REVISION" CMD(approve, N_("review"), N_("REVISION"), N_("Approves a particular revision"), - N_("approve of a particular revision"), + N_(""), options::opts::branch) { if (args.size() != 1) @@ -305,7 +304,7 @@ CMD(comment, N_("review"), N_("REVISION CMD(comment, N_("review"), N_("REVISION [COMMENT]"), N_("Comments on a particular revision"), - N_("comment on a particular revision"), + N_(""), options::opts::none) { if (args.size() != 1 && args.size() != 2) ============================================================ --- cmd_list.cc 0ffb32b2c7d7d227341da5dc786ced87a80aa84c +++ cmd_list.cc 72e73a38bcb76a30f62a556d367b35f817eab8fb @@ -490,9 +490,9 @@ CMD(list, N_("informative"), "missing\n" "changed"), N_("Shows database objects"), - N_("show database objects, or the current workspace manifest, " + N_("Shows database objects, or the current workspace manifest, " "or known, unknown, intentionally ignored, missing, or " - "changed-state files"), + "changed-state files."), options::opts::depth | options::opts::exclude) { if (args.size() == 0) ============================================================ --- cmd_merging.cc 754eaa4227908dcdafc4465ae67ae8500a070ff9 +++ cmd_merging.cc 6e93678185ed13e3b17a1297caa6cf8bb88d5632 @@ -128,10 +128,9 @@ CMD(update, N_("workspace"), "", CMD(update, N_("workspace"), "", N_("Updates the workspace"), - N_("update workspace.\n" - "This command modifies your workspace to be based off of a " - "different revision, preserving uncommitted changes as it does so. " - "If a revision is given, update the workspace to that revision. " + N_("This command modifies your workspace to be based off of a " + "different revision, preserving uncommitted changes as it does so. " + "If a revision is given, update the workspace to that revision. " "If not, update the workspace to the head of the branch."), options::opts::branch | options::opts::revision) { @@ -332,7 +331,7 @@ CMD(merge, N_("tree"), "", // log message constructed in merge_two().) CMD(merge, N_("tree"), "", N_("Merges unmerged heads of a branch"), - N_("merge unmerged heads of branch"), + N_(""), options::opts::branch | options::opts::date | options::opts::author) { typedef std::pair revpair; @@ -433,7 +432,7 @@ CMD(propagate, N_("tree"), N_("SOURCE-BR CMD(propagate, N_("tree"), N_("SOURCE-BRANCH DEST-BRANCH"), N_("Merges from one branch to another asymmetrically"), - N_("merge from one branch to another asymmetrically"), + N_(""), options::opts::date | options::opts::author | options::opts::message | options::opts::msgfile) { if (args.size() != 2) @@ -445,7 +444,7 @@ CMD(merge_into_dir, N_("tree"), N_("SOUR CMD(merge_into_dir, N_("tree"), N_("SOURCE-BRANCH DEST-BRANCH DIR"), N_("Merges one branch into a subdirectory in another branch"), - N_("merge one branch into a subdirectory in another branch"), + N_(""), options::opts::date | options::opts::author | options::opts::message | options::opts::msgfile) { // This is a special merge operator, but very useful for people @@ -603,7 +602,7 @@ CMD(merge_into_workspace, N_("tree"), CMD(merge_into_workspace, N_("tree"), N_("OTHER-REVISION"), N_("Merges a revision into the current workspace's base revision"), - N_("Merge OTHER-REVISION into the current workspace's base revision, " + N_("Merges OTHER-REVISION into the current workspace's base revision, " "and update the current workspace with the result. There can be no " "pending changes in the current workspace. Both OTHER-REVISION and " "the workspace's base revision will be recorded as parents on commit. " @@ -697,8 +696,8 @@ CMD(explicit_merge, N_("tree"), CMD(explicit_merge, N_("tree"), N_("LEFT-REVISION RIGHT-REVISION DEST-BRANCH"), N_("Merges two explicitly given revisions"), - N_("merge two explicitly given revisions, " - "placing result in given branch"), + N_("The results of the merge are placed on the branch specified by " + "DEST-BRANCH."), options::opts::date | options::opts::author) { revision_id left, right; @@ -722,9 +721,9 @@ CMD(show_conflicts, N_("informative"), N } CMD(show_conflicts, N_("informative"), N_("REV REV"), - N_("Shows what conflicts would need to be resolved"), - N_("Show what conflicts would need to be resolved " - "to merge the given revisions."), + N_("Shows what conflicts need resolution between two revisions"), + N_("The conflicts are calculated based on the two revisions given in " + "the REV parameters."), options::opts::branch | options::opts::date | options::opts::author) { if (args.size() != 2) @@ -765,8 +764,7 @@ CMD(pluck, N_("workspace"), N_("[-r FROM CMD(pluck, N_("workspace"), N_("[-r FROM] -r TO [PATH...]"), N_("Applies changes made at arbitrary places in history"), - N_("Apply changes made at arbitrary places in history to current workspace. " - "This command takes changes made at any point in history, and " + N_("This command takes changes made at any point in history, and " "edits your current workspace to include those changes. The end result " "is identical to 'mtn diff -r FROM -r TO | patch -p0', except that " "this command uses monotone's merger, and thus intelligently handles " @@ -933,7 +931,7 @@ CMD(heads, N_("tree"), "", CMD(heads, N_("tree"), "", N_("Shows unmerged head revisions of a branch"), - N_("show unmerged head revisions of branch"), + N_(""), options::opts::branch) { set heads; @@ -959,8 +957,7 @@ CMD(get_roster, N_("debug"), N_("[REVID] CMD(get_roster, N_("debug"), N_("[REVID]"), N_("Dumps the roster associated with a given identifier"), - N_("dump the roster associated with the given REVID, " - "or the workspace if no REVID is given"), + N_("If no REVID is given, the workspace is used."), options::opts::none) { roster_t roster; ============================================================ --- cmd_netsync.cc d47b6326a29bcaba6e63ce2769649e92faa032b0 +++ cmd_netsync.cc 9b1d9738ce80949189304e0e3b31d3d7dc5f61b4 @@ -123,7 +123,8 @@ CMD(push, N_("network"), N_("[ADDRESS[:P CMD(push, N_("network"), N_("[ADDRESS[:PORTNUMBER] [PATTERN ...]]"), N_("Pushes branches to a netsync server"), - N_("push branches matching PATTERN to netsync server at ADDRESS"), + N_("This will push all branches that match the pattern given in PATTERN " + "to the netsync server at the address ADDRESS."), options::opts::set_default | options::opts::exclude | options::opts::key_to_push) { @@ -139,7 +140,8 @@ CMD(pull, N_("network"), N_("[ADDRESS[:P CMD(pull, N_("network"), N_("[ADDRESS[:PORTNUMBER] [PATTERN ...]]"), N_("Pulls branches from a netsync server"), - N_("pull branches matching PATTERN from netsync server at ADDRESS"), + N_("This pulls all branches that match the pattern given in PATTERN " + "from the netsync server at the address ADDRESS."), options::opts::set_default | options::opts::exclude) { utf8 addr; @@ -156,7 +158,8 @@ CMD(sync, N_("network"), N_("[ADDRESS[:P CMD(sync, N_("network"), N_("[ADDRESS[:PORTNUMBER] [PATTERN ...]]"), N_("Synchronizes branches with a netsync server"), - N_("sync branches matching PATTERN with netsync server at ADDRESS"), + N_("This synchronizes branches that match the pattern given in PATTERN " + "with the netsync server at the address ADDRESS."), options::opts::set_default | options::opts::exclude | options::opts::key_to_push) { @@ -199,9 +202,8 @@ CMD(clone, N_("network"), N_("ADDRESS[:P CMD(clone, N_("network"), N_("ADDRESS[:PORTNUMBER] [DIRECTORY]"), N_("Checks out a revision from remote a database into a directory"), - N_("check out a revision from remote database into directory.\n" - "If a revision is given, that's the one that will be checked out. " - "Otherwise, it will be the head of the branch supplied. " + N_("If a revision is given, that's the one that will be checked out. " + "Otherwise, it will be the head of the branch supplied. " "If no directory is given, the branch name will be used as directory"), options::opts::exclude | options::opts::branch | options::opts::revision) { @@ -387,7 +389,7 @@ CMD_NO_WORKSPACE(serve, N_("network"), " CMD_NO_WORKSPACE(serve, N_("network"), "", N_("Serves the database to connecting clients"), - N_("serve the database to connecting clients"), + N_(""), options::opts::bind | options::opts::pidfile | options::opts::bind_stdio | options::opts::no_transport_auth) { ============================================================ --- cmd_othervcs.cc 530af842d8bd686986b3b8b5f44c4163c81a1688 +++ cmd_othervcs.cc 4b7b092cc8a3aecc134727a10242958fcd97d651 @@ -15,9 +15,8 @@ CMD(rcs_import, N_("debug"), N_("RCSFILE CMD(rcs_import, N_("debug"), N_("RCSFILE..."), N_("Parses versions in RCS files"), - N_("parse versions in RCS files\n" - "this command doesn't reconstruct or import revisions. " - "you probably want cvs_import"), + N_("This command doesn't reconstruct or import revisions. " + "You probably want to use cvs_import."), options::opts::branch) { if (args.size() < 1) @@ -33,7 +32,7 @@ CMD(cvs_import, N_("rcs"), N_("CVSROOT") CMD(cvs_import, N_("rcs"), N_("CVSROOT"), N_("Imports all versions in a CVS repository"), - N_("import all versions in CVS repository"), + N_(""), options::opts::branch) { if (args.size() != 1) ============================================================ --- cmd_packet.cc b1244abb8ed7125ec335777c929496f177a05436 +++ cmd_packet.cc d5146cb4d1118fad790c772741ceda7a055f8bf3 @@ -21,7 +21,7 @@ CMD(pubkey, N_("packet i/o"), N_("ID"), CMD(pubkey, N_("packet i/o"), N_("ID"), N_("Prints a public key packet"), - N_("write public key packet to stdout"), + N_(""), options::opts::none) { if (args.size() != 1) @@ -51,7 +51,7 @@ CMD(privkey, N_("packet i/o"), N_("ID"), CMD(privkey, N_("packet i/o"), N_("ID"), N_("Prints a private key packet"), - N_("write private key packet to stdout"), + N_(""), options::opts::none) { if (args.size() != 1) @@ -132,7 +132,7 @@ CMD(read, N_("packet i/o"), "[FILE1 [FIL CMD(read, N_("packet i/o"), "[FILE1 [FILE2 [...]]]", N_("Reads packets from files"), - N_("read packets from files or stdin"), + N_("If no files are provided, the standard input is used."), options::opts::none) { packet_db_writer dbw(app); ============================================================ --- cmd_ws_commit.cc 0cad2978898b45193f1985b4286f59f2e1542452 +++ cmd_ws_commit.cc 8402e317a9f920469babbae15748cde3dc5f9bfa @@ -80,7 +80,8 @@ CMD(revert, N_("workspace"), N_("[PATH]. CMD(revert, N_("workspace"), N_("[PATH]..."), N_("Reverts files and/or directories"), - N_("revert file(s), dir(s) or entire workspace (\".\")"), + N_("In order to revert the entire workspace, specify \".\" as the " + "file name."), options::opts::depth | options::opts::exclude | options::opts::missing) { roster_t old_roster, new_roster; @@ -211,7 +212,7 @@ CMD(disapprove, N_("review"), N_("REVISI CMD(disapprove, N_("review"), N_("REVISION"), N_("Disapproves a particular revision"), - N_("disapprove of a particular revision"), + N_(""), options::opts::branch | options::opts::messages | options::opts::date | options::opts::author) { @@ -265,7 +266,7 @@ CMD(mkdir, N_("workspace"), N_("[DIRECTO CMD(mkdir, N_("workspace"), N_("[DIRECTORY...]"), N_("Creates directories and adds them to the workspace"), - N_("create one or more directories and add them to the workspace"), + N_(""), options::opts::no_ignore) { if (args.size() < 1) @@ -310,7 +311,7 @@ CMD(add, N_("workspace"), N_("[PATH]..." CMD(add, N_("workspace"), N_("[PATH]..."), N_("Adds files to the workspace"), - N_("add files to workspace"), + N_(""), options::opts::unknown | options::opts::no_ignore | options::opts::recursive) { @@ -344,7 +345,7 @@ CMD(drop, N_("workspace"), N_("[PATH]... CMD(drop, N_("workspace"), N_("[PATH]..."), N_("Drops files from the workspace"), - N_("drop files from workspace"), + N_(""), options::opts::bookkeep_only | options::opts::missing | options::opts::recursive) { if (!app.opts.missing && (args.size() < 1)) @@ -377,7 +378,7 @@ CMD(rename, N_("workspace"), N_("SRC DEST\n" "SRC1 [SRC2 [...]] DEST_DIR"), N_("Renames entries in the workspace"), - N_("rename entries in the workspace"), + N_(""), options::opts::bookkeep_only) { if (args.size() < 2) @@ -401,8 +402,7 @@ CMD(pivot_root, N_("workspace"), N_("NEW CMD(pivot_root, N_("workspace"), N_("NEW_ROOT PUT_OLD"), N_("Renames the root directory"), - N_("rename the root directory\n" - "after this command, the directory that currently " + N_("After this command, the directory that currently " "has the name NEW_ROOT " "will be the root directory, and the directory " "that is currently the root " @@ -421,7 +421,7 @@ CMD(status, N_("informative"), N_("[PATH CMD(status, N_("informative"), N_("[PATH]..."), N_("Shows workspace's status information"), - N_("show status of workspace"), + N_(""), options::opts::depth | options::opts::exclude) { roster_t new_roster; @@ -495,10 +495,9 @@ CMD(checkout, N_("tree"), N_("[DIRECTORY CMD(checkout, N_("tree"), N_("[DIRECTORY]"), N_("Checks out a revision from the database into a directory"), - N_("check out a revision from database into directory.\n" - "If a revision is given, that's the one that will be checked out. " - "Otherwise, it will be the head of the branch (given or implicit). " - "If no directory is given, the branch name will be used as directory"), + N_("If a revision is given, that's the one that will be checked out. " + "Otherwise, it will be the head of the branch (given or implicit). " + "If no directory is given, the branch name will be used as directory."), options::opts::branch | options::opts::revision) { revision_id ident; @@ -606,7 +605,7 @@ CMD(attr, N_("workspace"), CMD(attr, N_("workspace"), N_("set PATH ATTR VALUE\nget PATH [ATTR]\ndrop PATH [ATTR]"), N_("Manages file attributes"), - N_("set, get or drop file attributes"), + N_("This command is used to set, get or drop file attributes."), options::opts::none) { if (args.size() < 2 || args.size() > 4) @@ -707,7 +706,7 @@ CMD(commit, N_("workspace"), N_("[PATH]. CMD(commit, N_("workspace"), N_("[PATH]..."), N_("Commits workspace changes to the database"), - N_("commit workspace to database"), + N_(""), options::opts::branch | options::opts::message | options::opts::msgfile | options::opts::date | options::opts::author | options::opts::depth | options::opts::exclude) @@ -957,7 +956,7 @@ CMD_NO_WORKSPACE(setup, N_("tree"), N_(" CMD_NO_WORKSPACE(setup, N_("tree"), N_("[DIRECTORY]"), N_("Sets up a new workspace directory"), - N_("setup a new workspace directory, default to current"), + N_("If no directory is specified, uses the current directory."), options::opts::branch) { if (args.size() > 1) @@ -981,7 +980,7 @@ CMD_NO_WORKSPACE(import, N_("tree"), N_( CMD_NO_WORKSPACE(import, N_("tree"), N_("DIRECTORY"), N_("Imports the contents of a directory into a branch"), - N_("import the contents of the given directory tree into a given branch"), + N_(""), options::opts::branch | options::opts::revision | options::opts::message | options::opts::msgfile | options::opts::dryrun | @@ -1082,8 +1081,7 @@ CMD_NO_WORKSPACE(migrate_workspace, N_(" CMD_NO_WORKSPACE(migrate_workspace, N_("tree"), N_("[DIRECTORY]"), N_("Migrates a workspace directory's metadata to the latest format"), - N_("migrate a workspace directory's metadata to the latest format; " - "defaults to the current workspace"), + N_("If no directory is given, defaults to the current workspace."), options::opts::none) { if (args.size() > 1) @@ -1097,7 +1095,7 @@ CMD(refresh_inodeprints, N_("tree"), "", CMD(refresh_inodeprints, N_("tree"), "", N_("Refreshes the inodeprint cache"), - N_("refresh the inodeprint cache"), + N_(""), options::opts::none) { app.require_workspace(); ============================================================ --- commands.cc 08eb1c1b105e755cb376db178167be48a53cb07a +++ commands.cc 483ee28f4a155cf3bff85b6db3f77f1d85083eae @@ -85,7 +85,10 @@ namespace commands command::~command() {} std::string command::params() {return safe_gettext(params_.c_str());} std::string command::abstract() {return safe_gettext(abstract_.c_str());} - std::string command::desc() {return safe_gettext(desc_.c_str());} + std::string command::desc() + { + return abstract() + ".\n" + safe_gettext(desc_.c_str()); + } options::options_type command::get_options(vector const & args) { return opts; @@ -497,7 +500,7 @@ CMD(help, N_("informative"), N_("command CMD(help, N_("informative"), N_("command [ARGS...]"), N_("Displays help about commands and options"), - N_("display command help"), + N_(""), options::opts::none) { if (args.size() < 1) @@ -529,8 +532,8 @@ CMD(crash, hidden_group(), "{ N | E | I } CMD(crash, hidden_group(), "{ N | E | I | exception | signal }", - "Triggers the specified kind of crash", - "trigger the specified kind of crash", + N_("Triggers the specified kind of crash"), + N_(""), options::opts::none) { if (args.size() != 1) ============================================================ --- revision.cc 75a5757a70e4f194804406820e1faf3d4233a560 +++ revision.cc e7ebc4012c20018b4b583e22eb3299d33113b862 @@ -1805,8 +1805,8 @@ CMD(rev_height, hidden_group(), N_("REV" } CMD(rev_height, hidden_group(), N_("REV"), - "Shows a revision's height", - "show the height for REV", + N_("Shows a revision's height"), + N_(""), options::opts::none) { if (args.size() != 1) ============================================================ --- sha1.cc df789445950009447e89614f2b5752b016f490d2 +++ sha1.cc 98c1df304ae062bdbf2157f023ce31595191fb02 @@ -93,8 +93,8 @@ CMD(benchmark_sha1, hidden_group(), "", } CMD(benchmark_sha1, hidden_group(), "", - "Benchmarks SHA-1 cores", - "benchmark SHA-1 cores", + N_("Benchmarks SHA-1 cores"), + N_(""), options::opts::none) { P(F("Benchmarking %s SHA-1 cores") % registry().size());