Version Insight Plus Beta 7 (SVN Merge)

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.

This entry was posted in DelphiSVN. Bookmark the permalink.

18 Responses to Version Insight Plus Beta 7 (SVN Merge)

  1. 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.

    • Uwe Schuster says:

      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

      git.exe log --pretty=format:"H: %H%nAT: %at%nAN: %an%nAE: %ae%nS: %s%nB: %b" "NonProjectUnit.pas"

      and the output is

      H: 41d531c52642c5f8415b2e7ffe4e5e96d12ec815
      AT: 1321008011
      AN: Coworker
      AE: Coworker
      S: added a comment
      B:
      H: 8e68f35e5660470ad86ac9836374b78d22f4c797
      AT: 1321007528
      AN: user
      AE: user
      S: added user comment
      B:
      H: 2a1db30cc0c96a9e834dc042cf79fa96004f1bde
      AT: 1321007429
      AN: Coworker
      AE: Coworker
      S: Initial commit
      B:
      

      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.

  2. 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. :(

      • Uwe Schuster says:

        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.

        • 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.

          • Uwe Schuster says:

            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.

  3. Ulrich Kobsa says:

    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

    • Uwe Schuster says:

      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.

  4. Thomas says:

    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

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">