Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add calls to register/unregister repos #3534

Closed
wants to merge 16 commits into from

Conversation

DefaultRyan
Copy link
Member

Summary of the pull request

I've strengthened the FileExplorer feature detection and put in some temporary workarounds in the helpers package so that we can now register/unregister repos directly from within DevHome.

Detailed description of the pull request / Additional comments

This is temporarily using a private version of the helpers package while I work on publishing an official version. Will update the version once available.

Also removed the upper-casing of the file paths. Might still want to consider some sort of "case correction" - Windows file system is case-insensitive, but Git is a bit less forgiving, so we should strive to use the exact case Windows and Git are actually using.

Validation steps performed

Built private build and tested the register/unregister calls.

PR checklist

  • Closes #xxx
  • Tests added/passed
  • Documentation updated

ssparach and others added 16 commits July 31, 2024 13:29
**Summary of the pull request**
This PR contains implementation changes for the File Explorer Source Control Integration experimental feature. This feature will allow File Explorer to obtain property information from source control technologies for display (image attached below):

**Detailed description of the pull request / Additional comments**
This PR contains the following changes:
- Reference official Dev Home SDK version (that defines APIs for File Explorer Source Control Integration)
- Declare FileExplorerSourceControlIntegration as an experimental feature
- The FileExplorerSourceControlIntegration project which creates a COM Server used to communicate information with File Explorer
- The FileExplorerGitIntegration project which allows Dev Home to come with an inbox extension that understands git
- Basic Unit Tests

**Validation steps performed**
SDK and MSIX local builds
Tested Git Integration File Explorer behavior inside VM

Related work items: #48431506
…ntrol extensions inside Dev Home (#2984)

* changes to write/read data (extension information + root path) from json

* address PR comments

* revert line endings

* address PR comments
* fix

* move nullable property in csproj

* fix format
* declare appextension for git, find all source control extensions, UI changes, SDK changes, get extension information to use for mapping

* changes to map extension to registered root paths, add validation to git implementation

* changes after testing

* use serilog in validation code

* reorder using

* use published SDK version

* address PR feedback

* address PR feedback

* address PR feedback

* Minor cleanup of RepositoryTracking.cs

---------

Co-authored-by: Ryan Shepherd <[email protected]>
* detect git and invoke functionality

* address PR comments

* address PR feedback

* address style comments
* WARP SPEED COMMIT HISTORY. Rooted out and worked around a major bottleneck inside LibGit2Sharp

* Better status

* Introduce RepositoryWrapper to lock access to Repository

* Update unit test to reflect new repo status

* Check cache before calling Repository.IsValid
…inside Dev Home (#3484)

* proposed telemetry changes for add/remove repository

* remove unrequired using statements

* address PR feedback

* address PR feedback

* adjust comment

* add count of repos tracked inside Dev Home to event
var normalizedPath = rootPath.ToUpper(CultureInfo.InvariantCulture).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
var result = SourceControlIntegration.ValidateSourceControlExtension(extensionCLSID, normalizedPath);
var normalizedPath = rootPath.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
var result = SourceControlIntegration.ValidateSourceControlExtension(extensionCLSID, normalizedPath);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With the recent UI changes merged, these calls to register/unregister will have to be placed differently. The call to register would need to go in AssignSourceControlProviderToRepository and unregister would need to go in
RemoveTrackedRepositoryFromDevHome. Thanks!

Base automatically changed from feature/fileexplorer-sourcecontrol-integration to main August 6, 2024 19:45

public static class SourceControlIntegrationHelper
{
public static string GetSafeRootPath(string rootPath)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not a fan of the name. This isn't returning the root path, but a part of the root path. The last part. maybe GetLowestDirectoryFromRootPath, or GetNameOfRepositoryDirectory?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, I do not agree that the word "safe" is appropriate because no names are being obfuscated.

@DefaultRyan DefaultRyan closed this Aug 7, 2024
@DefaultRyan
Copy link
Member Author

This is superseded by #3555

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants