bsvingen Posted June 28, 2010 Report Share Posted June 28, 2010 Looks to me that something is missing in the wiki? or the lvdiff tool ? I have no idea what readme.txt file you are talking about. I have placed the lvdiff in the c:\lvdiff,and have full read-write permissions. Quote Link to comment
bsvingen Posted June 28, 2010 Report Share Posted June 28, 2010 (edited) Success, lvdiff at least The vital information was in that last pic, and at the VERY end of the readme.txt file in the lvdiff-folder. Thanks a lot by the way. Should be no big problem making this work in GIT either (edit:not true, there will still be problems with path names and stuff), but Mercurial looks and works much nicer in Windows anyway. Edited June 28, 2010 by bsvingen Quote Link to comment
klessm1 Posted January 18, 2011 Report Share Posted January 18, 2011 I've been using Mercurial with TortoiseHG and Kiln (Kiln is free for two developers) since this last summer and I love it! It sometimes surprises me how easy some activities are compared to how I used to have to do them with VSS / Perforce / Surround SCM / DesignSync (don't ask about that one... ). It is really easy to manage when I am the only developer, but also isn't too bad in a multi-developer environment either. The ability to go back to a tagged release, make a small change, perform a build and release (and tag), and then merge that change to the mainline is so easy in mercurial and next to impossible in the other environments I have used. It has literally saved me days of work because of how easy it is to manage releases, bug fixes, major changes with the branching and merging features. I have a major project where another developer is making sweeping changes that are not all backward compatible yet, but we are working from the same repository and I can still perform stable maintence releases. Meanwhile I have another branch where I am gutting the entire structure of the program. The merging is a little lacking, but I am working on a simple tool to allow multi-file merges with TortoiseHG (LVMerge ends execution before the merge is actually complete and you miss the next file merge). A diff tool also needs a little work to support to diff changesets when multiple related files are different. Unfortunately LabVIEW's compile at edit time and sub vi dependency means that if multiple related files are different then the single file diff won't be entirely accurate. The only way I see is to use the Mercurial commands directly to "update" to each of the changesets being compared in their entirety and then compare them in different directly structures. Merging doesn't seem to have this issue. I was thinking a hierarchy ordering of the vi's to merge might be necessary in order to get it correct, but LVMerge (at least in 2010) is very good. Now I just need to trick out the interface to "wait" until the merging is finished, cancelled, or errors out. Right now I just have a "next" button. Is anyone else working on an implementation of the "LVMerge" for mercurial that supports multi-file merging? As far as an API for the project I don't really see a need except for maybe a hotkey shortcut to commit. One of the main reasons I think it is easier is that you don't have to "check in" and "check out" every file individually. I just make my updates for a certain feature or bug, then commit all files from explorer. When updating to different changesets you do have to revert all your files manually (I usually have everything closed when performing updates). On a final note...no annoying "status" files in my working directory! 1 Quote Link to comment
Jim Kring Posted January 18, 2011 Author Report Share Posted January 18, 2011 I've been using Mercurial with TortoiseHG and Kiln (Kiln is free for two developers) since this last summer and I love it! It sometimes surprises me how easy some activities are compared to how I used to have to do them with VSS / Perforce / Surround SCM / DesignSync (don't ask about that one... ). ...snip... Thanks for the great summary of your results and experiences with Mercurial/TortoiseHG/Kiln! -Jim Quote Link to comment
Ton Plomp Posted January 18, 2011 Report Share Posted January 18, 2011 Merging doesn't seem to have this issue. I was thinking a hierarchy ordering of the vi's to merge might be necessary in order to get it correct, but LVMerge (at least in 2010) is very good. Now I just need to trick out the interface to "wait" until the merging is finished, cancelled, or errors out. Right now I just have a "next" button. Is anyone else working on an implementation of the "LVMerge" for mercurial that supports multi-file merging? As far as an API for the project I don't really see a need except for maybe a hotkey shortcut to commit. One of the main reasons I think it is easier is that you don't have to "check in" and "check out" every file individually. I just make my updates for a certain feature or bug, then commit all files from explorer. When updating to different changesets you do have to revert all your files manually (I usually have everything closed when performing updates). I am working on an interface in the LabVIEW Project window (NI calls them Providers), as a set-top of my Mercurial API. I am working on the details, but the NI system is quite tricky! Is the code for the full merge available somewhere so I could have a look? Ton Quote Link to comment
klessm1 Posted January 18, 2011 Report Share Posted January 18, 2011 I hope to have a alpha version ready by the end of today and posted. For right now I am just trying to get something that I can use to merge 10 files from two heads so I can get going on a project (also a good test case for this tool)...may not be the final implementation but maybe others may be interested in helping out. It is not a very large project so I don't know if I want to post it in the public domain of my Kiln site or not... I'll let you know. Quote Link to comment
klessm1 Posted January 20, 2011 Report Share Posted January 20, 2011 Sorry I got sidetracked with a "real" project. I think I am about ready to submit the merge tool, but I need some input on the best way to package / license it. I am thinking about just releasing it as an executable and possibly providing access to the source in a public kiln site. So would an EXE fall under BSD or GNU? So I guess my questions are: EXE? Installer? What kind of license for an EXE? Would a mecurial repository of a source distribution be ok for those that want to check out the code? I also made a public fogbugz project for LVMergeHG so users can submit issues. Quote Link to comment
Ton Plomp Posted January 20, 2011 Report Share Posted January 20, 2011 One thing to remember is that Mercurial itself is licensed as GPLv2+, this license includes the Mercurial logo. If you are just calling the Mercurial command line interface you don't need to use the GPLv2+ license. Ton Quote Link to comment
Jim Kring Posted January 20, 2011 Author Report Share Posted January 20, 2011 One thing to remember is that Mercurial itself is licensed as GPLv2+, this license includes the Mercurial logo. If you are just calling the Mercurial command line interface you don't need to use the GPLv2+ license. Ton <opening a can of worms>So, does that mean if you use the Mercuial logo in a VI icon that the VI must be licensed under GPLv2+?</opening a can of worms> Quote Link to comment
klessm1 Posted January 20, 2011 Report Share Posted January 20, 2011 One thing to remember is that Mercurial itself is licensed as GPLv2+, this license includes the Mercurial logo. If you are just calling the Mercurial command line interface you don't need to use the GPLv2+ license. Ton It would make sense to use their logo as part of mine for the application, but didn't want to open that can of worms... I am actually not even interfacing with Mercurial, only with LVMerge.exe and the Mercurial.ini file. So would the BSD apply to an exe distribution? It is not really meant to run as source code, but as an interface application between TortoiseHG and LVMerge. I am thinking GPLv2 might be the correct way to go anyway??? Depending on how useful and how many features I can put in it I may want to charge for a full-featured version. Also to be able to put it on the VI Package Network do I need to use VIPM to package it? I was going to just zip up an an install for it so it can auto configure the mercurial ini file to point to the program. Let me know what you guys think. Thanks. Working on the installer and icons now... Quote Link to comment
Ton Plomp Posted January 20, 2011 Report Share Posted January 20, 2011 <opening a can of worms>So, does that mean if you use the Mercuial logo in a VI icon that the VI must be licensed under GPLv2+?</opening a can of worms> Yes. I posted a spinning mercurial logo (gif) to the Mercurial mailing list and got two very prompt responses, one of them was from Matt Mackal (main developer Mercurial) explicitly (but polite) telling that to use the logo you have to license it under a GPLv2+ license or have a written license from him that allows you to create a deriviative. The logo is posted here. I explicitly asked him if I was calling the Mercurial command line only, then there is no need for a GPLv2 license and he acknowledged that. I am actually not even interfacing with Mercurial, only with LVMerge.exe and the Mercurial.ini file. I am thinking GPLv2 might be the correct way to go anyway??? Let me know what you guys think. Thanks. I've read up a little bit on the GPLv2 and it's not that hard of a license, and if you create an executable (thus stripping the icon of the VI) you should be able to use a more general license. The nice thing of the GPLv2 is that it's in the spirit of OpenSource software, it enforces the next-generation of your source-code to be open source as well. Ton Quote Link to comment
klessm1 Posted January 22, 2011 Report Share Posted January 22, 2011 I've read up a little bit on the GPLv2 and it's not that hard of a license, and if you create an executable (thus stripping the icon of the VI) you should be able to use a more general license. The nice thing of the GPLv2 is that it's in the spirit of OpenSource software, it enforces the next-generation of your source-code to be open source as well. Ton Thanks for the info on GPLv2. I went and read up on it as well. I am checking with legal as I created some of this tool while at my full time job. Need to find out about copyrights and if they will even allow me to post it. I'm pretty sure they will (they are not in the software business and this tool will not help their competitors). In the meantime I am going to test it with a couple versions of LabVIEW to make sure it is compatible. I've only been testing it with 2010. I've tested it on an XP Pro OS and a 64 bit VISTA (yeah!!! ). I don't have LabVIEW loaded on my Win7 machine but I am pretty sure it will install and work on Win7 if it worked on my VISTA box. I think it is ready for distribution, I just have to get the go ahead. Thanks for your patience. Quote Link to comment
klessm1 Posted February 2, 2011 Report Share Posted February 2, 2011 Got the go ahead from my employer to post LVMergeHG. It is now posted in the code repository on lava http://lavag.org/files/file/164-lvmergehg/. Let me know what you think. Quote Link to comment
Bean Posted February 23, 2012 Report Share Posted February 23, 2012 Has anyone used Mercurial for source code control in LabVIEW? It looks like it might be the next step in the evolution: CVS ==> SVN ==> something that can merge/branch worth a damn. A year has passed... Is Mercurial the next step in the progression: RCS » CVS » SVN » Hg ? Plus, we use FogBugz as our bug tracker at JKI and Mercurial is part of the Kiln product companion to FogBugz -- so, it probably wouldn't be a difficult jump. Did you make the jump? Should we be expecing a JKI TortoiseHg Tool for LabVIEW™? When I was reading some introductions, I found that they warn to use it for large sets of binary data. Anyone yet experienced to say how it will work on real LV projects? The other issue that still keeps me away from using it, is the merging process. As far as I understand Hq yet, merging is the very elemental interaction you would do. I'm stuck with a FDS, so no merging for me (except I write my own LV merge...). Will this be a show-stopper? Should I stay with SVN? Is "working with large sets of binary data" an issue for LabVIEW users? Do these tools address the Diff and Merge (et al) concerns? Mercurial LabVIEW Integration LVMergeHG Mercurial API Thanks! Jason Quote Link to comment
Ton Plomp Posted February 24, 2012 Report Share Posted February 24, 2012 Mercurial LabVIEW Integration LVMergeHG Mercurial API In reverse order my opinion: Mercurial API (developed by me) is an API to the mercurial command line interface, and does not handle merging or diffing, if you have set up diff properly, then the diff-vi will work. LVMergeHG Looks promising, however I have not used it Mercurial LabVIEW integration, works good for diffs and is very valuable if you want to see what changed in a file for a given changeset! I'm working on a Project integration for Mercurial, however the LabVIEW provider for SCC is not the most stable. Ton Quote Link to comment
AusTEX Posted April 9, 2012 Report Share Posted April 9, 2012 Has anyone been able to get merging to work with Labview 2011? I'm trying to make the switch from SVN to Hg. I'm using TortoiseHg and I really like the concept of how Hg works. I have LVDiff working but I'm struggling with merging. I've installed LVMergeHG and I have it specified as the tool to use for 3-way merging in the Hg global settings. When I open the TortoiseHg Workbench window I can see that I have a branch that I want to merge back into the main trunk. If I select the 'Diff to local..." option, LVDiff runs and I can see the to VI's I want to merge together. If I select the 'Merge with local" option I get a popup window, Prepare to merge, that shows info on the two VI's I want to merge. When I continue by clicking the 'Next' button I get the following: % hg --repository C:\Documents and Settings\D\Desktop\ZZ merge --verbose --tool=internal:fail 6 resolving manifests 0 files updated, 0 files merged, 0 files removed, 1 files unresolved use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon [command returned code 1 Mon Apr 09 16:33:47 2012] I can't see anything that looks like LVMerge is trying to run. I'm sure I'm probably doing some wrong or don't have something setup correctly. Any ideas? Quote Link to comment
lvman Posted June 20, 2012 Report Share Posted June 20, 2012 (edited) I'm tempted to make the switch from SVN to Hg. It seems it's easier to find a suitable online repository if your using Git or Hg (bitbucket). Ultimately I'm trying to make sure I always have access to my repository, even if I'm on another machine. I also like the idea of a separate local repo for each PC. A couple of concerns: 1- Disc space. Yes I realize hard drives are cheap, but I'm sold on solid state drives and they are not. 2- Work flow. I'm sure this is just a matter of retraining myself on how I use Hg (Joels guide is a good start). I currently using TortoiseSVN, and I would probably use the equivalent for Hg, so that may not be a big change. Is merging a huge advantage for Hg? I stay away from merging in SVN, admittedly because I've heard it doesn't work that well, but I didn't try it personally. I think the main push for me to switch is to host my repository online. Since I'm going through this effort, it may be a good time to re-evaluate the source control provider. My current SVN repo is sitting at 8Gb (multiple projects). The plan would be to setup up multiple Hg repositories (one for each project) on bitbucket. Any guides on how to convert the SVN repo to into several Hg repos? Thoughts? Edited June 20, 2012 by lvman Quote Link to comment
Ton Plomp Posted June 21, 2012 Report Share Posted June 21, 2012 You can look here for a tool to convert set of subversion folders to Mercurial repositories. Ton Quote Link to comment
lvman Posted June 21, 2012 Report Share Posted June 21, 2012 You can look here for a tool to convert set of subversion folders to Mercurial repositories. Ton Thanks. I was hoping for a wizard that would magically do it for me:-) lol So overall, is it worth the effort to make the switch? Opinions? Quote Link to comment
MikaelH Posted June 22, 2012 Report Share Posted June 22, 2012 I am thinking about building a Mercurial provider for LabVIEW (hint, hint) so I can do the local stuff directly in the LabVIEW project. Ton I've been thinking about this too, maybe we should get togeather. I reckon it would only take me about a week to do this, but I just need some spare time. Quote Link to comment
Rolf Kalbermatter Posted June 22, 2012 Report Share Posted June 22, 2012 I've been thinking about this too, maybe we should get togeather. I reccon it would only take me about a week to do this, but I just need some spare time. If you follow that thread and go to the last post, you can see that Ton has actually already released both the provider as well as the API in the Code Repository. So you just need to download it and give it a testdrive. Quote Link to comment
MikaelH Posted June 22, 2012 Report Share Posted June 22, 2012 If you follow that thread and go to the last post, you can see that Ton has actually already released both the provider as well as the API in the Code Repository. So you just need to download it and give it a testdrive. I saw that, but I need it to support normal SVN as well, but that's an easy fix. Quote Link to comment
Rolf Kalbermatter Posted June 22, 2012 Report Share Posted June 22, 2012 I saw that, but I need it to support normal SVN as well, but that's an easy fix. Well easy! But the hardest part of getting the SCC Provider Interface figured out is indeed done. Interfacing SVN through the command line interface isn't too complicated but I was at some point looking to integrate it completely as DLL and that is quite a different story. Since it also is a potential maintenance nightmare I abandoned that approach completely. SVN does normally guarantee backwards compatibility for the SVN command line interface, but no such guarantee exists for the binary API. Quote Link to comment
Ton Plomp Posted June 29, 2012 Report Share Posted June 29, 2012 If you have Mercurial as a client to SVN you can have the positive from Mercurial (local repository database), with the support for your legace/obsolete/accepted SVN repository. I have never used this but Mercurial should be able to act as an SVN client. Ton Quote Link to comment
MikaelH Posted June 29, 2012 Report Share Posted June 29, 2012 If you have Mercurial as a client to SVN you can have the positive from Mercurial (local repository database), with the support for your legace/obsolete/accepted SVN repository. I have never used this but Mercurial should be able to act as an SVN client. Ton Sounds very intersting. I'm getting a new fresh version control server at work to play with and I'm very tempting to try Mercurial on that one. Anybody having luck with moving over the repositoires and version history from SVN to Mercurial? How good is Mercurial of handling LV files? //Mike Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.