Skip to content

Commit 1435a2d

Browse files
committed
Fix pinning repos with worktrees
1 parent 9f2e103 commit 1435a2d

1 file changed

Lines changed: 21 additions & 2 deletions

File tree

app/src/ui/repositories-list/repositories-list.tsx

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -763,13 +763,32 @@ export class RepositoriesList extends React.Component<
763763
this.props.dispatcher.changeRepositoryGroupName(repository, null)
764764
}
765765

766+
private getWorktreeFamily(repository: Repository): ReadonlyArray<Repository> {
767+
const mainPath = normalizePath(
768+
repository.isLinkedWorktree
769+
? repository.mainWorktreePath
770+
: repository.path
771+
)
772+
return this.props.repositories.filter(
773+
(r): r is Repository =>
774+
r instanceof Repository &&
775+
(normalizePath(r.path) === mainPath ||
776+
(r.isLinkedWorktree &&
777+
normalizePath(r.mainWorktreePath) === mainPath))
778+
)
779+
}
780+
766781
private onPinRepository = (repository: Repository) => {
767-
addPinnedRepository(repository)
782+
for (const r of this.getWorktreeFamily(repository)) {
783+
addPinnedRepository(r)
784+
}
768785
this.setState({ pinnedRepositoriesIds: getPinnedRepositories() })
769786
}
770787

771788
private onUnpinRepository = (repository: Repository) => {
772-
removePinnedRepository(repository)
789+
for (const r of this.getWorktreeFamily(repository)) {
790+
removePinnedRepository(r)
791+
}
773792
this.setState({ pinnedRepositoriesIds: getPinnedRepositories() })
774793
}
775794
}

0 commit comments

Comments
 (0)