Description
Pheonix should support all features of GIT in the Browser without backed support. Brackets earlier had brackets-git extension that requires node runtime and git installed. But this will not work for Phoenix as client side web is the main target for Phoenix IDE. See the available technologies section below for options.
Phoenix is based on a virtual file system that presents a UNIX-like file system to the browser backed by indexedDB or fs access API. the filesystem is exposed by a nodejs fs
like library that is partially compliant to node fs lib. This virtual filesystem is available within all contexts(main thread, workers, service workers) as it is backed by indexed db and presents full support for change watchers.
We need to thread this virtual file system, to the isomorphic git to make git happen in the browser in Phoenix IDE.
Feature requirements Phase 1
The brackets git extension can be adapted to the web using isomorphic-git library to provide a pure browser native git client. The following features are targetted:
- Git project changes panel GUI.
- Git file change markings in the editor.
- Git history panel.
- Git commit.
- Commit details page:
Feature requirements Phase 2
- Git push workflows
- Native Git support in native builds.
Available technologies
Isomorphic Git is a pure JavaScript reimplementation of git that works in both Node.js and browser JavaScript environments. It can read and write to git repositories, fetch from and push to git remotes (such as GitHub). We should be able to leverage this to provide pure browser-based git IDE features.
Related issues:
Metadata
Metadata
Assignees
Type
Projects
Status