From bfa58c59c4367fd43cbef959a68d90a51f820567 Mon Sep 17 00:00:00 2001 From: Utkarsh Shigihalli Date: Mon, 19 Feb 2024 19:38:26 +0000 Subject: [PATCH] add setting to disable auto select profile --- README.md | 28 +++++++++++++----- .../auto-select-profile-setting.png | Bin 0 -> 10208 bytes package.json | 5 ++++ src/util/gitManager.ts | 4 ++- 4 files changed, 28 insertions(+), 9 deletions(-) create mode 100644 images/marketplace/auto-select-profile-setting.png diff --git a/README.md b/README.md index 036ea0a..e42ca18 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,10 @@ Ever wanted to use different username and email addresses for your commits at wo > Latest Changes > -> - ✅ Add support for `signingkey`. -> - ✅ Add supports deleting profiles - Type 'git config profiles' in command palette and select 'Delete a profile'. -> - ✅ Add Migrate old profiles to new format. -> - 🐞 Fix Crash with old profiles. +> - ✅ If the repository's git config matches a defined profile, extension now selects it automatically. Don't like this behaviour and prefer the old way? You can disable it in settings. +> ![auto select](images/marketplace/auto-select-profile-setting.png) +> - ✅ Store `signingkey` in the profile. +> - ✅ Delete Profile - Type 'git config profiles' in command palette and select 'Delete a profile'. ![demo](images/marketplace/demo.gif) @@ -38,6 +38,17 @@ Click `Pick a profile` and then select a profile you need. ### Setting the profile selected to the repo --- + +#### Auto selection of profile + +When the extension loads up, it looks up the local git config and tries to match it with the profiles defined. If it finds a match, it selects the profile automatically (new behaviour). This behavior can be disabled in settings. + +![auto select](images/marketplace/auto-select-profile-setting.png) + +#### Manual selection of profile + +If auto selection of profile is disabled, the status bar will show a warning if the repository's username and email do not match any of the profiles, and you can select a profile manually (old behaviour). + Once you select a profile, the status bar text changes to selected profile name [1 in image below]. > The icon might display a "warning" sign if the current repo is not using the username and email selected. @@ -46,13 +57,14 @@ If you want to apply the username and email defined in the selected profile to t ![profile not in sync](images/marketplace/repo-not-in-sync.png) -Once the repository's username and email are in sync, you might see a check icon confirming that repository config is in sync with the profile selected. +Once the repository's username and email are in sync, you will see warning color go away confirming that repository config is in sync with the profile selected. ![repo in sync](images/marketplace/repo-in-sync.png) -### Issues and feature requests +### Deleting a profile +Open the Command Palette and type `git config user profiles` or `gcup` and select `Delete a profile`. You will be presented with a list of profiles to delete. -If you find any bug or have any suggestion/feature request, please submit the [issue](https://github.com/onlyutkarsh/git-config-user-profiles/issues) in the GitHub repo. It is helpful to troubleshoot if you paste results of `Output` window when submitting issues. +### Issues and feature requests -![output window](images/marketplace/outputwindow.png) +If you find any bug or have any suggestion/feature request, please submit the [issue](https://github.com/onlyutkarsh/git-config-user-profiles/issues) in the GitHub repo. diff --git a/images/marketplace/auto-select-profile-setting.png b/images/marketplace/auto-select-profile-setting.png new file mode 100644 index 0000000000000000000000000000000000000000..0f3d35b82ce10597ee1e84ffc172c0bf41af3168 GIT binary patch literal 10208 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 x.userName === currentGitConfig.userName && x.email === currentGitConfig.email && x.signingKey === currentGitConfig.signingKey ); - if (matchedProfileToLocalConfig) { + const selectMatchedProfileAutomatically = await vscode.workspace.getConfiguration("gitConfigUser").get("selectMatchedProfileAutomatically"); + Logger.instance.logInfo(`Select matched profile automatically: ${selectMatchedProfileAutomatically}`); + if (matchedProfileToLocalConfig && selectMatchedProfileAutomatically === true) { if (selectedVscProfile && selectedVscProfile.id !== matchedProfileToLocalConfig.id) { // if matching profile exists, but the selected profile is different, we should select matched profile automatically Logger.instance.logInfo(`Current git config matches '${matchedProfileToLocalConfig.label}'. Selecting it automatically.`);