Skip to content

Commit 553014b

Browse files
committed
Revert PR #106
This fix seems to be no longer needed under the new worktrees data structure Reverts 23ce8ac
1 parent a580559 commit 553014b

5 files changed

Lines changed: 3 additions & 146 deletions

File tree

app/src/lib/stores/app-store.ts

Lines changed: 1 addition & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,6 @@ import {
2424
} from '../../models/diff-font'
2525
import { EditorOverride } from '../../models/editor-override'
2626
import { stageResolvedConflictFiles } from '../git/stage'
27-
import { normalizePath } from '../helpers/path'
28-
import {
29-
getPreferredWorktreePath,
30-
clearPreferredWorktreePath,
31-
} from '../worktree-preferences'
3227
import {
3328
AccountsStore,
3429
CloningRepositoriesStore,
@@ -2467,57 +2462,20 @@ export class AppStore extends TypedBaseStore<IAppState> {
24672462

24682463
this.selectedRepository = repository
24692464

2465+
this.emitUpdate()
24702466
this.stopBackgroundFetching()
24712467
this.stopPullRequestUpdater()
24722468
this._clearBanner()
24732469
this.stopBackgroundPruner()
24742470

24752471
if (repository == null) {
2476-
this.emitUpdate()
24772472
return Promise.resolve(null)
24782473
}
24792474

24802475
if (!(repository instanceof Repository)) {
2481-
this.emitUpdate()
24822476
return Promise.resolve(null)
24832477
}
24842478

2485-
// When returning to a repository that has worktrees, restore the
2486-
// previously active linked worktree so the user doesn't always land
2487-
// on the main worktree after switching repos.
2488-
if (!repository.isLinkedWorktree) {
2489-
const repoPath = normalizePath(repository.path)
2490-
const preferredPath = getPreferredWorktreePath(repoPath)
2491-
2492-
if (preferredPath && preferredPath !== repoPath) {
2493-
const linkedRepo = this.repositories.find(
2494-
r =>
2495-
r instanceof Repository && normalizePath(r.path) === preferredPath
2496-
)
2497-
2498-
if (linkedRepo instanceof Repository) {
2499-
repository = linkedRepo
2500-
this.selectedRepository = repository
2501-
} else {
2502-
const exists = await pathExists(preferredPath)
2503-
if (exists) {
2504-
const addedRepos = await this._addRepositories(
2505-
[preferredPath],
2506-
repository.login
2507-
)
2508-
if (addedRepos.length > 0) {
2509-
repository = addedRepos[0]
2510-
this.selectedRepository = repository
2511-
}
2512-
} else {
2513-
clearPreferredWorktreePath(repoPath)
2514-
}
2515-
}
2516-
}
2517-
}
2518-
2519-
this.emitUpdate()
2520-
25212479
if (persistSelection) {
25222480
setNumber(LastSelectedRepositoryIDKey, repository.id)
25232481
}
@@ -8188,23 +8146,6 @@ export class AppStore extends TypedBaseStore<IAppState> {
81888146
return
81898147
}
81908148

8191-
if (repository instanceof Repository) {
8192-
if (repository.isLinkedWorktree) {
8193-
const repoPath = normalizePath(repository.path)
8194-
const mainRepo = this.repositories.find(
8195-
r =>
8196-
r instanceof Repository &&
8197-
!r.isLinkedWorktree &&
8198-
getPreferredWorktreePath(normalizePath(r.path)) === repoPath
8199-
)
8200-
if (mainRepo instanceof Repository) {
8201-
clearPreferredWorktreePath(normalizePath(mainRepo.path))
8202-
}
8203-
} else {
8204-
clearPreferredWorktreePath(normalizePath(repository.path))
8205-
}
8206-
}
8207-
82088149
const allRepositories = await this.repositoriesStore.getAll()
82098150
if (allRepositories.length === 0) {
82108151
this._closeFoldout(FoldoutType.Repository)

app/src/lib/worktree-preferences.ts

Lines changed: 0 additions & 59 deletions
This file was deleted.

app/src/ui/toolbar/worktree-dropdown.tsx

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import { PopupType } from '../../models/popup'
1919
import { Resizable } from '../resizable'
2020
import { enableResizingToolbarButtons } from '../../lib/feature-flag'
2121
import { normalizePath } from '../../lib/helpers/path'
22-
import { setPreferredWorktreePath } from '../../lib/worktree-preferences'
2322

2423
interface IWorktreeDropdownProps {
2524
readonly dispatcher: Dispatcher
@@ -60,13 +59,6 @@ export class WorktreeDropdown extends React.Component<
6059

6160
dispatcher.closeFoldout(FoldoutType.Worktree)
6261

63-
const { allWorktrees } = this.props.repositoryState.worktreesState
64-
const mainWorktree = allWorktrees.find(wt => wt.type === 'main')
65-
66-
if (mainWorktree) {
67-
setPreferredWorktreePath(mainWorktree.path, worktree.path)
68-
}
69-
7062
const existingRepo = repositories.find(
7163
r => r instanceof Repository && normalizePath(r.path) === worktreePath
7264
)

app/src/ui/worktrees/delete-worktree-dialog.tsx

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,6 @@ import { Ref } from '../lib/ref'
88
import { OkCancelButtonGroup } from '../dialog/ok-cancel-button-group'
99
import { removeWorktree, getMainWorktreePath } from '../../lib/git/worktree'
1010
import { normalizePath } from '../../lib/helpers/path'
11-
import {
12-
getPreferredWorktreePath,
13-
clearPreferredWorktreePath,
14-
} from '../../lib/worktree-preferences'
1511

1612
interface IDeleteWorktreeDialogProps {
1713
readonly repository: Repository
@@ -70,19 +66,16 @@ export class DeleteWorktreeDialog extends React.Component<
7066
const isDeletingCurrentWorktree =
7167
normalizePath(repository.path) === normalizePath(worktreePath)
7268

73-
const mainPathForCleanup = await getMainWorktreePath(repository)
74-
7569
try {
7670
if (isDeletingCurrentWorktree) {
7771
// When deleting the currently selected worktree, we must switch away
7872
// first. Otherwise git runs from the directory being deleted and the
7973
// app is left pointing at a non-existent path.
80-
if (mainPathForCleanup === null) {
74+
const mainPath = await getMainWorktreePath(repository)
75+
if (mainPath === null) {
8176
throw new Error('Could not find main worktree')
8277
}
8378

84-
const mainPath = mainPathForCleanup
85-
8679
const addedRepos = await dispatcher.addRepositories(
8780
[mainPath],
8881
repository.login
@@ -97,20 +90,13 @@ export class DeleteWorktreeDialog extends React.Component<
9790
await dispatcher.removeRepository(repository, false)
9891
} else {
9992
await removeWorktree(repository, worktreePath)
100-
await dispatcher.refreshRepository(repository)
10193
}
10294
} catch (e) {
10395
dispatcher.postError(e)
10496
this.setState({ isDeleting: false })
10597
return
10698
}
10799

108-
const resolvedMainPath = mainPathForCleanup ?? repository.path
109-
const preferred = getPreferredWorktreePath(resolvedMainPath)
110-
if (preferred && normalizePath(preferred) === normalizePath(worktreePath)) {
111-
clearPreferredWorktreePath(resolvedMainPath)
112-
}
113-
114100
this.props.onDismissed()
115101
}
116102
}

app/src/ui/worktrees/rename-worktree-dialog.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import { Dialog, DialogContent, DialogFooter } from '../dialog'
77
import { TextBox } from '../lib/text-box'
88
import { OkCancelButtonGroup } from '../dialog/ok-cancel-button-group'
99
import { moveWorktree } from '../../lib/git/worktree'
10-
import { setPreferredWorktreePath } from '../../lib/worktree-preferences'
1110

1211
interface IRenameWorktreeDialogProps {
1312
readonly repository: Repository
@@ -46,14 +45,12 @@ export class RenameWorktreeDialog extends React.Component<
4645
this.setState({ renaming: true })
4746

4847
const storedRepo = await dispatcher.getRepositoryForPath(worktreePath)
49-
const mainRepoPath = repository.path
5048

5149
try {
5250
await moveWorktree(repository, worktreePath, newPath)
5351
if (storedRepo !== null) {
5452
await dispatcher.updateRepositoryPath(storedRepo, newPath)
5553
}
56-
setPreferredWorktreePath(mainRepoPath, newPath)
5754
} catch (e) {
5855
dispatcher.postError(e)
5956
return

0 commit comments

Comments
 (0)