Coder Social home page Coder Social logo

mhutchie / vscode-git-graph Goto Github PK

View Code? Open in Web Editor NEW
1.8K 17.0 230.0 10.34 MB

View a Git Graph of your repository in Visual Studio Code, and easily perform Git actions from the graph.

Home Page: https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph

License: Other

CSS 2.42% TypeScript 97.55% Shell 0.02% JavaScript 0.02%
vscode vscode-extension visual-studio-code visual-studio-code-extension git

vscode-git-graph's Introduction

Git Graph extension for Visual Studio Code

View a Git Graph of your repository, and easily perform Git actions from the graph. Configurable to look the way you want!

Recording of Git Graph

Features

  • Git Graph View:
    • Display:
      • Local & Remote Branches
      • Local Refs: Heads, Tags & Remotes
      • Uncommitted Changes
    • Perform Git Actions (available by right clicking on a commit / branch / tag):
      • Create, Checkout, Delete, Fetch, Merge, Pull, Push, Rebase, Rename & Reset Branches
      • Add, Delete & Push Tags
      • Checkout, Cherry Pick, Drop, Merge & Revert Commits
      • Clean, Reset & Stash Uncommitted Changes
      • Apply, Create Branch From, Drop & Pop Stashes
      • View annotated tag details (name, email, date and message)
      • Copy commit hashes, and branch, stash & tag names to the clipboard
    • View commit details and file changes by clicking on a commit. On the Commit Details View you can:
      • View the Visual Studio Code Diff of any file change by clicking on it.
      • Open the current version of any file that was affected in the commit.
      • Copy the path of any file that was affected in the commit to the clipboard.
      • Click on any HTTP/HTTPS url in the commit body to open it in your default web browser.
    • Compare any two commits by clicking on a commit, and then CTRL/CMD clicking on another commit. On the Commit Comparison View you can:
      • View the Visual Studio Code Diff of any file change between the selected commits by clicking on it.
      • Open the current version of any file that was affected between the selected commits.
      • Copy the path of any file that was affected between the selected commits to the clipboard.
    • Code Review - Keep track of which files you have reviewed in the Commit Details & Comparison Views.
      • Code Review's can be performed on any commit, or between any two commits (not on Uncommitted Changes).
      • When a Code Review is started, all files needing to be reviewed are bolded. When you view the diff / open a file, it will then be un-bolded.
      • Code Reviews persist across Visual Studio Code sessions. They are automatically closed after 90 days of inactivity.
    • View uncommitted changes, and compare the uncommitted changes with any commit.
    • Hover over any commit vertex on the graph to see a tooltip indicating:
      • Whether the commit is included in the HEAD.
      • Which branches, tags and stashes include the commit.
    • Filter the branches shown in Git Graph using the 'Branches' dropdown menu. The options for filtering the branches are:
      • Show All branches
      • Select one or more branches to be viewed
      • Select from a user predefined array of custom glob patterns (by setting git-graph.customBranchGlobPatterns)
    • Fetch from Remote(s) (available on the top control bar)
    • Find Widget allows you to quickly find one or more commits containing a specific phrase (in the commit message / date / author / hash, branch or tag names).
    • Repository Settings Widget:
      • Allows you to view, add, edit, delete, fetch & prune remotes of the repository.
      • Configure "Issue Linking" - Converts issue numbers in commit messages into hyperlinks, that open the issue in your issue tracking system.
      • Configure "Pull Request Creation" - Automates the opening and pre-filling of a Pull Request form, directly from a branches context menu.
        • Support for the publicly hosted Bitbucket, GitHub and GitLab Pull Request providers is built-in.
        • Custom Pull Request providers can be configured using the Extension Setting git-graph.customPullRequestProviders (e.g. for use with privately hosted Pull Request providers). Information on how to configure custom providers is available here.
      • Export your Git Graph Repository Configuration to a file that can be committed in the repository. It allows others working in the same repository to automatically use the same Git Graph configuration.
    • Keyboard Shortcuts (available in the Git Graph View):
      • CTRL/CMD + F: Open the Find Widget.
      • CTRL/CMD + H: Scrolls the Git Graph View to be centered on the commit referenced by HEAD.
      • CTRL/CMD + R: Refresh the Git Graph View.
      • CTRL/CMD + S: Scrolls the Git Graph View to the first (or next) stash in the loaded commits.
      • CTRL/CMD + SHIFT + S: Scrolls the Git Graph View to the last (or previous) stash in the loaded commits.
      • When the Commit Details View is open on a commit:
        • Up / Down: The Commit Details View will be opened on the commit directly above or below it on the Git Graph View.
        • CTRL/CMD + Up / CTRL/CMD + Down: The Commit Details View will be opened on its child or parent commit on the same branch.
          • If the Shift Key is also pressed (i.e. CTRL/CMD + SHIFT + Up / CTRL/CMD + SHIFT + Down), when branches or merges are encountered the alternative branch is followed.
      • Enter: If a dialog is open, pressing enter submits the dialog, taking the primary (left) action.
      • Escape: Closes the active dialog, context menu or the Commit Details View.
    • Resize the width of each column, and show/hide the Date, Author & Commit columns.
    • Common Emoji Shortcodes are automatically replaced with the corresponding emoji in commit messages (including all gitmoji). Custom Emoji Shortcode mappings can be defined in git-graph.customEmojiShortcodeMappings.
  • A broad range of configurable settings (e.g. graph style, branch colours, and more...). See the 'Extension Settings' section below for more information.
  • "Git Graph" launch button in the Status Bar
  • "Git Graph: View Git Graph" launch command in the Command Palette

Extension Settings

Detailed information of all Git Graph settings is available here, including: descriptions, screenshots, default values and types.

A summary of the Git Graph extension settings are:

  • Commit Details View:
    • Auto Center: Automatically center the Commit Details View when it is opened.
    • File View:
      • File Tree:
        • Compact Folders: Render the File Tree in the Commit Details View in a compacted form, such that folders with a single child folder are compressed into a single combined folder element.
      • Type: Sets the default type of File View used in the Commit Details View.
    • Location: Specifies where the Commit Details View is rendered in the Git Graph View.
  • Context Menu Actions Visibility: Customise which context menu actions are visible. For more information, see the documentation here.
  • Custom Branch Glob Patterns: An array of Custom Glob Patterns to be shown in the "Branches" dropdown. Example: [{"name":"Feature Requests", "glob":"heads/feature/*"}]
  • Custom Emoji Shortcode Mappings: An array of custom Emoji Shortcode mappings. Example: [{"shortcode": ":sparkles:", "emoji":"✨"}]
  • Custom Pull Request Providers: An array of custom Pull Request providers that can be used in the "Pull Request Creation" Integration. For information on how to configure this setting, see the documentation here.
  • Date:
    • Format: Specifies the date format to be used in the "Date" column on the Git Graph View.
    • Type: Specifies the date type to be displayed in the "Date" column on the Git Graph View, either the author or commit date.
  • Default Column Visibility: An object specifying the default visibility of the Date, Author & Commit columns. Example: {"Date": true, "Author": true, "Commit": true}
  • Dialog > *: Set the default options on the following dialogs: Add Tag, Apply Stash, Cherry Pick, Create Branch, Delete Branch, Fetch into Local Branch, Fetch Remote, Merge, Pop Stash, Pull Branch, Rebase, Reset, and Stash Uncommitted Changes
  • Enhanced Accessibility: Visual file change A|M|D|R|U indicators in the Commit Details View for users with colour blindness. In the future, this setting will enable any additional accessibility related features of Git Graph that aren't enabled by default.
  • File Encoding: The character set encoding used when retrieving a specific version of repository files (e.g. in the Diff View). A list of all supported encodings can be found here.
  • Graph:
    • Colours: Specifies the colours used on the graph.
    • Style: Specifies the style of the graph.
    • Uncommitted Changes: Specifies how the Uncommitted Changes are displayed on the graph.
  • Integrated Terminal Shell: Specifies the path and filename of the Shell executable to be used by the Visual Studio Code Integrated Terminal, when it is opened by Git Graph.
  • Keyboard Shortcut > *: Configures the keybindings used for all keyboard shortcuts in the Git Graph View.
  • Markdown: Parse and render a frequently used subset of inline Markdown formatting rules in commit messages and tag details (bold, italics, bold & italics, and inline code blocks).
  • Max Depth Of Repo Search: Specifies the maximum depth of subfolders to search when discovering repositories in the workspace.
  • Open New Tab Editor Group: Specifies the Editor Group where Git Graph should open new tabs, when performing the following actions from the Git Graph View: Viewing the Visual Studio Code Diff View, Opening a File, Viewing a File at a Specific Revision.
  • Open to the Repo of the Active Text Editor Document: Open the Git Graph View to the repository containing the active Text Editor document.
  • Reference Labels:
    • Alignment: Specifies how branch and tag reference labels are aligned for each commit.
    • Combine Local and Remote Branch Labels: Combine local and remote branch labels if they refer to the same branch, and are on the same commit.
  • Repository:
    • Commits:
      • Fetch Avatars: Fetch avatars of commit authors and committers.
      • Initial Load: Specifies the number of commits to initially load.
      • Load More: Specifies the number of additional commits to load when the "Load More Commits" button is pressed, or more commits are automatically loaded.
      • Load More Automatically: When the view has been scrolled to the bottom, automatically load more commits if they exist (instead of having to press the "Load More Commits" button).
      • Mute:
        • Commits that are not ancestors of HEAD: Display commits that aren't ancestors of the checked-out branch / commit with a muted text color.
        • Merge Commits: Display merge commits with a muted text color.
      • Order: Specifies the order of commits on the Git Graph View. See git log for more information on each order option.
      • Show Signature Status: Show the commit's signature status to the right of the Committer in the Commit Details View (only for signed commits). Hovering over the signature icon displays a tooltip with the signature details.
    • Fetch and Prune: Before fetching from remote(s) using the Fetch button on the Git Graph View Control Bar, remove any remote-tracking references that no longer exist on the remote(s).
    • Fetch And Prune Tags: Before fetching from remote(s) using the Fetch button on the Git Graph View Control Bar, remove any local tags that no longer exist on the remote(s).
    • Include Commits Mentioned By Reflogs: Include commits only mentioned by reflogs in the Git Graph View (only applies when showing all branches).
    • On Load:
      • Scroll To Head: Automatically scroll the Git Graph View to be centered on the commit referenced by HEAD.
      • Show Checked Out Branch: Show the checked out branch when a repository is loaded in the Git Graph View.
      • Show Specific Branches: Show specific branches when a repository is loaded in the Git Graph View.
    • Only Follow First Parent: Only follow the first parent of commits when discovering the commits to load in the Git Graph View. See --first-parent to find out more about this setting.
    • Show Commits Only Referenced By Tags: Show Commits that are only referenced by tags in Git Graph.
    • Show Remote Branches: Show Remote Branches in Git Graph by default.
    • Show Remote Heads: Show Remote HEAD Symbolic References in Git Graph.
    • Show Stashes: Show Stashes in Git Graph by default.
    • Show Tags: Show Tags in Git Graph by default.
    • Show Uncommitted Changes: Show uncommitted changes. If you work on large repositories, disabling this setting can reduce the load time of the Git Graph View.
    • Show Untracked Files: Show untracked files when viewing the uncommitted changes. If you work on large repositories, disabling this setting can reduce the load time of the Git Graph View.
    • Sign:
      • Commits: Enables commit signing with GPG or X.509.
      • Tags: Enables tag signing with GPG or X.509.
    • Use Mailmap: Respect .mailmap files when displaying author & committer names and email addresses.
  • Repository Dropdown Order: Specifies the order that repositories are sorted in the repository dropdown on the Git Graph View (only visible when more than one repository exists in the current Visual Studio Code Workspace).
  • Retain Context When Hidden: Specifies if the Git Graph view Visual Studio Code context is kept when the panel is no longer visible (e.g. moved to background tab). Enabling this setting will make Git Graph load significantly faster when switching back to the Git Graph tab, however has a higher memory overhead.
  • Show Status Bar Item: Show a Status Bar Item that opens the Git Graph View when clicked.
  • Source Code Provider Integration Location: Specifies where the "View Git Graph" action appears on the title of SCM Providers.
  • Tab Icon Colour Theme: Specifies the colour theme of the icon displayed on the Git Graph tab.

