Magit and Forge
Diff a PR
Using forge
From the status buffer (not the View Topic buffer!):
' f fto fetch all topicsndown to the PR listingd d(diff dwim) on the PR listing
This will do a between origin/main...refs/pullreqs/<PR number>.
This doesn't work if you're actually visiting the PR topic (i.e. you hit Enter on the PR listing and are now in a View Topic buffer).
I really want the diff-dwim to work from the View Topic buffer - is there some way to get that working?
Using branch names without checking out
From any magit buffer:
d rto diff a range- type in:
origin/main...pullreqs/<PR number>
It would be nice if this was the default dwim behavior in a PR topic
buffer.
Using current branch
- Check out the PR (if you are using forge, you can do
b f) d r(magit-diff-range)- Type in:
main...(ormaster...)
See this StackOverflow for an explanation of the git diff main... command.
It's basically the "do that thing that I obviosly always want to do" command,
which is to diff HEAD with main, ignoring extra stuff on main.
Rebase and move branch pointers
Do the rebase. The same commits will have different SHAs. Old branches will still be at previous SHAs.
- Go to logs buffer
- For each branch:
- check out branch
- move cursor to commit where branch should be moved to
xto reset to this commit
View file history
M-x magit-log-buffer-file
View previous version of a file
The function magit-find-file is to "View FILE from REV". Running M-x
magit-find-file will first prompt for a revision (completes with a list of
all refs), then prompts for a file.
From a specific file:
M-x magit-log-buffer-file- Move to the commit you want
M-x magit-find-file
Visit File from Diff
Just press <return> on a chunk in the diff. Buuut, if you want it to use
another window:
(use-package magit
:bind
(:map magit-diff-mode-map
("M-<return>" . magit-diff-visit-file-other-window)))
View Current and Previous File Version from Diff
- In diff,
<return>to visit the file M-x magit-find-file-other-window, branch,<RET>
Cherry pick
A A. I always forget about this.