mhutchie / vscode-git-graph

View a Git Graph of your repository in Visual Studio Code, and easily perform Git actions from the graph.
https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph
Other
2.01k stars 269 forks source link

Export & Import Git Graph Repository Configuration (for sharing within teams) #414

Closed ntziolis closed 3 years ago

ntziolis commented 4 years ago

I was able to successfully configure both pull requests + issue linking via the repository settings widget. Our intent is to share these settings within the team. However I could not figure out where these settings are stored.

I checked:

mhutchie commented 4 years ago

Hi @ntziolis,

All repository configuration performed within the Git Graph View is stored internally within Visual Studio Code's Workspace State Memento API, and is therefore not currently available to be shared with other users. For numerous reasons, this is definitely the method that should be used by Git Graph.

I definitely want to better support teams using Git Graph going forward. I'll change this question into a feature request, for the ability to export all of a repositories configuration from Git Graph to a convenient *.json file (including Issue Linking and Pull Request Creation), which can be shared within a team, and imported into their own installations of Git Graph. I'll include this in an upcoming release.

ntziolis commented 4 years ago

Hi @mhutchie,

I see thank you for the info. If I understand the way Memento works correctly, information is stored per combination of vscode / "system user profile".

If so this presents another more severe issue for us:

To give you an idea how often a container gets rebuild:

The rebuild container issue also applies to Github Codespaces which basically are the same thing as using Remote: Container locally, but simply with the container being hosted online.

We are very keen to assist you to migrate these settings to a place where they can be committed in the project, since this is the last remaining piece to allow us to heavily reduce tool switching between vscode / SmartGit / Azure Devops.

Do you have any guidance / preference how this could be solved and I'm happy to work with my team to create a PR.

mhutchie commented 4 years ago

Hi @ntziolis,

Thank you for the additional details, it’s really useful to know the scenario you’re working with!

I’ll have a think about the best path forward for implementing this capability, there a lot of considerations that need to be made. Some solutions I’ve already considered initially seem feasible and simple, however on deeper exploration each present their own challenges.

I’ll reply back on this thread once I’ve thoroughly gone through all of the possible solutions, and am confident with the direction Git Graph should take.

ntziolis commented 4 years ago

Totally understand that there are other items on the list as well. So knowing this might take a while since you have:

mhutchie commented 4 years ago

Hi @ntziolis,

To load data into Memento’s, you’d have to clone the repo, create some mechanism in the extension (via calling ExtensionState.saveRepos), package it into an alpha release, and install it.

I’m quite happy to prioritise this request, and implement & make it available in a beta release for your team to use within the next week. Even though this is the first feature request for this capability, it is long overdue in Git Graph so I intend to get it out really quickly.

ntziolis commented 4 years ago

@mhutchie ok wow, did not expect you to be working on this so soon. We will def. hold our efforts then. Also again, if we can assist in the development please let us know. Since we will be using git-graph as the backbone of our operations moving forward we would be committed to assist you with continuous development to fix bugs + add features (and not just the ones that affect us directly). Just lmk.

mhutchie commented 3 years ago

This will be available in v1.28.0 (which I intend to release on 29/11/2020).

From the change log:

  • 414 Your Git Graph Repository Configuration can now be exported 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. In order to export your configuration, click the "Export Repository Configuration" button at the bottom of the Repository Settings Widget (on the Git Graph View).

If you'd like to use it before the next release, you can download v1.28.0-beta.3, and install it following the instructions provided here.