This extension consumes the following settings:

  • git.path: Specifies the path and filename of a portable Git installation.

Extension Commands

This extension contributes the following commands:

  • git-graph.view: Git Graph: View Git Graph
  • git-graph.addGitRepository: Git Graph: Add Git Repository... (used to add sub-repos to Git Graph)
  • git-graph.clearAvatarCache: Git Graph: Clear Avatar Cache
  • git-graph.endAllWorkspaceCodeReviews: Git Graph: End All Code Reviews in Workspace
  • git-graph.endSpecificWorkspaceCodeReview: Git Graph: End a specific Code Review in Workspace... (used to end a specific Code Review without having to first open it in the Git Graph View)
  • git-graph.fetch: Git Graph: Fetch from Remote(s) (used to open the Git Graph View and immediately run "Fetch from Remote(s)")
  • git-graph.removeGitRepository: Git Graph: Remove Git Repository... (used to remove repositories from Git Graph)
  • git-graph.resumeWorkspaceCodeReview: Git Graph: Resume a specific Code Review in Workspace... (used to open the Git Graph View to a Code Review that is already in progress)
  • git-graph.version: Git Graph: Get Version Information

Release Notes

Detailed Release Notes are available here.

Visual Studio Marketplace

This extension is available on the Visual Studio Marketplace for Visual Studio Code.

Acknowledgements

Thank you to all of the contributors that help with the development of Git Graph!

Some of the icons used in Git Graph are from the following sources, please support them for their excellent work!

vscode-git-graph's People

Contributors

dan1994 avatar egi avatar kazuma1989 avatar larrylutw avatar meierw avatar mhutchie avatar sebastianlay-webit avatar shoshinnikita avatar thmatot avatar vfonic avatar wilkmaciej avatar yzhang-gh 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vscode-git-graph's Issues

Missing highlight if HEAD on commit

Describe the bug
If a specific commit is used for checkout it is not highlighted in the Graph.

What does the bug relate to
Graph Rendering

To reproduce
Checkout a commit that is not on the end of a branch.

Expected behaviour
The same highlight as for the checkout on a branch end.

Environment

  • OS: Windows 10
  • Visual Studio Code Version: 1.31.1
  • Plugin Version: 1.3.3

Screenshots (optional)
image

$ git status
HEAD detached at afd32c6
nothing to commit, working tree clean

Show commits with only tags

Describe the feature that you'd like
Show commits in the graph that is referenced by a tag only

Additional context (optional)
When looking at the graph with 'Show All' selected I could not see commits that are only referenced by tags. (head of commits is a tag only, no branch). When using 'gitk --all' I could see the tags.

Add checkout to context menu?

Similarly to #2, I'd often appreciate a git checkout functionality in the context menu.

BTW, I use Git Graph more and more, the UI is so pleasant to use! Great job!

Master branch is not continuous on the graph when it is merged into another branch

What does the bug relate to

  • Graph Rendering
  • Git Command
  • Responsiveness

To reproduce
Steps to reproduce the behaviour:

  1. Clone VSCode repo: https://github.com/Microsoft/vscode/
  2. Open Git Graph.
  3. Scroll down to commit b3fd242ad3e4e74a4faddcba6c9318d5b0b5e613.

Notice how the blue line for master branch is not continuous near that commit (see screenshot). Have seen this with another repo in the same circumstances (master branch merged into another branch).

Expected behaviour
Graph is continuous.

Environment

  • OS: [e.g. Windows 10]
  • Visual Studio Code Version: [e.g. 1.31.1]

Screenshots (optional)
image

Support for multi-root workspaces, with multiple git repositories

Describe the feature that you'd like
When there are multiple workspaces, the default workspace will only be resolved by default.

But this is not what we want, we need to be able to select the specified workspace and parse.

For example, open the terminal.

There will be a popup window in which workspace to open

2019-02-25 21 31 34

Additional context (optional)
none!

Add option not to centre the view on the expanded commit

Describe the feature that you'd like
Consider the current behaviour:

  1. Open Git Graph.
  2. Click on a commit.

The view jumps so that the expanded commit is centred. This results in a visible flicker. I would suggest adding an option for the graph not to move when a commit is clicked on.

Filter repo

Describe the feature that you'd like
The repo drop-down is a simple drop-down that does not respond to keyboard input. It would be awesome if I could click on the repo drop-down and have the ability to select from the list or type and have the list narrow based on what I type (i.e. filter based on what I type)

Additional context (optional)
Adding a keyboard shortcut to pick the repo could be nice as well.

Assigning tags and branches via drag&drop

Very cool that VSC finally getting a proper git log!

Basically I suggest the same thing SmartGit's log does:

You probably know it anyway, but just in case there is native D&D support, that VSC<-Electron<-Chromium should be able to use (and probably is already using)

Thank you.

Add ability to do rebase on a commit or branch

Describe the feature that you'd like
From the context menu when right-clicking on a commit, add the option to rebase on the commit.
From the context menu when right-clicking on a branch, add the option to rebase on the branch.
For both commit/branch rebase, ask if rebase should happen interactively.

Chromium zoom issue causing graph nodes to become misaligned with commits

Describe the bug

The graph shifts with non-zero window.zoomLevel

What does the bug relate to

  • Graph Rendering

To reproduce

  1. Change window.zoomLevel with Ctlr+= or Ctrl+-

Screenshots

"window.zoomLevel": 0

zoom_0

"window.zoomLevel": 1

zoom_1

Environment

  • OS: Windows 10
  • Visual Studio Code Version: 1.32.3

Note

I don't think it is a problem of vscode-git-graph. Rather it is a problem of Electron and Chromium.

Add option for annotated tag

Once again, I'll keep this brief and to the point.

It would be nice if there was the option to switch between adding an annotated tag or not within the 'add tag' modal.

Support for git repositories in subfolders

Referencing this comment in here:#13 (comment)

It would be nice if the extension supports sub-folders with git repos in them. Something like the following structure:

Folder1 (is not a git repo)
-- library1 (is a git repo)
-- library2 (is a git repo)
-- .. (some more git repos)

Folder2 (is not a git repo)
-- library1 (is a git repo)
-- library2 (is a git repo)
...

Thanks mate!

Add an option to change column header background color

Describe the feature that you'd like
I would like to have an option to change column header background color.

Additional context (optional)
This is especially important for completely flat themes, like Material Theme. Note how on the screenshot the column headers are the only element which is light grey. Having an option to change it dark grey like most other UI elements would be great.

image

Ability to compare branches (actually, commits)

Thank you so much for this awesome extension. I used to use the Git History extension but immediately switched to yours since I found it (and left the first 5 ⭐ review of your extension 😎).

Describe the feature that you'd like

Select a commit for comparison, then select another commit to compare

Additional context (optional)

demo

(This is just an example of what Git History does. I don't think it is a good idea to show the comparison in the file explorer)

Resizable columns

The "Graph", "Description", etc. columns should be resizable. When working with massive repositories, the graph column can become very large, even though the latest most relevant commits/branches are only a few levels deep. (example)
Ideally the resized column width values would be saved/restored for each individual repo.

GitKraken has a pretty good implementation of this I think, by allowing you to peek the commit avatar behind the hidden part (example)

Support for git show

First of all, thank you for this awesome extension. I really love it.

The only important functionality that it is missing at the moment in my opinion is the ability to see all file changes within a given commit. Something like "git show" but implemented within the UI.

Thanks and keep up the excellent work!

push tag option

First, thx for this great plugin.

It would be nice if we had an option to push the Tag once created.

image

Load More Commits broken at least for some repos

Describe the bug
Load More Commits is broken at least for some repos.

What does the bug relate to

  • Graph Rendering
  • Git Command
  • Responsiveness

To reproduce
Steps to reproduce the behaviour:

  1. Clone this repo: https://github.com/github/government.github.com
  2. Open Git Graph.
  3. Click Load More Commits.
  4. Wait for a while (~10 min in my case).

After a while, Git Graph tab is just black (see screenshot below), commits are not loaded properly. CPU usage is also high during loading.

Expected behaviour
Commits should be loaded successfully.

Environment

  • OS: macOS 14.0.2
  • Visual Studio Code Version: 1.31.1

Screenshots (optional)
image

Automatic refresh

Describe the feature that you'd like
Automatic update the graph on changes (commit/pull/merge/...) to the git repository.

Additional context (optional)
I would like to use this plugin for git trainings or demonstrations.
Here it would be perfect if the graph will update automatically to the current state of the repository.
Actually the graph must be refreshed manually with a focus change or a click on refresh.

Similar to GitUp (sadly Mac only).

Long loading and embedded page crash

If i open git graph on a new project it works.
adding 3-4 commit , i see them
add one branch and 3-4 commit it also update and works.

But

if i open a relatively small project (5 branches, ~120 commits)
it loads 1-2 minutes then crash and tab content go black.

developer tools error

webviewElement.ts:306 embedded page crashed

  (anonymous) @ webviewElement.ts:306
  dispatchEvent @ C:\Program Files\Mic…iew\web-view.js:142
  dispatchEvent @ C:\Program Files\Mic…view-internal.js:56
  (anonymous) @ C:\Program Files\Mic…view-internal.js:74
  emit @ events.js:182

Visual studio information :

Version: 1.31.1 (system setup)
Commit: 1b8e8302e405050205e69b59abb3559592bb9e60
Date: 2019-02-12T02:20:54.427Z
Electron: 3.1.2
Chrome: 66.0.3359.181
Node.js: 10.2.0
V8: 6.6.346.32
OS: Windows_NT x64 10.0.17763

git graph version is 1.2.0

FR: Add git reset to context menu

One thing stopping me from using this instead of gitk is not being able to reset from the tree. I could have a look at adding it myself if you like...

Improve documentation and descriptions of extension settings

Describe the feature that you'd like

Hi, I noticed that we got some customization on the date format recently. Then it occurred to me why not having the "friendly dates" feature.

Additional context

It is something like this (notice the "Date modified" column)

demo

https://blogs.windows.com/windowsexperience/2018/12/19/announcing-windows-10-insider-preview-build-18305/

I am not sure but I think there are already some modules we can make use of.

Add ability to do a merge from a commit

Describe the feature that you'd like
From the context menu when right-clicking on a commit, add the option to merge into current branch, like when right-clicking on a branch.

Thank you

This is helpful and beautiful extension, thank you very much 👍

Dark dropdown text in GitHub sharp theme

Describe the bug

As this screenshot show, the branch dropdown is totally dark in GitHub sharp theme.

Screen Shot 2019-03-12 at 3 46 11 PM

What does the bug relate to
List the area(s) this issue relates to, for example:

  • Graph Rendering

Expected behaviour
A clear and concise description of what you expected to happen.

Environment

  • OS: macOS High Sierra
  • Visual Studio Code Version: 1.32.1

Screenshots (optional)

Screen Shot 2019-03-12 at 3 46 11 PM

Support for portable git installations

Describe the feature that you'd like
Support for portable git installations.

Additional context (optional)
Visual Studio Code has a setting git.path which can be used to point to a portable git installation. This configuration value should be used if it is provided, and then fall back to using git.

brilliant

Sorry for abusing an issue for this but...

Love the extension, absolutely brilliant,

a missing feature in vscode

You had that other git log extension but it had rendering isssues which required me te browse a page in history and back every time I opened it (still, better then nothing). But I will see if I can post a review for you on MS's marketplace, in a few hours.

Cheers.

Make committer identity more apparent

I'll cut straight to the chase.

At the moment the 'Author' column doesn't make it easy to see at a glance who did what commit
image
It not terribly, but I personally can't tell at a glance who's responsible for what.

Feature Request

It would be nice if use of colour/icons to differentiate authors could be applied so that it's possible to tell at a glance who did what.

Ideas

  • colour picking rotation, add colour as centre of git graph dot
  • colour picking rotation, add colour to author name
  • fetch icons from gravitar/github etc and display those

Otherwise this is very nice and easy to use. Great work so far!

tecosaur.

change text of context menu

Describe the feature that you'd like
The text of context menu like "Create Branch from this commit" may be should change to "New Branch..." since their should be other steps to finish the job

By the way.I made some change to the UI.
I saw that when one click a commit the detail will show bellow.
I change this to a split window something just like intellij version control doing.
Do you think it is a good idea?
Thanks

Ability to copy branch and tag name to Clipboard like with hash

Describe the feature that you'd like
Ability to copy branch and tag name to Clipboard like with hash.

Additional context (optional)
When right-clicking on a branch, add an option to copy the branch name to the Clipboard
When right-clicking on a tag, add an option to copy the tag name to the Clipboard

Doesn't work with Multiple Repositories

Describe the bug
Right now it's only selecting the first repo in the list regardless of the one we've selected.
If you have multiple repos, it doesn't load them, and there is no way to load them in the graph

What does the bug relate to
Repo showed in the graph

To reproduce
Click git graph, and then try to change repos, git graph only reflects the first repo in list

Expected behaviour
Should change between repos if we've selected another

Environment

  • OS: MacOS

Show commit date as well

Describe the feature that you'd like
A column that shows commit date rather than or adjacent to author date

Additional context (optional)

When running git log without filter options, eg "--since", git will show the author date. But when using said options or using git bisect it will use the commit date. Yet the commit date is not necessarily the same as the author date.

This discrepancy can manifest itself in various ways, but most commonly when rebasing branches. One situation in particular is running CI package updates and rebasing on develop to bring the current branch up to date.

I propose adding the %ct placeholder to assist when running commands like git bisect or filtering commits by date.

I'm willing to make a pull request if you'd like. Just point me on where to look.

Show Stashes

Describe the feature that you'd like
It would be nice to to be able to see stashes in the graph, it could be selectable like with "Show Remote Branches"

Additional context (optional)
Like when using
git log --oneline --graph --decorate --all $(git reflog show --format="%h" stash)
or
gitk --all

Add text box for searching logs

I think we should add the text box on the right side of Branch dropdown. We can input some keywords to searching for logs by commit message, commit ID... The results will be displayed in a table which likes the current table that we have. I think this feature will very helpful for anyone!

Remember last used Repo

When there are multiple repos in your workspace (We'll call them Repo1 and Repo2), when you view Git Graph, change the repo to Repo2, close git graph and reopen git graph, it switches back to Repo1.

git graph

What does the bug relate to
Graph rendering for multiple repos

To reproduce
Steps to reproduce the behaviour:

  1. Add multiple repos to workspace
  2. Open Git Graph
  3. Change repo
  4. Close and reopen Git Graph

Expected behaviour
Expected behavior is for git graph to remember last selected repo

Environment

  • OS: Windows 10
  • Visual Studio Code Version: 1.32.3
  • Git Graph: 1.4.3

Context menu disappears when you move the cursor away.

Describe the bug
Context menu disappears when you move the cursor away.

What does the bug relate to
List the area(s) this issue relates to, for example:

  • Context menu

To reproduce
Steps to reproduce the behaviour:

  1. Open Git Graph.
  2. Right-click on a commit.
  3. Move the mouse cursor away.

The context menu disappears.

Expected behaviour
I am not sure if this is by design but I have not seen this behaviour with any other apps/plugins.

Environment

  • OS: macOS 14.0.2
  • Visual Studio Code Version: 1.31.1

Extend settings with possibility to define what branch to show in a graph

Describe the feature that you'd like
It would be nice user expierience to have the possibility to make graph showing only one branch by default or via settings. I usually prefer to browse a history of a single branch instead of all branches in one place.
My proposals:

  1. Show a graph of default branch. This would be an option in settings where default is master, but I can specify custom default branch.
  2. Either show a graph of current branch or show branch list to pick from after clicking on Git Graph at the bottom panel. Just like VSCode built-in branch switch works.

Filter branches from view

Describe the feature that you'd like
Provide a way to filter branches from the view. Would be nicer if the user could provide a glob pattern.

Additional context (optional)
Gitlab currently requires that the user checkout the merge request in order for the pipelines to be properly triggered. Unfortunately this creates a messy view in the graph. It would be great if you could add the ability to filter the viewable branches.

Also, since the branches are names like origin/merge-requests/*, it would be even nicer if we could filter out according to a glob pattern.

Doing this will also make it nicer for those using the gitflow workflow where branches are named like feature/some-feature.

Git Graph Unable to load Git Graph. Either the current workspace is not a Git Repository, or the Git executable could not found.

Describe the bug
Git Graph
Unable to load Git Graph. Either the current workspace is not a Git Repository, or the Git executable could not found.

git.path is defined in the settings file

What does the bug relate to
List the area(s) this issue relates to, for example:

  • Graph Rendering

To reproduce
Steps to reproduce the behaviour:

  1. Open a Workspace
  2. Click on 'Git Graph' or F1 > Git Graph
  3. See error

Expected behaviour
I would expect to see a colored graph

Environment

  • OS: [Windows 10]
  • Visual Studio Code Version: [1.31.1]

Screenshots (optional)
Add any screenshots to help explain your problem.
error1

Additional context (optional)
git.path is defined and other git extensions are working GitHistory etc

Ability to cherry-pick / revert a commit from the context menu

Describe the feature that you'd like
In the commit context menu, the ability to cherry-pick a commit into the current branch or to revert it
There are other fonctionnalities in the screenshot, but they seems less critical to me.
Thanks for your work, your extension is very usefull

Additional context (optional)
An example from the most popular extension (but less usefull than yours :p)

image

Add ability to show changes in working folder

Describe the feature that you'd like
When clicking on Uncommitted changes, show the diff similarly to when clicking on a commit.
Add the context-menu option to diff with working folder.

Highlight HEAD commit some more

I use the "Branch: Show All" mode most of the time in which it's not always easy to identify the HEAD commit – it's just a slightly different dot in the graph. Maybe use some kind of marker or a different background or both together, I'm not sure, but it would be great if I could tell what commit I'm on immediately.

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.