Releases: wfxr/forgit
Releases · wfxr/forgit
24.01.0
Changes since 23.09.0:
23.09.0
Changes since 23.08.1:
- checkout_branch: support "-" argument (#322)
git natively supports `-` as an argument to `git switch` and `git
checkout`. It is shorthand for `@{-1}`, which is a way to refer to the
last branch you were on.
forgit used to interpret `-` as a branch name, detect that it does not
exist yet and create a new one with this name, which does not work.
Add a check whether `-` is passed on the command line and do not create
a new branch in this case - Fixed opening files in the editor when a path contains spaces or a file was renamed (#323)
Fixed two issues that occurred when trying to open files in the editor (ctrl+e). In both cases the wrong files were opened.- Files that have spaces in their path. I fixed this by properly escaping the variables used in _forgit_diff() and forgit_add().
- When a tracked file was renamed and added, trying to open it in the editor from the diff view, would open a file with a name that consists of both, the old and the new name. I added a separate sed command that can handle this special case.
23.08.1
Changes since 23.08.0:
- Do not hide error messages when trying to return early (#318)
Most of forgits functions allow to invoke git directly when arguments were passed. In most of these functions we only return early when the git command that is executed returns successfully. This hides error messages from the user. As discussed with @carlfriedrich in #316, I've modified this behavior to also return early when the git command was not successful, so we're transparent about gits error messages and return values. This also fixes an infinite loop printing an error message when invalid arguments were passed to gsp. Because gbl and gclean allow passing arguments to the git command that is invoked when we don't return early, I've modified their behavior to only invoke git directly (and return early) in the case that non flag arguments were passed.
I've also modified gclean to use the -q flag instead of piping it's output to /dev/null. - Removed the note about using forgit as a git subcommand from the 'tips' section (#321)
The note was redundant because it is explained in more detail in the 'git integration' section. - Trigger AUR action on workflow_run instead of release (#320)
Turns out that GitHub actions do not trigger other actions by default. Using workflow_run instead of release as a trigger should solve this.
23.08.0
23.07.0
Changes since 23.06.0:
23.06.0
Changes since 23.05.0:
- README: add
brew
instructions (#302) - Fix grc / forgit revert_commit (#305)
This was accidentally broken since 450615d due to a wrong git call. - Use correct IFS store/restore mechanism (#306)
The previous implementation had the problem that if IFS was not set
before, it was set to an empty string after restoring, which is not the
same as being unset. This broke grc / git forgit revert_commit, since
"git revert" was being interpreted as the command name instead of
command and argument.
The correct way is to check whether IFS is unset and, if so, unset it
again afterwards.
See for reference:
https://unix.stackexchange.com/a/264947/317320 - Allow configuration of checkout_branch branch cmd (#307)
- Restore support for appending FORGIT_INSTALL_DIR to path (#308)
It seems somewhere along the line FORGIT_INSTALL_DIR stopped getting exported. According to the README you can append it to your path to get access to git forgit ... commands however this seems to no longer work - this is an attempt to restore this functionality. - Allow passing parameters to forgit::reset::head (#309)
- Allow passing parameters to branch_delete and stash_show (#312)
23.05.0
Changes since 23.04.0:
- Fix wrong documentation of tab toggle direction (#299)
See junegunn/fzf#3256 for reference.
Fixes #298
23.04.0
Changes since 23.03.0:
- Detect unexported variables in fish correctly (#290)
Fixes #289 - Only show available cherry picks in preview (#293)
This is a follow-up to #266, which already switched to showing only
available commits during cherry-picking. This patch does the same for
the branch preview in _forgit_cherry_pick_from_branch. - Fix broken cherry picking (#294)
With the changes of #261 and #266 we accidentally broke the return value
of `_forgit_cherry_pick`, which led to the loop in
`_forgit_cherry_pick_from_branch` being terminated in the wrong cases.
Fix this by moving all the post processing after fzf to a later call.
Also simplify the array population using a single line instead of a
loop.
This should also fix #286 ("fatal: bad revision ''"). - Add git options for each forgit command (#292)
The git behavior within forgit can now be customized with a dedicated
variable for each forgit command, e.g. `FORGIT_ADD_GIT_OPTS` is passed
to the `git add` call within `ga`.
Also renaming `FORGIT_STASH_PUSH_OPTS` to `FORGIT_STASH_PUSH_FZF_OPTS`
and `FORGIT_REVERT_COMMIT_OPTS` to `FORGIT_REVERT_COMMIT_FZF_OPTS`
for consistency. - Fix git options (#296)
Adding options to a command in a quoted variable as introduced in #292
causes problems in several cases unfortunately (e.g. git rebase
interpreting an empty string argument as a remote, which leads to an
error "unknown upstream ''").
Change the implementation in a way that each git command is stored in a
shell variable, including the options, which is then evaluated.
This also makes the code more DRY because each git options variable is
evaluated only once.
Furthermore, fix temporary IFS settings. When setting the IFS for a
certain command only, the command must not be an assignment, otherwise
both assignments are evaluated permanently
(see https://unix.stackexchange.com/a/458901/317320). - Fix temporary IFS settings (#297)
When setting the IFS for a certain command only, the command must not be
an assignment, otherwise both assignments are evaluated permanently
(see https://unix.stackexchange.com/a/458901/317320). - Add keybinding ctrl+y for copying stash ID in gss (#295)
23.03.0
Changes since 23.02.0:
- Fix empty diff preview on renames (#282)
This had been fixed before in #189, but obviously the patch broke
support for whitespaces in file names. That was fixed in #204, which
in turn broke support for renames again.
Prepare the list of file names with the null-character \0 as a delimiter,
so that we can use "xargs -0" to read it. This makes renames as well
as filenames with spaces work correctly.
23.02.0
Changes since 23.01.0:
- Fish: assume forgit in vendor_conf.d in case it can not be found in conf.d (#272)
In the fish wrapper, assume forgit-git to be in vendor_conf.d/bin in case it can not be found in conf.d/bin. This fixes forgit not working with fish when located in /usr/share/fish/vendor_conf.d, as is the case with the forgit and forgit-git AUR packages. The location at conf.d is kept (and stays the default), so forgit does not break compatibility with fish plugin managers, such as fisher.
Closes #270 - Add alias gbl for forgit::blame in fish (#273)
Added the alias gbl for forgit::blame to the fish wrapper, so the behavior in fish is the same as in bash/zsh. I've also deleted an empty line where there were two in a row. - Fixed: Untracked files with spaces in the path do not show a preview in 'ga' (#271)
- Fix command list in help output (#274)
'rebase' and 'fixup' were accidentally displayed on the same line. - Add bash completions for git-forgit (#235)
When using forgit as a subcommand of git, put 'git-forgit.bash' in one
of the following places and it will be loaded automatically on tab
completion of 'git forgit' or any configured git aliases of it:- /usr/share/bash-completion/completions
- ~/.local/share/bash-completion/completions
- Only show available cherry picks (#266)
Only shows changes that are eligible for cherry-pick to the branch, not every commit. Also adds nice color to the output - Add alias gct for forgit::checkout::tag in fish (#278)
Noticed there was another alias missing for fish. This is the last one :) - Modify multiple files at once in ga & gcf (#279)
Checkout/Add files in a single command in _forgit_add and _forgit_checkout_file() instead of processing each file individually with xargs. This has the following benefits:
It's faster
Prevents git from spamming "Updated 1 path from the index" for each file when checking out files - fix: glo can not match files (#249)
Fixed "glo -- " behavior to show specified files only instead of
showing all changed files. - Add bash completions for forgit functions and aliases (#275)
When using forgit via the shell plugin, source 'git-forgit.bash'
explicitly after 'forgit.plugin.zsh' to enable tab completion for forgit
shell functions and aliases.