I have fixed a potential issue, added some minor improvements, added the Merge feature for Subversion and here is now Version Insight Plus Beta 7. This setup is for XE and XE2.
This is the list of the changes:
- [Git, Hg] SetCurrentDir is not used anymore to avoid potential compiler and IDE issues
(Kudos go to Andy for his tweet “Knock, Knock, Delphi, there is only 1 CurrentDirectory per process. You can’t change it in multiple threads and expect the compiler to work.”) - Improvement: States: States of the child files are now taken into account
(e.g. .dfm for .pas) - Added: Setup “remembers” now git.exe and hg.exe
- [Svn] Added: Merge (range of revisions) for Subversion
- [Git, Hg] Added: Commit on file level
For this Beta I had also planned to add support for merged revisions to the Log View (Svn) and also to update the file states on external changes, but since a few things for this Beta were ready since some time I have decided to release what is ready.
File states take child files into account
Version Insight does now take the states of the child files into account and that means when you change only the DFM file the PAS file will be marked as modified and that is much better especially when a module with childs is collapsed in the Project Manager. The following screenshot shows the difference between Beta 6 and Beta 7.

Subversion Merge
The Merge feature is supposed to work very much the same like the Merge feature in TortoiseSVN except the fact that so far only the merge type “Merge a range of revisions” is supported. This is what I need most of the time, wanted to add since a lot of time and I have now used it a lot when working on Beta 7. The UI of the Merge wizard looks very much the same as the TortoiseSVN UI and please make sure that you never ever blame the TortoiseSVN developers for anything that fails in Version Insight.
We recently migrated to Git and I was excited to use Version Insight but discovered that it does not recognize version controlled files that are not part of the project. So it does not show the version history correctly. It took me a few files to recognize that as I was looking for some change of a coworker and could not find anything.
I don’t see the problem, but I am not sure if I do understand your problem correctly and so I’ve created a little test case.
Steps:
- download my test repo
- extract anything from the folder userrepo
- start the IDE
- open TestProject.dpr
- open ProjectUnit.pas for example with CTRL+ENTER
- open NonProjectUnit.pas from ProjectUnit.pas with CTRL+ENTER
- switch to the history tab
-> now I see three revisions (1st and 3rd by coworker and the 2nd by user) and if I do understand you correctly you do only see the revision of user
Even if I do restart the IDE, create a new console app and just open NonProjectUnit.pas I do see the same history.
In case I did understand your problem correctly and you don’t see the issue with my test case then it could be a problem with the parsing of Git’s log output.
The command line for the call for the History (TGitItem.LoadHistory in GitClient.pas) from the dir of NonProjectUnit.pas is
and the output is
Maybe there is something in yours that can’t be parsed correctly.
I will test on monday but I think it might work. The situation in with our source is different as the project is in a completely different folder to where some sources are that are shared among several projects (they are either found by the search path defined in the project or are part of a package that is used by these projects). In your example the unit that is not part of the project is just next to it.
I suspect VersionInsight causing issues to close bds.exe again. I can reproduce that on WindowsXP and Windows7 x64 with Delphi XE and XE2. Other plugins installed (GExperts, IDEFixPack, DDevExtensions, CodeSite Express, SmartInspect, DocumentInsight)
After almost two days with disabled VersionInsight in XE and XE2 I can confirm that the shutdown problems are gone.
I’ll check if I do see any shutdown problems with anything installed from your list installed except SmartInspect.
I can try removing some of them tomorrow and activating VersionInsight again to see if it’s some problem related to other plugins if that helps you.
Yes checking it without SmartInspect would help. TIA
XE experts:
- DDevExtensions 2.5
- GExperts 1.35
- IDE Fix Pack 4.5
- VersionInsight Beta 7
XE2 experts:
- GExperts 1.35
- VersionInsight Beta 7
Both bds.exe are hanging when closing Delphi.
I’ve tested it about 20 times with XE with all the mentioned experts installed, but had no luck.
I’ve opened different versioned projects (SVN, Git, Mercurial), showed the Form Designer and the History View and tried with and without the Autosave options.
Hi Uwe,
I also noticed that hanging of BDS on closing. Configuration is similar as above (XE + GExperts + Version Insight + IDE FixPack 4.4 +ModelMaker Code Explorer against SVN repository)
It doesn’t seem to happen immediately but only after working some time (independent of using Version Insight or not). Here I work on a larger project and after some time closing the IDE will hang BDS process.
best regards,
Ulrich
I’ve found steps by accident by working with an unversioned project and simplified the steps to this:
- start the IDE
- create a new app
- compile it two times
- close the IDE
-> IDE hangs
In the Before Compile event the state threads get suspended and since there are no changes on versioned files they don’t get restarted. On any further compile these threads get again suspended and so the suspend count of the threads is greater than one. When freeing a thread with suspend count greater than one then it hangs. I just need to suspend the threads only when they aren’t yet suspended.
Glad you found it – can’t wait to get Beta8
Beta 8 may take some time. I will propably have a Beta 7.1 with the shutdown fix and an option for an alternative Commit layout.
I’m totally ok with that
Hi,
I just installed this Beta but there is nothng integrated in my Delphi XE2. I still get “The oath …. semms to be a oart of a Subversion 1.7 or greater repository. Please upgrade your subversion client to use this working copy”
How can I check if the installation was succesfull?
Thomas
Version Insight Plus is SVN 1.7 ready, but does not ship with SVN 1.7 DLLs. The following blog posts explain how to update the Subversion DLLs used by Version Insight.
http://www.bitcommander.de/blog/index.php/2011/10/17/verins-plus-6/
http://www.bitcommander.de/blog/index.php/2011/06/01/verins-svn-dlls/
Thanks for your work, this looks really nice !