VisualGit is a visually-oriented desktop client for Git aimed at helping students learn the standard Git workflow.
Node.js
and its package manager - npm
(Node Package Manager) are used to manage VisualGit's dependencies. To run
this project,node v6.11
and npm v3.10
is required. Downgrading your node
version can be done through nvm
(Node
Version Manager). To setup node
to have the correct version, see the
Project Setup.
Note: If you used Homebrew
to install node
on macOS, you may need to reinstall node
by uninstalling the brew
version first. See the Project Setup to do so.
The repository can be cloned using either HTTPS or SSH, but SSH will be needed for making pull requests.
git clone [email protected]:kblincoe/VisualGit_SE701_2019_3.git
git clone https://github.com/kblincoe/VisualGit_SE701_2019_3.git
then...
cd VisualGit_SE701_2019_3
npm install
then... for Windows
npm start
or... for macOS
npm run macstart
As VisualGit utilises SSH for user authentication, ensure you generate an SSH key for your GitHub account. If you are not running Mac, you will also need to set up and run an ssh-agent to access your SSH key at run time without providing your credentials each time.
If you still need help setting up SSH, follow the GitHub guide to SSH.
Angular is a popular open-sourced web framework based on TypeScript. Angular is a complete
re-write from AngularJS (a.k.a Angular v1). This project runs a beta-version of Angular 2, so there are a few
compatibility issues with newer versions of npm
and project structure of newer versions of Angular.
TypeScript is a statically-typed superset of JavaScript that compiles into JavaScript. Our source files are written in TypeScript (.ts files), and then compiled into JavaScript (.js files). You will need to run the TypeScript compiler to compile the source code. e.g. typescript-compiler for Node.
Style definitions for this project are done using CSS.
Repositories can be added by two methods; either by cloning the remotely hosted repository or opening it from the local file system. This is achieved using the add repository button in the top left which will update the screen to the add repository view.
Cloning with SSH is recommended as there is not yet any method for entering user credentials in VisualGit. This means that if you clone using HTTPS, you will still be able to see local changes and commit locally but not push.
Currently, when you clone a repository, it is saved to a directory under ./VisualGit/
. This means that when you open a
repository which is saved locally, you can simply enter the name of the directory relative to the VisualGit directory.
Other save locations are not currently supported but it is planned in future work.
When changes are made in a repository which is open, the interface will update by showing each file which has uncommitted changes. These changes will be displayed as a traffic light scheme:
- Green: Added file
- Orange: Modified file
- Red: Deleted file
This is used to allow users to see the different types of changes easily and once they click on the files, the file differences will be shown. The file differences are shown line by line with green lines representing added lines and red representing deleted lines. Any other parts of the file are unchanged.
The pulling and pushing currently works for changes which are made on master and origin/master by syncing these up. When the pull button is clicked, any changes on the remote repository will be added to the local repository and the graph will be updated. When pushing, the same process applies. The changes on master will be pushed to the remote repository.
VisualGit utilises a range of libraries and frameworks, more information on them can be found below: