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)