Skip to content
One stop to manage all git repository
Vue JavaScript CSS HTML
Branch: master
Clone or download
mittalyashu Merge fix (SQLite & Repository Modal) (#3578)
* Migrate to SQLite (#3577)

* Install electron-rebuild package

* Create database.js file

* Install sqlite3 package

* Update postinstall script command

postinstall command install all the electron app native deps.

* Remove rebuild script command

* Export the open database connection

* Create repository database table

Repository db table will store repository added to Thermal application

* Rename variable to repository.path

* Add unique repositoryId and rename db table column names

* Rename local variable repository.path

* Dynamic routes (#176)

* Add params to repository routes

Add projectId and branchName params to repository routes.

* Rename route name to project

Rename the repository routes from repository to project

* projectWorkspace
* projectCommits

* Remove workspaceRepository from vuex

No longer using vuex for storing active repository.

* Change git status parameter to path

* Mixin to fetch data of active repository

* Change git diff argument to path

* Use navigation guard beforeRouteEnter()

* Update repository data property name

* Change git commit argument to path

* Import repositoryData mixin to navbar

* Use repositoryData property and inline dynamic class names

Replace this.currentRepository with this.repositoryData and compute the dynamic css class inline

* Pass route params to vue router

* Remove mutation of commits and stage files from navbar

* Remove updateCurrentRepository method

Remove the method which updates the workspace to selected repository.

* Fetch active branch name & pass as route params with projectId

* Pass projectId as route params

* Validate repositoryRoute starts with /repository

* Split history page to commits & commit

Show commit logs in commits page and commit detail in commit page

* Change function argument to path

Instead of passing repository object, pass path as string.

* Remove vuex from commits and commit page

Store data locally inside component

* Add warning style to TButton

* Initialize git repository on welcome page

Move the process of initializing git repository from repository to welcome page.

* Add border color to danger button

* Fix spelling mistake "Initialize"

* Pass branchName as params to commit route

Changing to other view (for example: workspace) from sidebar, it shows error, as the route doesn't have any branchName.

That's why passing brachName as params to commit route is important.

* Update route name & pass branchName as params in sidebar

* Fix: Click on thermal logo redirect to welcome page

* Import repositoryDataMixin to commitMessage

* Change to repositoryData in commitMessage

* Rename component name to CommitMessageBox

* Pass branchName as params to settings page

* Update: currentRepository to repositoryData mixin

* Open repository settings from menubar

* Remove vuex action from switch repository method

* Run updateRepositoryData method on mounted & beforeUpdate

Menubar was unable to read data from repositoryData before it is already mounted, that's why it is important to add beforeupdate lifecycle hook.

* Update: RepositoryDataMixin data property

* Update: Use repositoryDataMixin for fetch repository data

* Update: Pass projectId as payload for modify vuex state

* Remove workspace store reference and use projectId route params

* Update local storage data after running repository mutation

* Import repositoryDataMixin for repository data

* Rename method openRepositorySettings()

* Add params to repository settings menubar

* Remove duplicate openRepositorySettings() method

* Change repository vuex state property name

* Query repo from db & display on welcome page

* Rename database file to thermal.sqlite

* Remove isGitRepo from repository db table

* Repository database colums NOT NULL

* Create gitRepository & repositorySettings db table

* Ignore .sqlite database files

* Remove repository mutations & actions

* Add updateRepositoryList mutation

* Create local repository data property

* Update getRepositoryName() method

* Insert data to repository db table

* Valid git repository and getRemote URL

* Import database

* Insert data to repositorySettings & gitRepository

* Query all data from repository table

* Method addRepositoryToDatabase()

* Query selective data from repository database

Selecting repositoryId, repositoryName, repositoryPath, and isGit.

* Allow click on settings button regardless of isGit

* Rename repository to newRepository

newRepository local data property is used for adding repository (addNewRepository)

* Query all repo after adding entry to db table

* Change valid git repo key value `isGit`

isGit is a column in gitRepository db table.

* Add repository to db on dropHandler

* Fetch projectId data from on mounted

* Update local data property to settings

* Switch vuex to settings local data property

* Remove repository method

* Update input fields label & input

* Remove repository mutation beforeCreated()

* Query selective data from repository, gitRepository db table

Update local data property from addRepository.js mixin `this.newRepository`.

* Split queryAllRepository into mixin

* repository (directoryPath) & repositorySettings (repositoryName)

Update and simplify database columns

* Use queryAllRepository mixin

* Update settings data to database (onClick button)

* gitCommands database table

Switch from vuex to sqlite database.

* Added repository list modal (#3570)

* Added repository list modal.

* fix: repositoryItem filters expected value is object

* Add close button to modal footer

* Removed repeated if-condition.

* Format the code

* Add new props to repositoryItem

Get all repository list from database and pass further to `repositoryItem.vue` as props  (repositoryId, repositoryName, isGit)

* Close selectRepository modal on select other repo

* Add height props to repositoryList

* Add initialize git repo button

Pass directoryPath as props for initialize git repository button

* Use repositoryList component

* Remove openWorkspace & openSettings methods

* Query all repository on app mounted()

* Move styles to repositoryItem.vue

* Remove styles for example repository modal

* Remove drag and drop from welcome.vue

Moving the drag and drop feature to select.vue page

* Remove truncateFilter import

* Add type and path to repositoryItem.vue

Add repository type icon and repository path

* selectRepository page

A page for adding and opening repository

Later more functionality will be added like github and gitlab integration

* Search repository option

* Pass source & path props to repositoryList & repositoryItem

* Add source column to repositorySettings db

* Pass source & path props to repositorylist comp.

* Hide repositoryPath and sourceIcon based props

* open select page from menubar

* fix: change welcome page component to welcome.vue

* Rename from to SwitchRepository modal

* Toggle switchRepository from navbar

* Drop and drop only 1 repository

Temporarily limit add repository count to 1 on drag and drop

* Remove switch repository button from menubar

* Hide source icon and path from welcome page repository list
Latest commit 30b66b9 Oct 15, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Use single on object for event trigger Sep 14, 2019
build Update: Icon shape to rounded for linux Jul 23, 2019
src Merge fix (SQLite & Repository Modal) (#3578) Oct 15, 2019
static/image Improve user_avatar v2.0 Mar 18, 2019
.prettierrc Remove propseWrap option from prettier Apr 30, 2019
LICENCE Fix Typos across thermal repository (#3484) Jul 20, 2019 Format markdown links (#3516) Aug 3, 2019 Create Jun 14, 2019
package.json Merge fix (SQLite & Repository Modal) (#3578) Oct 15, 2019



Thermal is a free, open-source, cross-platform Git GUI built by developers for developers

Become a Sponsor Azure pipeline Total downloads Discord invite PRs welcome! Follow @gitthermal StackShare

Guide · Download · Issues · Contribute · Discord

Thermal app screenshots

🧐 About

Thermal is free, open-source and cross-platform desktop application build using Electron & Vue.js, allowing you to manage your Git repositories at one place by providing a simple to use graphic interface with built-in features like commits, history, repository settings and more.

🏁 Getting Started

Download the official installer for your operating system from Thermal website.

🤝🏻 Community

Stay up to date on the development of Thermal and reach out to the community with these helpful resources.

⛏️ Built Using

Contributing to Thermal project is fairly easy, read this article how to contribute.

🙏🏻 Credits

You can’t perform that action at this time.