GithubHelp home page GithubHelp logo

awaescher / repoz Goto Github PK

View Code? Open in Web Editor NEW
988.0 30.0 89.0 21.81 MB

๐Ÿ‘จโ€๐Ÿ’ป A zero-conf git repository hub for Windows and macOS with Windows Explorer- & CLI-enhancements

License: MIT License

C# 97.28% PowerShell 1.59% NSIS 0.68% Shell 0.45%
git repository repositories posh-git status explorer-integration

repoz's Introduction

Maintainability Rating Reliability Rating Security Rating Bugs Vulnerabilities

Build Status

RepoZ

RepoZ is a zero-conf git repository hub with Windows Explorer- & CLI-enhancements. It uses the git repositories on your machine to create an efficient navigation widget and makes sure you'll never lose track of your work along the way.

It's populating itself as you work with git. It does not get in the way and does not require any user attention to work.

RepoZ will not compete with your favourite git clients, so keep them. It's not about working within a repository: It's a new way to use all of your repositories to make your daily work easier.

๐Ÿ“ฆ Check the Releases page to download the latest version and see what's new!

๐Ÿซ Available on chocolatey as well, just use choco install repoz.

The Hub

The hub provides a quick overview of your repositories including their current branch and a short status information. Additionally, it offers some shortcuts like revealing a repository in the Windows Explorer or macOS Finder, opening a command line tool in a given repository and checking out git branches.

RepoZ is available for Windows and macOS.

Screenshot

"Well ok, that's a neat summary ..." you might say "... but how does this help?".

If you are working on different git repositories throughout the day, you might find yourself wasting time by permanently switching over from one repository to another. If you are like me, you tend to keep all those windows open to be reused later, ending up on a window list which has to be looped through all the time.

With RepoZ, you can instantly jump into a given repository with a file browser or command prompt. This is shown in the following gif.

Navigation

For Windows, use the hotkeys Ctrl+Alt+R to show RepoZ. On Mac it's Command+Alt+R*.

To open a file browser, simply press Return on the keyboard once you selected a repository. To open a command prompt instead, hold Ctrl on Windows or Command on macOS while pressing Return. These modifier keys will also work with mouse navigation.

* On Mac you need to give RepoZ access to the keyboard events in the system privacy settings. Once you have done this, you might need to restart the app.

Command Line Sidekick

RepoZ is a UI-centered tool but comes with a sidekick app called grr to empower the command line hackers. With grr, the information from RepoZ can be brought to any command line tool.

It supports ...

  • listing all repositories found in RepoZ including their branch and status information
  • filtering for repository names, branches or paths (to list or jump) by RegEx patterns, like grr [M.*]
  • jumping directly to a repository path by adding the cd command, like grr cd MyRepo
  • opening a file browser in a repository from anywhere in your command prompt with grr open MyRepo
  • list files in a repository following a pattern with grr list MyRepo *.sln (add -r for recursive search)
  • open files in a repository directly with grr open MyRepo *.sln (add -e for elevated mode, "as Admin")

See it in action in a (styled) powershell console:

Screenshot

Don't forget to have a look at grr help once you get your hands on.

Enhanced Windows Explorer Titles

As an extra goodie for Windows users, RepoZ automatically detects open File Explorer windows and adds a status appendix to their title if they are in context of a git repository.

Screenshot

Dependencies โš ๏ธŽ

Some user reported crashes at program start. Please make sure to install the .NET Framework Runtime v4.7.2 if you experience similar issues.

Credits

The grr app icon was made by Freepik from www.flaticon.com and is licensed by CC 3.0 BY

repoz's People

Contributors

awaescher avatar azure-pipelines[bot] avatar cclouseau avatar cdeguise avatar coenm avatar dependabot[bot] avatar henriksen avatar lennoncork avatar pedoc avatar philippseith avatar ridvanaltun avatar shemanaev avatar stephenatwork 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

repoz's Issues

Specify and/or exclude folders from scanning

When RepoZ scans the computer for repositories it would help to specify where to search (drive or folder) or may be to exclude folders with known to be uninteresting repositories.

Crash after fresh install

My system: Win10, up to date
Stack:

