Xit
Xit copied to clipboard
Interface segregation for XTRepository
XTRepository should be refactored to conform to the Interface Segregation Principle.
Each class that uses XTRepository only uses a small subset of its features - managing branches, loading commit contents, etc. A protocol should be created for each of those functionality categories, so that client classes work with the repository through the protocol(s) that it actually needs.
Remaining classes that refer to XTRepository directly and probably shouldn't:
- [ ] TitleBarViewController
- [ ] XTOperationController
- [ ] XTRemoteSheetController
- [ ] XTSidebarController
- [ ] XTSidebarDataSource
- [ ] XTSidebarItem
- [ ] XTHistoryViewController
- [ ] XTHistoryTableController
- [ ] FileViewController
- [ ] XTCommitEntryController
- [ ] BuildStatusCache