* git-feature: add configurable branch separator
Closes#1069
This allows the use of a separator other than `/` for feature or other
alias branches. While a command-line option has been provided (`-s` or
`--separator`), this will most often be used via
`git-extras.feature.separator`.
* Significant update to bin/git-feature
- Changed option parsing so that `--alias` requires an argument and will
fail with an error unless provided. Applied the same logic to
`--separator`.
- Changed `finish` parsing to capture it as a variable flag during
argument parsing.
This could be extended so that if `finish` is already true, a second
`finish` results in the word being added to the argument list.
```console
$ git feature -- finish remote
$ git feature finish finish remote
```
This has not been done because it is a bit of an inconsistent handling
for documentation purposes.
- Add handling of `--` to permit options or `finish` to be made part of
the feature branch name.
- Since `finish` is now a variable flag, simplify the name-building
logic to always use `concatargs "${argv[@]}"`. This means that
`git feature finish ...` and `git feature ...` behave the same in
terms of feature branch name building.
- Basically rewrote the man page to include better descriptions of the
options as well as adding a GIT CONFIG section and additional EXAMPLES
for the new features/behaviour.
Use `git create-branch` instead of `git checkout -b` in:
git-bug
git-chore
git-feature
git-refactor
Since `git-finish` uses `git-delete-branch` (which expects the branch to
have been pushed to origin) we should use `git-create-branch` to create
it.
This takes any extra arguments supplied to `$git feature` and sets
them as the new feature name. For instances, instead of throwing an
error if `$git feature new thing` is called, it will create branch
`feature/new-thing`.