Compare commits

..

No commits in common. "master" and "v1.3" have entirely different histories.
master ... v1.3

2 changed files with 400 additions and 1077 deletions

128
README
View File

@ -1,5 +1,4 @@
Josh's SVN wrapper script Josh's SVN wrapper script
https://github.com/holtrop/jsvn
This wrapper script to Subversion supplements normal svn behavior by This wrapper script to Subversion supplements normal svn behavior by
adding additional functionality or modifying the output of the default adding additional functionality or modifying the output of the default
@ -27,31 +26,11 @@ Implemented subcommands:
- bad mark the current revision as bad - containing the change sought - bad mark the current revision as bad - containing the change sought
- good mark the current revision as good - older than the change sought - good mark the current revision as good - older than the change sought
- reset terminate the bisect operation and return to the original revision - reset terminate the bisect operation and return to the original revision
branch[es] branch[es] [-d] [-s] [<branch_name>]
- branch: list branches with '*' by the current one - with no arguments, list branches with '*' by the current one
- branch -d name: delete branch <name> - with -d, delete <branch>
- branch [-s] name [source[@rev]]: create branch <name> - otherwise, create a new branch from the current one
- if <source> is given it is resolved as a reference name (can be 'trunk', - also switch to the new branch if -s is given
or a tag or branch name)
- if <source> is not given the HEAD of the current working-copy URL is used.
- also switch to the new branch if -s is given
checkout [options] [url] [wc_path]
- if a URL is given that ends with /trunk and no working copy path is given,
then the last directory component before "/trunk" is used as the working
copy path
clean [-x] {-n|-f} [path...]
- remove (or list) unversioned items
options:
-x, --ignore-ignores
- remove/list unversioned items that are ignored by Subversion
-n, --dry-run
- perform a dry-run, i.e. list files that would be removed but do not
actually remove them
-f, --force
- perform the actual removal of unversioned files
commit
- removes trailing whitespace (including end-of-line characters) from commit
messages before committing if neither -m nor -F arguments are given
diff diff
- allow specifying ref1..ref2 syntax to show the diff between two references - allow specifying ref1..ref2 syntax to show the diff between two references
- references can be tag names, branch names, or 'trunk' - references can be tag names, branch names, or 'trunk'
@ -69,57 +48,40 @@ Implemented subcommands:
merge <branch> merge <branch>
- merge branch <branch> into the current WC path - merge branch <branch> into the current WC path
- falls back to Subversion "merge" if <branch> doesn't exist - falls back to Subversion "merge" if <branch> doesn't exist
revert <path[s]>
- revert all affected files under given target path(s)
root root
- output root URL (for use on shell such as "svn log $(svn root)/tags") - output root URL (for use on shell such as "svn log $(svn root)/tags")
stash [options] [file...] stash [command]
- allow temporarily saving changes to the working copy without committing - allow temporarily saving changes to the working copy without committing
- the stashes behaves as a "stack" where stashing pushes a new stash object - the stashes behaves as a "stack" where "save" pushes a new stash object
and popping removes the newest one from the top of the stack and "pop" pops the newest one from the top of the stack
- binary files are ignored (a warning is printed) and not stashed commands:
options: save [-k] (default if not specified):
-e, --externals - save changes as a "stash" object
- also stash changes in externals (if no explicit targets given) - revert changes from working copy unless -k (keep working copy) given
- this option is implicitly on if the configuration value - this only works with text files, not binary files
'stash_externals' is set to True list:
--noexternals - show a list of all stash objects
- reverse --externals (or the configuration value 'stash_externals') pop [-k] [id]:
-k, --keep - apply the stash object <id> back to the working copy
- create the stash object, but keep the changes locally as well - the stash object is removed unless -k (keep) given
- with --pop, do not remove the stash object after reapplying it - <id> defaults to the newest stash object created
-p, --patch show [id]:
- interactively prompt for whether to stash each hunk - display the diff stored in stash with ID <id>
--list - <id> defaults to the newest stash object created
- show a list of all stash objects drop [id]:
--pop [id] - delete stash object <id>
- apply the stash object <id> back to the working copy - <id> defaults to the newest stash object created
- the stash object is removed unless -k (keep) given
- <id> defaults to the newest stash object created
--show [id]
- display the diff stored in stash with ID <id>
- <id> defaults to the newest stash object created
--drop [id]
- delete stash object <id>
- <id> defaults to the newest stash object created
- if none of --list, --pop, --show, or --drop is given, a new stash object
is created containing the chosen differences
- if file is given, only the changes from the listed files will be stashed
switch <short_name> switch <short_name>
- switch to 'trunk', branch name, or tag name without having to specify - switch to 'trunk', branch name, or tag name without having to specify
the full URL the full URL
- falls back to Subversion "switch" if <short_name> doesn't exist - falls back to Subversion "switch" if <short_name> doesn't exist
tag[s] tag[s] [[-d] <tag_name>] | [-m <old_tag_name> <new_tag_name>]
- tag [-v]: list tags - with no arguments, list tags
- with -v (verbose), lists tag origin and creation date - with -d, delete <tag>
- tag -d name: delete tag <name> - with -m, rename <old_tag_name> to <new_tag_name>
- tag -m old new: rename tag <old> to <new> - otherwise, create a new tag from the current branch
- tag name [source[@rev]]: create tag <name> url
- if <source> is given it is resolved as a reference name (can be 'trunk', - output repository URL of current working directory
or another tag or a branch name)
- if <source> is not given the HEAD of the current working-copy URL is used.
url [file]
- output repository URL of file [default: '.' (current working directory)]
users users
- show a list of contributing users to a SVN path - show a list of contributing users to a SVN path
watch-lock watch-lock
@ -168,14 +130,6 @@ Available configuration variables:
function will be called recursively! function will be called recursively!
svn: Specify the path to the native Subversion executable. If not svn: Specify the path to the native Subversion executable. If not
specified, the first 'svn' in $PATH will be used. specified, the first 'svn' in $PATH will be used.
ignore_executable_extensions: A list of extensions (including the '.')
for newly added files which should not automatically have the
svn:executable property added for them even if the files are
executable. The default value is ['.c', '.cc', '.h', '.txt'].
ignore_symlinks: True or False to hide unversioned symlinks from appearing
in status output (default: False)
stash_externals: True or False to enable/disable whether '-e' is implicitly
on for 'stash' subcommand. Defaults to False.
Configuration Examples: Configuration Examples:
pager = 'less -FRXi' # enable case-insensitive searching in less pager = 'less -FRXi' # enable case-insensitive searching in less
@ -191,24 +145,6 @@ Configuration Examples:
Author: Josh Holtrop Author: Josh Holtrop
History: History:
v1.7 - 2013-08-16
- add "clean" subcommand handler
- bugfix: revert subcommand handler: revert deleted items
v1.6 - 2013-07-24
- rework 'stash' subcommand to operate on individual hunks
- add 'revert' subcommand handler
v1.5 - 2012-11-08
- add -v (verbose) flag to 'tag' subcommand
- allow optional source argument to 'branch' subcommand
- remove repository prefix URL from diff --summarize output
- Add .exe extension to svn binary name if platform is Windows (not cygwin)
v1.4 - 2012-08-23
- allow optional source/revision argument when creating a tag
- handle ctrl+c better when interacting with a pager
- add configurable functionality to work around svn automatically adding svn:executable property
- bugfix for diff "..." range syntax to show correct diff
- improved performance for diff/log "..." syntax
- minor stash show bugfix
v1.3 - 2012-06-27 v1.3 - 2012-06-27
- colorize diff --summarize output - colorize diff --summarize output
- log: support ref1..ref2 syntax for showing ref2 history not in ref1 - log: support ref1..ref2 syntax for showing ref2 history not in ref1

1349
jsvn

File diff suppressed because it is too large Load Diff