GithubHelp home page GithubHelp logo

yamazaki93 / metrogit Goto Github PK

View Code? Open in Web Editor NEW
162.0 9.0 28.0 23.17 MB

A git visualization tool that's more than just git

License: MIT License

JavaScript 18.12% TypeScript 57.03% CSS 9.68% HTML 15.10% PowerShell 0.03% Shell 0.05%
git jira visualization developer-tools appveyor anugular electron

metrogit's Introduction

Metro themed Git UI

MetroGit is a native desktop git app with JIRA, AppVeyor and other tools integrated into one consistent UI. So no more switching windows and jumping between browser tabs ๐Ÿค“. More integration and feature still yet to come...

alt text

Feature Highlight

  • Subway map style git visualization with commit details
  • Basic repo operations (pull, push, commit, stash, pop, create branch)
  • JIRA integration with native UI
  • Map integrated AppVeyor build status with periodic update and on-demand log download
  • Credential caching with Windows Credential Manager (through keytar)
  • Repository specific settings

Built On

This app is built with some really awsome frameworks, including:

Feathericons

Getting Started

Downlading and Installation

Github Releases

To start using this app, go to Releases, download and run the latest setup.exe or dmg and off you go.

Building

This app is built on: NodeJS 8.10

To build this from the scratch, global dependencies electron-builder and @angular/cli is needed.

  • You can install global dependencies via npm install -g electron-builder @angular/cli

After installing correct dependencies, do the following.

  1. Clone this repo
  2. cd into this repo, yarn install
  3. cd app/frontend
  4. yarn install
  5. cd ../.. back to project root directory
  6. .\build.ps1 (for windows) or .\build.sh (for Mac)
  7. The output is in dist folder

Support this app

Hi there, if you like this app, find it useful or just like this subway map, I'd loved to hear your feedback and experiences, you can share them with [email protected]

Also, please consider Buy me a teaBuy me a tea, I live on black tea basically ๐Ÿ˜‰

Or, alternatively

BTC: 3CAgw9vNPNXHR1YaWmJe98DDiTqdgKkv8Y

ETH: 0xea96AA397a799E77f5991A2568099698329C3D39

FAQ and Issues

Checkout the Wiki FAQ Page for frequently asked questions. If you've found a bug, security issue or want to suggest a feature, feel free to post them to the Issues section (please search for existing issues and FAQ before posting new ones ๐Ÿ™‚)

Contributing

Interested in contributing? Please read our Contributing Guide and Code of Conduct

License

MIT ยฉ Ming-Hung (Michael) Lu

metrogit's People

Contributors

theryanshan avatar yamazaki93 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

metrogit's Issues

Rebase Branch

manually select a branch and choose another branch to rebase onto

Merge Branch

Merge 2 branches, add right click menu in both branch viewer and map

Strange Files Committed

Describe the bug
Sometimes strange files got committed, usually a phantom deleted file will get committed then a added file appears as uncommitted changes

To Reproduce
Steps to reproduce the behavior:

Expected behavior
No random files should appear when committing

Jenkins CI Integration

Simple Jenkins CI integration, similar to AppVeyor, pull Jenkins results and integrate in map and CI detail tab

JIRA Key Appears in Blank Commit Message Even When Current Repo Is Not JIRA Enabled

Describe the bug
JIRA key shows up in commit message panel even when current repo is not JIRA enabled. This happens when opening a JIRA enabled repo then open another repo

To Reproduce
Steps to reproduce the behavior:

  1. Open a JIRA enabled repo
  2. Open another repo, not JIRA enabled
  3. Make some changes with files, open the commit panel
  4. Click on "Commit Message", the old JIRA key appears

Expected behavior
JIRA key should not appear

Unnecessary Credential Warning

Describe the bug
When no credential entered on Mac, an unnecessary error appears when the login form appears

To Reproduce
Steps to reproduce the behavior:

  1. Open a repo for the first time
  2. Pull, the error with the login prompt shows up

Expected behavior
The error should not show up

