0a7451999e
as there are multiple solutions to list the lost commits and stashes,
but I could not find reliable ones. See
https://stackoverflow.com/q/89332/2654518.
Well, the current `git-commit-lost` and `git-stash-dropped`
implementations don't accurately work at least on the repositories I'm
working with.
The `git-hub` functions where removed at dcc3265
, but aliases and docs
remained. Remove these.
Remove line break from `_git_log_oneline_format`, so it really occupies
one line. And change date format in `glG` output from committer date
(`%cd`) to relative author date (`%ar`) to conform with other formats.
Refactor remaining functions. Most of the changes refer to using the
already existing git error messages and return codes, instead of having
code that creates that. (Error messages for 'not in a git repository'
where not even consistent among functions, and there's were I started
this...)
The most drastic changes can be seen in `git-root`, then in `git-dir`
and `git-stash-clear-interactive`.
22 lines
491 B
Bash
22 lines
491 B
Bash
# vim:et sts=2 sw=2 ft=zsh
|
|
local git_root
|
|
git_root=$(git-root) || return 1
|
|
|
|
if [[ ${PWD} != ${git_root} ]]; then
|
|
print "${0}: must be run from the root of the work tree" >&2
|
|
return 1
|
|
fi
|
|
|
|
local src="${1}"
|
|
local dst="${2}"
|
|
local url=$(command git config --file .gitmodules --get "submodule.${src}.url")
|
|
if [[ -z "${url}" ]]; then
|
|
print "${0}: submodule not found: ${src}" >&2
|
|
return 1
|
|
fi
|
|
|
|
mkdir -p "${dst:h}"
|
|
git-submodule-remove "${src}"
|
|
git submodule add "${url}" "${dst}"
|
|
|
|
return 0
|