GE hangs when switching to an SVN repo with the SVN plugin installed
jrfnl opened this issue · comments
Current behaviour
- Installed GitExtensions on a new machine
- Copied my previous settings over - note: previous install has no extra plugins installed other than the ones which ship with GE by default
- Installed the SVN plugin. The Plugin Manager closed GE for the install.
- Reopened GE.
- Went to Plugins -> SVN to be (correctly) greeted with
- Switched to a repo with SVN only for the application to hang indefinitely (Not Responding).
- Hard closed the application.
After manually removing the Users\Name\AppData\Local\GitExtensions\UserPlugins\GitExtensions.SVN
folder + removing the package from the Users\Name\AppData\Local\GitExtensions\UserPlugins\packages.config
file, GE starts up again as normal to the repo I was switching to without any delay.
Expected behaviour
That the application doesn't hang.
Steps to reproduce
See above and I have been able to consistently reproduce it by installing the SVN plugin again as I forgot to take a screenshot the first time round ;-)
Did this work in previous version of GitExtensions
No idea as I never installed the extension before.
Environment
- Git Extensions 3.4.3.9999
- Build d4b0f48bbf3e39a71f5d7ff5231be5678d4aa0f1
- Git 2.30.0.windows.2
- Microsoft Windows NT 10.0.19042.0
- .NET Framework 4.8.4300.0
Thanks for your report. I have a few questions:
Switched to a repo with SVN only
-
What exactly do you mean with SVN only? Was the repo initialized with
git svn clone
? -
Is the SVN remote reachable at the moment when you switch to the repo in question? Or are you working disconnected?
-
Probably off-topic, but still: Why did you go the manual way to remove the plug-in? Did the uninstallation from within the Plugin Manager not work?
What exactly do you mean with SVN only? Was the repo initialized with git svn clone?
Sorry, that sentence was missing a comma...
Switched to a repo with SVN**,** only for the application to hang indefinitely
And no, the repo was not initialized with git svn clone
, but there is an .svn
directory.
Is the SVN remote reachable at the moment when you switch to the repo in question? Or are you working disconnected?
100% yes.
Probably off-topic, but still: Why did you go the manual way to remove the plug-in? Did the uninstallation from within the Plugin Manager not work?
The application was hanging = not responding to anything anymore. In other words: there was no way to even open the Plugin Manager.
the repo was not initialized with
git svn clone
, but there is an.svn
directory.
Sorry, but this plugin is not intended to replace a full SVN client. It's only a replacement for the basic SVN support that was integrated in Git Extensions 2.x, but dropped in Git Extensions 3.x.
Wouldn't a "real" SVN client be the better choice for your use case? I'm not very familiar with them, but many of my colleagues used TortoiseSVN.
I still don't understand how you managed to open a pure SVN repo in Git Extensions. When I try it on my machine, I just get this error
Sorry, but this plugin is not intended to replace a full SVN client. It's only a replacement for the basic SVN support that was integrated in Git Extensions 2.x, but dropped in Git Extensions 3.x.
I understand. I only installed the plugin to see what additional functionality it offered, but unfortunately, I never did get to see that now.
Wouldn't a "real" SVN client be the better choice for your use case? I'm not very familiar with them, but many of my colleagues used TortoiseSVN.
I have one of those too, but to be honest, I detest SVN after having gotten used to git, so avoid it as the plague.
I still don't understand how you managed to open a pure SVN repo in Git Extensions. When I try it on my machine, I just get this error
Ah, sorry, I clearly didn't explain it well enough. The repo is both Git as well as SVN. Commits have to go through SVN, but there is an official git mirror, including git repo which allows for reviews via pull requests, even though those will never be git merged.
So in the setup I have, the repo directory has both a .git
as well as a .svn
directory.
As my workflow is fully git oriented, whenever a SVN patch is needed, I generate it using "Format patch" in GE and whenever I need to test an SVN patch which doesn't have an open PR, I use the "Apply patch" functionality.
The repo is both Git as well as SVN. Commits have to go through SVN, but there is an official git mirror
Ahh, now I understand. Thanks for the clarification: You're in a hybrid SVN + git environment. Yeah, those are fun 😏
I had to deal with one during a few years long "transition period" from SVN towards git. SVN was the official repo, where you pulled from and pushed to. Git was a mirror, which everybody was free to use at will: merge, rebase, squash as you like, but in the end you must commit to SVN first and git second.
That was the time when GE 3 came out and dropped SVN support. This plugin was created to support my everyday work with GE. The basic flow was:
- init repo with
git svn clone
and add the git mirror repo as a second remote. At this point, since you'll have only a.git
directory and no.svn
you cannot use a SVN client anymore. git svn fetch
+git push mirror master
to pull everything from SVN and update the git mirror- working on exclusively on git mirror (feature branch, rebase, squash, merge)
git svn dcommit
+git push mirror master
when you're done
But let's get back from memory lane to the bug report: I'll keep it open because although the plugin is not intended for .svn
repos, it should nonetheless obviously not hang the main app.
let's get back from memory lane
I wish this was memory lane for me.... 😂 Unfortunately WordPress is still on SVN and will be for the foreseeable future..
I'll keep it open because although the plugin is not intended for .svn repos, it should nonetheless obviously not hang the main app.
Thanks, that was the idea ;-)