Submodules

Manage submodules, for now just list and view

Random Crash in Mac

Describe the bug
Randomly crashes in mac, the error showing relating to "assertion failed(t->cred)..."
Related to this issue where an empty credential was returned, this will work on Windows but not on Mac

FileDetailPanel Remains Open After Changes Committed

Describe the bug
When viewing individual file details in un-committed changes, the file panel remains open after the changes are committed which closes the commit-detail-panel

To Reproduce
Steps to reproduce the behavior:

  1. Click uncommitted changes
  2. click a file in the detail, the file panel showes up
  3. Commit all changes, commit-detail-panel closes but file detail panel remains open

Expected behavior
Both panel should close

About Page

Add an about page, with link to this repo

Details Tab Rework

Re-work the commit details tab (the right panel) so that with no commits selected, user can still interact with JIRA.
Also rework the JIRA tab to allow search for other tickets

Show File Details

See modification (line by line details) when clicked on a file entry in the commit detail view
View only, when click an entry in the commit detail tab, a separate panel opens with all the hunks diff.
Able to undock, open a new window with the file details

First Time Running Throws JavaScript Error

Describe the bug
A javascript error is thrown when first running the program

To Reproduce
Steps to reproduce the behavior:

  1. install the program
  2. run the program

Expected behavior
No error should occur

Additional context
It's throwing a directory not found error because of a wrong initialization order. This will be fixed in 0.1.1.
To get it to work for 0.1.0, create a folder named "MetroGit" in your user directory

Conflict Merge

In conflict state, update the commit panel to show merge or abort button and hook up abort functionality

Github Integration

Integrate better with Github

  • Raise, view PR
  • Get Github issues
  • Github login with 2FA

View Whole File With Diff in FileViewPanel

Describe the solution you'd like
To be able to see entire file with diff lines in FileViwPanel instead of just hunks

Additional context
Maybe a toggle button to toggle between whole file or just hunks

Filter List of File Changes By Type

Add filtering functionality in CommitDetailPanel to filter list of file changes by modification type (modified, added, deleted, renamed...)

Auto Cache Cleanup

Add auto delete cashed files in cache service, maybe delete oldest file to keep it under 10M

Discard All Changes Doesn't Discard Added Files

Describe the bug
The discard all changes button doesn't get rid of added files

To Reproduce
Steps to reproduce the behavior:

  1. Open a repo, add a random file
  2. Click the uncommitted changes in map, opens up the detail panel, click "Discard All Changes"
  3. Deleted/Modified changes are discarded, but added files remains

Expected behavior
All changes should be discarded

Error During Commit When a Deleted File is Not Staged

Describe the bug
When a deleted file is present in current changes and unstaged, directly committing without staging will cause error

To Reproduce
Steps to reproduce the behavior:

  1. Open a Repo, remove a file tracked
  2. Go to commit detail panel, type in message, click commit without staging it
  3. Error appears

Expected behavior
Error shouldn't appear

Some shortcut is not working on Mac

Describe the bug
ctrl related keyboard shortcut not working on mac.

Expected behavior
Will change to use application wide shortcut with command on Mac and control on Windows

Recreating Window on Mac Registers Handler Again

Describe the bug
On mac, after closing and re-opening window, event handler got registered again causing duplicated message to show up

To Reproduce
Steps to reproduce the behavior:

  1. Open the app, closes the window
  2. Open the app again, click on an operation (say pull)
  3. An error is shown 2 times

Expected behavior
Only 1 error should appear

Keyboard shortcut

Add global keyboard shortcuts for commiting, pushing, pulling etc.
Planned:

  • ctrl+s commit
  • ctrl+p pull
  • ctrl+enter push

Open Other JIRA Issue

With JIRA links present in description, clicking them navigate the JIRA detail tab to the clicked issue

MacOS Build

Yes don't worry, you aren't left out, I am working on a build for MacOS.
The build is planned to be performed on 0.1.0-beta and will be amended to the release once ready

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.