Jump to content

[CR] LVMergeHG

Recommended Posts


Name: LVMergeHG

Submitter: klessm1

Submitted: 02 Feb 2011

File Updated: 03 Feb 2011

Category: *Uncertified*

LabVIEW Version: 2010

License Type: BSD (Most common)

Copyright © 2011, G System Solutions LLC

All rights reserved


Michael Klessens

Contact Information:


Issue Reporting or Feature Requests:


Report under LVMergeHG project


Due to the nature of this package it does not contain source code (it will not run as source code). For those interested in obtaining the source code for their own builds please contact me via PM and I will point you to the location of a public mercurial repository.


LVMergeHG will enable users to perform multiple file merges with Mercurial either directly or through a client like TortoiseHG.

It is configured as an external merge program for LabVIEW files that can be merged with LabVIEW's built in merge tool (LVMerge).


1. Mercurial waits for an external merge program to exit before it will continue to the next merge item. LVMerge exits and launches a separate merge utility before a merge is completed. LVMergeHG acts as a buffer between Mercurial and LVMerge and waits until the LabVIEW merge is complete before it closes.

2. Mercurial downloads merge files in directories other then the target directory. LVMergeHG moves the temporary files into the target directory and removes them when finished. Note: This feature may not be needed if separating compiled code from source in LabVIEW.

3. LVMerge does not handle a two way merge automatically. LVMergeHG asks the user to pick which version (mine or theirs) to use as a base version and uses the selected items when calling LVMerge.

4. LVMerge does not auto select the version of LabVIEW to use for merging the vi's selected. LVMergeHG tells LVMerge which version to use based on the version used to last save the vi.

If the exact version is not found LVMergeHG will find the next highest version of LabVIEW to use. ***See caveat 4 below.


1. LVMergeHG uses LVMerge so a LabVIEW license that supports LVMerge is required (LabVIEW Professional Development System and above).


1. Install Mercurial first. LVMerge installation will try to configure LVMergeHG's settings on installation, but it can be reconfigured at any time using ConfigureLVMergeHG.

2. Set VI settings to remove compiled code from source. LabVIEW won't require sub vi's to be present at the time of merging when this is set (no search windows).


1. LVMergeHG does not override some of Mercurial's automatic merge decisions.

For example:

You have a vi in one branch that hasn't changed since the base and you deleted it in another branch.

You merge the two branches and Mercurial will assume you want to delete the file without asking because that is the only change.

LVMergeHG sets the premerge configuration to false, although this doesn't seem to effect this merge decision.

Solution is still in development.

2. LVMergeHG is only supported on Windows Operating systems (XP, VISTA, Windows7).

3. LVMergeHG has only been tested with LV2010 although it will most likely work in other versions.

4. LVMergeHG tries to set the version of LabVIEW that LVMerge will use based on the version read from the vi.

However if two versions of LabVIEW are open LVMerge doesn't seem to load the compare in the correct version.

It is safest to only have the version of LabVIEW open that you want to use or not have any version of LabVIEW open.

Click here to download this file

  • Like 1
Link to comment

You do realise that, in it's current format, this can never be certified ph34r.gif

Incomplete or secure code will not be accepted: including code with locked diagrams, missing diagrams or password protection.

I would suggest at least putting a warning in the description that the package does not contain any accessible source code as this is unusual for LAVA.

Link to comment

You are correct as it is not really "code" it is an application. The code will not work unless it is compiled into an EXE (mercurial cannot call a vi directly). It cannot be run as source nor is it useful to call it as source from another application (not an API). Thought I would make it easy on users by not requiring them to download and compile the tool in order to use it. I for one dislike downloading free applications from the web that do not have a compiled application packaged in an install.For those looking to make updates to the source code and performing their own builds, they can contact me via PM and I can send them a link to a public mercurial repository that they can pull down.

I will put a warning in the description.

  • Like 1
Link to comment
  • 2 years later...

I have stopped using this tool because the latest version of tortoiseHG will now go through all the files first and then give a list of conflicts.  It also allows you to select local or theirs and can use a merge tool of your choice on individual files (in the case of VI's just use lvmerge directly).

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...

Important Information

By using this site, you agree to our Terms of Use.