eecf07cd12
Add more i18n for worktrees
2023-07-30 18:35:24 +10:00
06be88aef7
Use fields rather than methods on worktrees
...
I would prefer to use methods to keep things immutable but I'd rather be consistent with the other
models and update them all at once
2023-07-30 18:35:24 +10:00
4c5b1574f1
Centralise logic for obtaining repo paths
...
There are quite a few paths you might want to get e.g. the repo's path, the worktree's path,
the repo's git dir path, the worktree's git dir path. I want these all obtained once and
then used when needed rather than having to have IO whenever we need them. This is not so
much about reducing time spent on IO as it is about not having to care about errors every time
we want a path.
2023-07-30 18:35:24 +10:00
de57cfd6ff
Remove IO logic from presentation code for worktrees
...
We're doing all the IO in our workers loader method so that we don't need to do any
in our presentation code
2023-07-30 18:35:24 +10:00
e874f94cf8
Remove dead function
2023-07-30 18:35:23 +10:00
e356b29b4a
Allow entering a submodule by pressing space
2023-07-30 18:35:23 +10:00
bc4ce26cef
Allow entering a worktree by pressing enter
2023-07-30 18:35:23 +10:00
ae66f720f5
Update repo switch logic
...
We now always re-use the state of the repo if we're returning to it, and we always reset the windows to their default tabs.
We reset to default tabs because it's easy to implement. If people want to:
* have tab states be retained when switching
* have tab states specific to the current repo retained when switching back
Then we'll need to revisit this
2023-07-30 18:35:23 +10:00
b3060065d9
Support fastforwarding worktree
2023-07-30 18:35:23 +10:00
a313b16704
Add more worktree tests
2023-07-30 18:35:23 +10:00
277142fc4b
Add worktree integration tests
2023-07-30 18:35:23 +10:00
18a508b29c
Update cheatsheets
2023-07-30 18:35:23 +10:00
cdfad864ae
Remove worktree version guards
...
Our min required git version is 2.20 so there's no need to add guards
for worktrees because they were added in 2.5
2023-07-30 18:35:23 +10:00
fb4453c18a
Fix unit tests
2023-07-30 18:35:23 +10:00
b5ff55e538
Show loader when switching worktrees
2023-07-30 18:35:23 +10:00
81a9133261
Support older versions of git when fetching worktrees
...
Older versions of git don't support the -z flag in `git worktree list`.
So we're using newlines.
Also, we're not raising an error upon error because that triggers another refresh,
which gets us into an infinite loop
2023-07-30 18:35:23 +10:00
0604e43813
Move worktrees tab to files window
2023-07-30 18:35:23 +10:00
3a7468ecac
Support opening worktree in editor
2023-07-30 18:35:23 +10:00
7b05dacb98
Properly render worktrees in files panel
2023-07-30 18:35:22 +10:00
b73efb2c22
Better logic for knowing which repo we're in
2023-07-30 18:35:22 +10:00
a06a5cadee
Only show worktree in status panel if not the main worktree and worktrees are supported
2023-07-30 18:35:22 +10:00
3cd2d6fa5c
Hide worktree functionality on old git versions
2023-07-30 18:35:22 +10:00
ec839e9e96
Associate branches with worktrees even when mid-rebase
2023-07-30 18:35:22 +10:00
6f2f9f6677
Assume that the base of a worktree can be checked out
2023-07-30 18:35:22 +10:00
2082fdf84a
i18n for worktrees
2023-07-30 18:35:22 +10:00
894485190b
Don't quit on error
2023-07-30 18:35:22 +10:00
87b2455dbb
Allow opening worktree in editor
...
This does the job but I think we need yet another editor command for opening a directory in a new window.
2023-07-30 18:35:22 +10:00
2e68967e02
Show base ref suggestions when creating worktree
2023-07-30 18:35:22 +10:00
71422a8549
Refresh work trees when discarding file changes
...
We do this because we may be deleting a worktree folder so we'll need to show that in the worktrees view
2023-07-30 18:35:22 +10:00
9c69a5df69
Checkout worktree when creating from worktree view
2023-07-30 18:35:22 +10:00
142f06357f
Fix filtering logic in worktrees view
2023-07-30 18:35:22 +10:00
18ea68c23a
Support creating worktrees from refs
2023-07-30 18:35:22 +10:00
4b2622d93b
Fix wording
2023-07-30 18:35:22 +10:00
ae0193698e
Log when directory is changed
2023-07-30 18:35:22 +10:00
6b4a638415
Handle deleting branch attached to worktree
2023-07-30 18:35:22 +10:00
6c69549ced
Don't touch repo stack when switching worktrees
...
We shouldn't touch this cos we're doing a lateral move
2023-07-30 18:35:22 +10:00
5868750aba
Move status panel presentation logic into presentation package
2023-07-30 18:35:22 +10:00
ab3052f642
Land in the same panel when switching to a worktree
2023-07-30 18:35:22 +10:00
077ae99438
Prompt to switch to worktree when branch is checked out by other worktree
2023-07-30 18:35:22 +10:00
fe8adf9eb8
Use git lingo
2023-07-30 18:35:22 +10:00
c713d550c0
Improve name handling
2023-07-30 18:35:22 +10:00
e8ec41fb0f
Refactor
2023-07-30 18:35:22 +10:00
03f726038e
Alert when attempting to enter the current worktree
2023-07-30 18:35:21 +10:00
796945aad0
Remove comment
2023-07-30 18:35:21 +10:00
db02c13bf6
Address PR comments
2023-07-30 18:35:21 +10:00
1ce9a87544
Basic support for adding a worktree
2023-07-30 18:35:21 +10:00
35e6e6347a
Put all worktree i18n strings together
...
Use tabwriter to align worktree panel contents
2023-07-30 18:35:21 +10:00
54708233ac
Improve worktree panel
2023-07-30 18:35:21 +10:00
c679fd1924
Style missing worktree as red and display better error when trying to switch to them
...
Use a broken link icon for missing worktrees
2023-07-30 18:35:21 +10:00
9a79154d05
Hide worktrees in the worktree panel if they point at a non-existing filesystem location.
...
Remove unneeded check when filtering out branches from non-current worktrees from the branch panel.
Add link icon for linked worktrees
2023-07-30 18:35:21 +10:00