Application: RepoZ.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileLoadException
   at TinySoup.WebSoupClient+<CallWebServiceAsync>d__8.MoveNext()
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Start[[TinySoup.WebSoupClient+<CallWebServiceAsync>d__8, RepoZ, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]](<CallWebServiceAsync>d__8 ByRef)
   at TinySoup.WebSoupClient.CallWebServiceAsync(System.String, System.String)
   at TinySoup.WebSoupClient.PutAsync(System.String)
   at TinySoup.WebSoupClient+<CheckForUpdatesAsync>d__3.MoveNext()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
   at RepoZ.App.Win.App+<CheckForUpdatesAsync>d__13.MoveNext()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
   at RepoZ.App.Win.App+<<OnStartup>b__8_0>d.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__6_1(System.Object)
   at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

Faulting module name: KERNELBASE.dll, version: 10.0.16299.1004, time stamp: 0x690aa820
Exception code: 0xe0434352
Fault offset: 0x00104622
Faulting process id: 0x1148
Faulting application start time: 0x01d4f9a420854b19
Faulting application path: c:\Program Files\RepoZ\RepoZ.exe
Faulting module path: C:\windows\System32\KERNELBASE.dll
Report Id: e04ca0f4-5be1-41ee-b5c5-e8d951bf52fa
Faulting package full name: 
Faulting package-relative application ID: ```

Add help

Add a help button to the title bar explaining the status expression

Fetch all function wished

would you please think about having a function within a future release of RepoZ, which executes a fetch on all or selected local repos .

Improved display submodules

We have such projects as infrastructure (md-infrastructure\V2) and 'common code' (md-common\V2). They are connected in the form of submodules to other projects which are very many.

47636-clip-155kb

Does not look good. It would be nice to hide this all in a collapsing list with submodules from each repository

Minimize to tray

RepoZ should work without a main window, minimized to the tray area in Windows or the menu bar on Mac.

High CPU usage

I found out that RepoZ has a high CPU usage even if it is not doing anything.
Interestingly, that behavior stops immediately after the window is shown once.

Crash in ProcessExecutingGitCommander

Application: RepoZ.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ObjectDisposedException
at System.Runtime.InteropServices.SafeHandle.DangerousAddRef(Boolean ByRef)
at System.StubHelpers.StubHelpers.SafeHandleAddRef(System.Runtime.InteropServices.SafeHandle, Boolean ByRef)
at Microsoft.Win32.Win32Native.SetEvent(Microsoft.Win32.SafeHandles.SafeWaitHandle)
at System.Threading.EventWaitHandle.Set()
at RepoZ.Api.Common.Git.ProcessExecution.ProcessExecutingGitCommander+<>c__DisplayClass11_1.b__0(System.Object, System.Diagnostics.DataReceivedEventArgs)
at System.Diagnostics.Process.OutputReadNotifyUser(System.String)
at System.Diagnostics.AsyncStreamReader.FlushMessageQueue()
at System.Diagnostics.AsyncStreamReader.ReadBuffer(System.IAsyncResult)
at System.IO.Stream+ReadWriteTask.InvokeAsyncCallback(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.IO.Stream+ReadWriteTask.System.Threading.Tasks.ITaskCompletionAction.Invoke(System.Threading.Tasks.Task)
at System.Threading.Tasks.Task.FinishContinuations()
at System.Threading.Tasks.Task.FinishStageThree()
at System.Threading.Tasks.Task.FinishStageTwo()
at System.Threading.Tasks.Task.Finish(Boolean)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.Task.ExecuteEntry(Boolean)
at System.Threading.Tasks.Task.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

UI Rework

The UI is currently very "functional". Provide a native UI for each platform which integrates well to the system (tray-app on Windows, menubar-app on Mac OSX) and looks appealing.

Visualize inital scan

The initial scan for repositories might take a lot of time to complete. Show an indicator in the UI that the scan is running. Currently, RepoZ starts with an empty grid which does not indicate any progress to the user.

Browse remote

Just thinking ... would it be good to jump to the repositories' remotes directly from RepoZ/grr/grrui?
Like "Browse remote" on RepoZ and the browser opens up navigating to https://github.com/awaescher/RepoZ.

Could be a command in grr, too: grr br RepoZ:

๐Ÿค”

Automatically fetch every X minutes and/or fetch all button from UI

I've found that RepoZ works great in combination with TortoiseGit, but the one thing I'd like to see is a way to fetch from all repos, either automatically every {configurable} minutes or via a button in the UI. It would be functionally equivalent of right clicking every repo and selecting "fetch" from the menu.

Would this be doable?

Command line tool: Git Repositories of RepoZ

It would be great to have a command line extension to view the branch- and status-overview of RepoZ on a command line level as well.
To achieve this, RepoZ should be running (with or without UI) to keep track of the repositories. A command line tool should ask RepoZ for the information to show in the console.

Like:

C:\anywhere\repozcli.exe "R.*"
    RepoZ       master โ‰ก
    repkg       develop +7 ~2 -0 

Memory Leaks

When running a few days, RepoZ shows that it leaks memory by holding a huge amount of the following objects:

  • Microsoft.CSharp.RuntimeBinder.Semantics.SYMTBL+Key
  • Microsoft.CSharp.RuntimeBinder.Semantics.LocalVariableSymbol
  • Microsoft.CSharp.RuntimeBinder.Semantics.CONSTVAL
  • Microsoft.CSharp.RuntimeBinder.Semantics.EXPRCONSTANT
  • Microsoft.CSharp.RuntimeBinder.Semantics.EXPRCLASS
  • Microsoft.CSharp.RuntimeBinder.Semantics.EXPRTYPEOF
  • Microsoft.CSharp.RuntimeBinder.Semantics.EXPRLIST
  • Microsoft.CSharp.RuntimeBinder.Semantics.MethWithInst
  • Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults
  • Microsoft.CSharp.RuntimeBinder.Semantics.EXPRMEMGRP
  • Microsoft.CSharp.RuntimeBinder.Semantics.EXPRCALL
  • Microsoft.CSharp.RuntimeBinder.Semantics.EXPRWRAP
  • Microsoft.CSharp.RuntimeBinder.Semantics.AggregateDeclaration
  • Microsoft.CSharp.RuntimeBinder.Semantics.Scope

image

This seems to be very close to a question on StackOverflow:
https://stackoverflow.com/questions/33080252/memory-overflow-having-an-increasing-number-of-microsoft-csharp-runtimebinder-s/34123315

Show stashes

Show if there are changes in stashes in the given repositories. Developers might use that information to quickly see whether there are changes they have to care about or not.

netcore version of grr with /lib subfolder

By converting grr and grrui to netcore apps, there are plenty of common libraries in the application root folder. I don't want all of them in a folder which is also added to the Windows PATH. Who knows how Windows will react with other tools having the same dependencies.

Put as much dlls to a subfolder like "/lib" and helper executables to "/tools" to clean the root directory.

File explorer titles are not reset after closing RepoZ

After closing RepoZ, the titles of the File Explorer windows are not reset. They still show the status text from the last update until the File Explorer refreshes it again (by changing to another directory for example)

Doubleclicking deleted repositories leads to a crash

When a repository gets deleted, chances are high that RepoZ will take some time to get notice of the deletion (because the FileSystemWatcher does not recognize "soft" deletes to the Recylce Bin). Until then, it is possible to navigate to a deleted path by doubleclicking it which leads to errors on Process.Start()

Crashes on start (fresh install 5.0)

os: win7x64

from windows event log:

Faulting application name: RepoZ.exe, version: 5.0.0.0, time stamp: <redacted>
Faulting module name: KERNELBASE.dll, version: 6.1.<redacted>, time stamp: <redacted>
Exception code: 0xe0434352
Fault offset: 0x0000c54f
Faulting process id: 0xb0c
Faulting application start time:<redacted>
Faulting application path: C:\Program Files\RepoZ\RepoZ.exe
Faulting module path: C:\Windows\syswow64\KERNELBASE.dll
Report Id: <redacted>

is there a specific dotnet lib or c lib i have to install to make it work?

edit:
looks like my dotnet version is wrong/too old?

Application: RepoZ.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.BadImageFormatException
   at RepoZ.App.Win.App.OnStartup(System.Windows.StartupEventArgs)
   at System.Windows.Application.<.ctor>b__1_0(System.Object)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(System.Object)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
   at System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)
   at System.Windows.Application.RunDispatcher(System.Object)
   at System.Windows.Application.RunInternal(System.Windows.Window)
   at System.Windows.Application.Run(System.Windows.Window)
   at RepoZ.App.Win.App.Main()

Display detached state and tags

RepoZ keeps showing branch names when they are in detached state.

posh-git and Visual Studio show detached states like this (any sha):

  • posh-git [(80cdbf7f...)]
  • VS Detached at 80cdbf7f

Tags are not recognized in VS (2017 15.3.3) but posh-git shows them in brackets like [(2.2.7)]

Crash when scanning computer

Hi, the app crashes after a while when I click on scan computer, I could not find any logs to include here but found these in event viewer:

Faulting application name: RepoZ.exe, version: 5.3.0.0, time stamp: 0x5e9df994
Faulting module name: ntdll.dll, version: 10.0.18362.778, time stamp: 0x3dcfaabb
Exception code: 0xc0000374
Fault offset: 0x000dfa1d
Faulting process id: 0x3624
Faulting application start time: 0x01d6278ddd791d82
Faulting application path: C:\Program Files\RepoZ\RepoZ.exe
Faulting module path: C:\WINDOWS\SYSTEM32\ntdll.dll
Report Id: 7b841bfc-315c-4ba3-803f-3e9f4690b697
Faulting package full name:
Faulting package-relative application ID:

================AND===============

Fault bucket 1784766718693828737, type 1
Event Name: APPCRASH
Response: Not available
Cab Id: 0

Problem signature:
P1: RepoZ.exe
P2: 5.3.0.0
P3: 5e9df994
P4: StackHash_8ddd
P5: 10.0.18362.778
P6: 3dcfaabb
P7: c0000374
P8: PCH_A6_FROM_ntdll+0x000723CC
P9:
P10:

Attached files:
\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER4D6F.tmp.dmp
\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER506E.tmp.WERInternalMetadata.xml
\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER509D.tmp.xml
\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER50AB.tmp.csv
\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER50DB.tmp.txt

These files may be available here:
\?\C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_RepoZ.exe_9d54104b3b64ae7277e8f41ea862f6f58d823ae0_8a994293_ff832f67-36af-4dd8-a263-c279894cc56e

Analysis symbol:
Rechecking for solution: 0
Report Id: 7b841bfc-315c-4ba3-803f-3e9f4690b697
Report Status: 268435456
Hashed bucket: 8f58bb7a65700b8488c4c3dfe2af6881
Cab Guid: 0

Does not fetch automatically - Errors in Event log

I found two errors in Windows Event Viewer:

Faulting application name: RepoZ.exe, version: 5.2.0.0, time stamp: 0x5e35ee72
Faulting module name: KERNELBASE.dll, version: 10.0.18362.239, time stamp: 0xe665f337
Exception code: 0xe0434352
Fault offset: 0x00113442
Faulting process id: 0x4834
Faulting application start time: 0x01d5ed9a31aa8522
Faulting application path: C:\Program Files\RepoZ\RepoZ.exe
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report Id: 75f7f6ea-2d29-44ac-9944-c9596a001d65
Faulting package full name:
Faulting package-relative application ID:

Application: RepoZ.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.PathTooLongException
at System.IO.Path.LegacyNormalizePath(System.String, Boolean, Int32, Boolean)
at System.IO.Path.NormalizePath(System.String, Boolean, Int32, Boolean)
at System.IO.Path.GetPathRoot(System.String)
at System.IO.RenamedEventArgs.get_OldFullPath()
at RepoZ.Api.Common.Git.DefaultRepositoryDetector._watcher_Renamed(System.Object, System.IO.RenamedEventArgs)
at System.IO.FileSystemWatcher.OnRenamed(System.IO.RenamedEventArgs)
at System.IO.FileSystemWatcher.NotifyRenameEventArgs(System.IO.WatcherChangeTypes, System.String, System.String)
at System.IO.FileSystemWatcher.CompletionStatusChanged(UInt32, UInt32, System.Threading.NativeOverlapped*)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)

Notes:
Maximum length of the path of my local repos is: K:\XXXXXX70_Projects_Other\CBS_TafficManager
Remotes are on Microsoft DevOps: https://devops.xxxxxxxxx.it/x70_collection/RnD_Products/_git/DataCollector

Show the repository location, not the working directory in the UI

In v0.1, the working directory is shown in the UI. Since the repositories name is part of the working directory, it's better to show the location (the parent folder of the repository) instead.

Property Value
Name Test
Location C:\Data\Repos\
WorkingDir C:\Data\Repos\Test\

"This app might harm your device"

Just wanted to let you know that Microsoft Defender SmartScreen doesn't like the setup.exe.

I get a message in Microsoft edge beta browser:

Microsoft Defender SmartScreen reported that this app is not commonly downloaded or is not signed by its publisher.

Name: RepoZ.5.1.Setup.exe
Publisher: Unknown

Git credential manager keeps poping up

I'm using your lovely tool a long time.
But since I started using it the GIT Credential Manager for windows keeps poping up asking for credentials. When I'm not enter the credentials or closing the window a new popup will raise after a certain amount of time. And again and again.
processes
I don't know if this is an issue on git's side or with repoz. I don't know if git returns any status code back so you can suppress refreshing the git status for a while.

repoz is checking 48 repositories, auto refresh is set to discrete.

Opening *.sln files with grr does not work anymore

C:\> grr open anyrepo *.sln
 anyrepo   master โ‰ก
Opening C:/Develop/anyrepo/anysolution.sln ...
An error occured:
System.ComponentModel.Win32Exception (193): The specified executable is not a valid application for this OS platform.
   at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at grr.Messages.OpenFileMessage.ExecuteFound(String[] files)

Provide "outdated" Repository information

Please show a little icon/symbol in the repository overview that the remote branch "newer" than the local branch.
You can implement it by an periodical "fetch" and use these information.
The interval of the fetch should be configurable.

This feature should be disabled by default.

No context menu

There's no context menu for the notification area icon.
At least following menu items would be nice.

Open
Settings (see #27)
-
Exit

Please use full text search for filtering repositories list

Filtering the list of repositories apparently only searches for folder names.

However, there may be too many similar names. Let's say, I have subdirectories which represent the actual repositories or projects, and they contain folders with branches, like "develop". From searching "develop" I cannot tell which repository is the one I need.

If Repoz would search in branch names and folder names as well, the list could be reduced a lot more.

grr/grrui: Unhandled exception. System.IO.FileLoadException

I updated from RepoZ 5.1 to 5.2. Now, grr and grrui run into the following error:

Unhandled exception. System.IO.FileLoadException: Could not load file or assembly 'RepoZ.Ipc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=null'. The located assembly's manifest definition does not match the assembly reference. (0x80131040)
File name: 'RepoZ.Ipc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=null'
   at grr.Program.Main(String[] args)

Refresh File Explorer title without polling

Currently, the File Explorer integration is done with polling. Each 0.5s the titles are updated. Consider to update the title as soon as they are changed.

This might be a performance issue. Check how often the update gets broadcastet and consider to introduce a caching logic (precalculated text per window handle) if necessary.

Missing emojis (Windows 10 1803)

Older Windows versions can't display the "Clear" emoji:

Screenshot 2019-04-04 at 13 10 05

See also `grr help` on Windows 10 1803 in PowerShell:

Screenshot 2019-04-04 at 13 12 42

Interestingly, this works in CMD on the same machine:

Screenshot 2019-04-04 at 13 12 21

Add configuration option

Hi,

This tool is said to be zero-config. But I'm finding that to be a bit to aggressive for my own taste. Maybe a configuration could be given to show where in my folder-tree RepoZ should look for repositories? Because I have lots of folders with minor GIT-libraries that was important at some point and still are valid for archiving purposes. But nothing more. And while I see the nice side of RepoZ, especially with the option of keeping repositories up to date, I wouldn't want the tool to have to scan my whole system and all my repositories.

Thoughts?

And thanks for the tool non the less!

Regards
Gustav

grr cd does not with Windows Terminal (anymore)

grr cd anyrepodoes not navigate to matching repositories anymore in Windows Terminal (since the last update on Windows Terminal).

Additional:

  • grr cd should try to navigate but also print the path so that the user could go manually (or copy it to the clipboard like on macOS)
  • grr rp anyrepo could return the path only (for other processes to work with)
  • grr cp anyrepo (instead cd) should copy the path (as cd does on macOS currently)

Consider adding to Scoop

This is a great tool. It would be even greater if it could be added to a Scoop bucket for quick and easy installation. It would also avoid needing to do the following:

To use grr throughout your system like you use git ..., you have to add its path to the PATH variable. Currently, this has to be done by hand.

Need to have bulk ignore

Let's consider we have many repos and we only want to monitor some of those?
There should some command/option for bulk ignore repos.

eg.

grr ignore *regex*

Option for autostart

We need an option (settings page) where a user can define how to start the application.

Following options are possible

  • manual
  • Automatic
    • With UI
    • No UI

Immediately react on changes

Currently, RepoZ is reacting immediately on the following git actions:

  • merge (branches & after fetch)
  • pull
  • checkout branches
  • commit

But the git status is not updated after one of the following actions:

  • fetch (view incoming commits)
  • change file
  • checkout (undo/revert) file
  • stage/unstage files
  • push

So the developer has to wait until the next scheduled update corrects the status again.

Cache found repositories on the file system

For faster loading time (to reduce the time all repositories are found by scanning the drives), use a cache mechanism to save the found repositories which can then be read on startup.

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.