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

110
README
View File

@ -1,5 +1,4 @@
Josh's SVN wrapper script
https://github.com/holtrop/jsvn
This wrapper script to Subversion supplements normal svn behavior by
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
- good mark the current revision as good - older than the change sought
- reset terminate the bisect operation and return to the original revision
branch[es]
- branch: list branches with '*' by the current one
- branch -d name: delete branch <name>
- branch [-s] name [source[@rev]]: create branch <name>
- if <source> is given it is resolved as a reference name (can be 'trunk',
or a tag or branch name)
- if <source> is not given the HEAD of the current working-copy URL is used.
branch[es] [-d] [-s] [<branch_name>]
- with no arguments, list branches with '*' by the current one
- with -d, delete <branch>
- otherwise, create a new branch from the current one
- 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
- allow specifying ref1..ref2 syntax to show the diff between two references
- references can be tag names, branch names, or 'trunk'
@ -69,57 +48,40 @@ Implemented subcommands:
merge <branch>
- merge branch <branch> into the current WC path
- falls back to Subversion "merge" if <branch> doesn't exist
revert <path[s]>
- revert all affected files under given target path(s)
root
- 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
- the stashes behaves as a "stack" where stashing pushes a new stash object
and popping removes the newest one from the top of the stack
- binary files are ignored (a warning is printed) and not stashed
options:
-e, --externals
- also stash changes in externals (if no explicit targets given)
- this option is implicitly on if the configuration value
'stash_externals' is set to True
--noexternals
- reverse --externals (or the configuration value 'stash_externals')
-k, --keep
- create the stash object, but keep the changes locally as well
- with --pop, do not remove the stash object after reapplying it
-p, --patch
- interactively prompt for whether to stash each hunk
--list
- the stashes behaves as a "stack" where "save" pushes a new stash object
and "pop" pops the newest one from the top of the stack
commands:
save [-k] (default if not specified):
- save changes as a "stash" object
- revert changes from working copy unless -k (keep working copy) given
- this only works with text files, not binary files
list:
- show a list of all stash objects
--pop [id]
pop [-k] [id]:
- apply the stash object <id> back to the working copy
- the stash object is removed unless -k (keep) given
- <id> defaults to the newest stash object created
--show [id]
show [id]:
- display the diff stored in stash with ID <id>
- <id> defaults to the newest stash object created
--drop [id]
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 to 'trunk', branch name, or tag name without having to specify
the full URL
- falls back to Subversion "switch" if <short_name> doesn't exist
tag[s]
- tag [-v]: list tags
- with -v (verbose), lists tag origin and creation date
- tag -d name: delete tag <name>
- tag -m old new: rename tag <old> to <new>
- tag name [source[@rev]]: create tag <name>
- if <source> is given it is resolved as a reference name (can be 'trunk',
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)]
tag[s] [[-d] <tag_name>] | [-m <old_tag_name> <new_tag_name>]
- with no arguments, list tags
- with -d, delete <tag>
- with -m, rename <old_tag_name> to <new_tag_name>
- otherwise, create a new tag from the current branch
url
- output repository URL of current working directory
users
- show a list of contributing users to a SVN path
watch-lock
@ -168,14 +130,6 @@ Available configuration variables:
function will be called recursively!
svn: Specify the path to the native Subversion executable. If not
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:
pager = 'less -FRXi' # enable case-insensitive searching in less
@ -191,24 +145,6 @@ Configuration Examples:
Author: Josh Holtrop
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
- colorize diff --summarize output
- log: support ref1..ref2 syntax for showing ref2 history not in ref1

1101
jsvn

File diff suppressed because it is too large Load Diff