Message ID | 20240814200709.53450-1-geofft@ldpreload.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/1] git jump: support show | expand |
On Wed, Aug 14, 2024 at 4:07 PM Geoffrey Thomas <geofft@ldpreload.com> wrote: > This makes it easy to go to the changes in the latest commit, or a > previous named commit, to fix a bug and commit a fixup, to respond to > code review feedback, etc. > > Signed-off-by: Geoffrey Thomas <geofft@ldpreload.com> > --- > diff --git a/contrib/git-jump/git-jump b/contrib/git-jump/git-jump > @@ -41,8 +41,10 @@ open_editor() { > -mode_diff() { > - git diff --no-prefix --relative "$@" | > +do_diff() { > + cmd=$1 > + shift > + git "$cmd" --no-prefix --relative "$@" | > perl -ne ' > if (m{^\+\+\+ (.*)}) { $file = $1; next } > defined($file) or next; > @@ -56,6 +58,14 @@ mode_diff() { > +mode_diff() { > + do_diff diff "$@" > +} > + > +mode_show() { > + do_diff show "$@" > +} > + I'm not a git-jump user (indeed, I've never even looked at it), but should this change be accompanied by corresponding updates to the documentation in the README and usage statement emitted by the usage() function in git-jump script?
On Wed, Aug 14, 2024 at 04:07:09PM -0400, Geoffrey Thomas wrote: > This makes it easy to go to the changes in the latest commit, or a > previous named commit, to fix a bug and commit a fixup, to respond to > code review feedback, etc. One trouble with this approach is that you're analyzing a diff whose endpoint is something other than the current working tree. So the line numbers in the diff do not necessarily correspond to what you're going to open in the editor. For something like the changes in the latest commit, I'd usually do "git jump diff HEAD^", which I think is strictly better than a "show" on the latest commit. For looking at older commits that doesn't work, though. And if they're not _too_ old, then you've got a reasonable chance of ending up somewhere useful. So I'm not opposed to this patch. As Eric mentioned, we'd probably want an update to the README. And I think it should mention the caveat that the post-image of the diff you're viewing won't necessarily match the working tree. -Peff
diff --git a/contrib/git-jump/git-jump b/contrib/git-jump/git-jump index 47e0c557e6..6cf16e0f32 100755 --- a/contrib/git-jump/git-jump +++ b/contrib/git-jump/git-jump @@ -41,8 +41,10 @@ open_editor() { esac } -mode_diff() { - git diff --no-prefix --relative "$@" | +do_diff() { + cmd=$1 + shift + git "$cmd" --no-prefix --relative "$@" | perl -ne ' if (m{^\+\+\+ (.*)}) { $file = $1; next } defined($file) or next; @@ -56,6 +58,14 @@ mode_diff() { ' } +mode_diff() { + do_diff diff "$@" +} + +mode_show() { + do_diff show "$@" +} + mode_merge() { git ls-files -u "$@" | perl -pe 's/^.*?\t//' |
This makes it easy to go to the changes in the latest commit, or a previous named commit, to fix a bug and commit a fixup, to respond to code review feedback, etc. Signed-off-by: Geoffrey Thomas <geofft@ldpreload.com> --- contrib/git-jump/git-jump | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) base-commit: 25673b1c476756ec0587fb0596ab3c22b96dc52a