Readme in svn-command-0.0.3 vs Readme in svn-command-0.0.4

- old
+ new

@@ -1,67 +1,75 @@ = <i>Enhanced Subversion command</i> -- an +svn+ command wrapper [*Environment*:] Command line +[<b>Home page</b>:] http://svncommand.rubyforge.org/ [<b>Project site</b>:] http://rubyforge.org/projects/svncommand -[<b>Documentation</b>:] http://svncommand.rubyforge.org/ [<b>Wiki</b>:] http://wiki.qualitysmith.com/svn-command [<b>Author</b>:] Tyler Rick == Introduction -This is a replacement <tt>svn</tt> <b>command-line client</b> meant to be used instead of the standard +svn+ command. +This is a replacement <tt>svn</tt> <b>command-line client</b> meant to be used instead of the standard +svn+ command. Actually, it's a /wrapper/, not a replacement, because it still uses <tt>/usr/bin/svn</tt> to do all the dirty work. == Installation === Prerequisites Currently a _patched_ version of Console::Command is required. The patched vesion is available on riblet.qualitysmith.com at: /usr/lib/ruby/gems/1.8/gems/facets-1.8.51/lib/facets/more/command.rb -(These changes will hopefully be absorbed into the next release.) +(These changes will hopefully be absorbed into the next release of facets. I apologize for the inconvenience.) === Installation: Per system sudo gem install svn-command -You also need to make those files executable (once per _system_): +You also need to make those files *executable* (once per _system_): sudo chmod a+x /usr/lib/ruby/gems/1.8/gems/svn-command-0.0.3/bin/* -(We can't just set <tt>executables = "svn"</tt> because that would cause it to wipe out the existing executable at <tt>/usr/bin/svn</tt>! If you know of a better, more automatic solution to this, please let the developers know!) +(We can't just set <tt>executables = "svn"</tt> and have it automatically install it to /usr/bin because that would cause it to <b>wipe out</b> the existing executable at <tt>/usr/bin/svn</tt>! If you know of a better, more automatic solution to this, please let the developers know!) And for some reason I seem to have to restart my terminal after doing the chmod step for bash to detect the svn command in that new location. === Installation: Per user -*Important*: You need the gem's +bin+ directory to be added to the <b><i>front</i></b> of your path. This requires adding/editing a <tt>PATH=</tt> command in your <tt>~/.bash_profile</tt>. For example: +*Important*: You need the gem's +bin+ directory to be added to the <b><i>front</i></b> of your path. This requires adding/editing a <tt>PATH=</tt> command in your <tt>~/.bash_profile</tt> (or equivalent). For example: - export PATH=/usr/lib/ruby/gems/1.8/gems/svn-command-0.0.3/bin:$PATH + export PATH=`ls -d /usr/lib/ruby/gems/1.8/gems/svn-command* | tail -n1`/bin:$PATH + +Or hard-code the path, if you really want to: + export PATH=/usr/lib/ruby/gems/1.8/gems/svn-command-0.0.4/bin:$PATH + (I'm not sure if this is possible to automate with the <tt>gem install</tt> process or not. But in the meantime you need to do it manually.) You'll know it's working by way of two signs: * Your +svn+ command will be noticeably slower * When you type svn <tt>help</tt>, it will say: You are using svn-command, a replacement/wrapper for the standard svn command. == Features Changes to existing subcommands: -* <tt>svn diff</tt> output is in _color_ (requires +colordiff+, see below) +* <tt>svn diff</tt> output is in _color_* (requires +colordiff+, see below) * <tt>svn diff</tt> includes the differences from your *externals* too (consistent with how <tt>svn status</tt> includes them) so that you don't forget to commit those changes too! -* <tt>svn status</tt> output filters out distracting, useless output about externals (if you want a list of externals, use <tt>svn externals</tt> +* <tt>svn status</tt> +** filters out distracting, useless output about externals (don't worry -- it still shows which files were _modified_) +** the flags (?, M, C, etc.) are in *color*! +(* You can pass --no-color to disable colors for a single command...useful if you want to pipe the output to another command or something. Eventually maybe we could make this a per-user option via .svn-command?) + New subcommands: -* <tt>svn each_unadded</tt> (+eu+) -- goes through each unadded (<tt>?</tt>) file reported by <tt>svn status</tt> and asks you what to do with them (add, delete, ignore). -* <tt>svn externals</tt> +* <tt>svn each_unadded</tt> (+eu+, +unadded+) -- goes through each unadded (<tt>?</tt>) file reported by <tt>svn status</tt> and asks you what to do with them (add, delete, ignore). +* <tt>svn externals</tt> -- lists all externals * <tt>svn edit_externals</tt> (+ee+) * <tt>svn externalize</tt> -* <tt>svn set_message</tt> / <tt>svn get_message</tt> / <tt>svn edit_message</tt> -* <tt>svn ignore</tt> -* <tt>svn view_commits</tt> (gives you output from both svn log and from svn diff for the given changesets) +* <tt>svn set_message</tt> / <tt>svn get_message</tt> / <tt>svn edit_message</tt> -- shortcuts for accessing <tt>--revprop svn:log</tt> +* <tt>svn ignore</tt> -- shortcut for accessing <tt>svn:ignore</tt> property +* <tt>svn view_commits</tt> -- gives you output from both <tt>svn log</tt> and from <tt>svn diff</tt> for the given changesets (useful for code reviews) (RDoc question: how do I make the identifiers like Subversion::SvnCommand#externalize into links??) == Usage @@ -127,11 +135,11 @@ (shows preview) (a)dd, (d)elete, add to svn:(i)ignore property, or [Enter] to do nothing > d Are you pretty much *SURE* you want to 'rm -rf applications/underlord/vendor/plugins/exception_notification'? (y)es, (n)o > y Deleting... -For *files*, it will show a preview of the _contents_ of that file (limited to the first 3000 characters); for *directories*, it will show a _directory_ _listing_. By looking at the preview, you should hopefully be able to decide whether you want to keep the file or junk it. +For *files*, it will show a preview of the _contents_ of that file (limited to the first 3000 characters); for *directories*, it will show a _directory_ _listing_. By looking at the preview, you should hopefully be able to decide whether you want to _keep_ the file or _junk_ it. ===externalize / externals / edit_externals Shortcut for creating an svn:external... @@ -192,9 +200,10 @@ ===Global options * --no-color (since color is on by default) * --dry-run (see what /usr/bin/svn command it _would_ have executed if you weren't just doing a dry run -- useful for debugging if nothing else) +* --show-commands (prints out the /usr/bin/svn commands before executing them) * --debug (sets $debug = true) ==colordiff +colordiff+ is used to colorize <tt>svn diff</tt> commands (+ lines are blue; - lines are red)