03-29-2008 06:52 AM
03-29-2008 01:26 PM
My first clue: Two developers could "lock" the same VI and make changes.
- SVN indeed seemed to work OK when it was just me ... or maybe one more developer checking in, checking out, updating , etc. code into and out of the SVN repository. But the more developers that got involved, the more errors and headaches crept into the process.
- Although I had no idea what the problems others were having, I saw, on more than one occasion, IT looking over a developer's shoulder who was unsuccessful trying to check in updated code. Sometimes the entire directory had to be deleted, the previous revision reinstated then checked out again, the new code redone and checked back in.
- I would get an error trying to check in some code. I would try the Tortoise/SVN - suggested solution. That would fix that problem but another would arrise. I would fix that. I could do this a half-dozen times then end up right back to the original error.
- It got so frustrating, and I had heard it so often for so long that if I had heard that insipid Tortoise/SVN error sound ONE MORE TIME I was going to start taking hostages.
Checking out a subdirectory occasionally created errors when attempting to check it back in. My biggest problem with this was that I could have a subdirectory checked out and locked for a week at a time, make numerous changes to numerous VI's in the subdirectory, then if just ONE vi had a problem none of the others could be checked in until the error on the one VI was corrected.
I would also advise against that, although I can understand how this could be a problem if you're working on a feature which takes a while to finalize. As for your problem, that is actually a feature, and one which I think is very good. In Subversion, commits are atomic - if one file fails, the entire commit fails. Since commits are supposed to represent points in time, this behavior is correct - everything has to go together.
04-08-2008 04:53 AM
04-10-2008 05:44 PM
04-11-2008 01:34 AM
02-10-2009 03:25 PM
Hey nrp,
Do you know of any good tutorials to get set up with using tortoise svn? Any help is greatly appreciated.
Thanks,
TIm
02-10-2009 04:38 PM
I can point you to a couple documents that may prove useful.
The Large LabVIEW Application Community has a document on Source Code Control and Group Development Practices in LabVIEW for Advanced Configuration Management...
This site on Software Engineering with LabVIEW also features a number of articles on integration with source code control and software configuration management
Finally, I just had an avid LabVIEW user e-mail me with a 16 page document he put together on integrating SVN with the LabVIEW Project Explorer, which I've hastily posted here in order to respond to your question: Using SVN and PushOK with LabVIEW for SCC.*
03-29-2009 05:16 PM
Elijah K wrote:
Finally, I just had an avid LabVIEW user e-mail me with a 16 page document he put together on integrating SVN with the LabVIEW Project Explorer, which I've hastily posted here in order to respond to your question: Using SVN and PushOK with LabVIEW for SCC.*
*this wiki document on ni.com is open for editing and updating by the community. Please feel free to contribute.
This document is not available at this address, where can I find it
Thanks
Dany
05-08-2009 02:54 AM
Hi, perhaps this is usefull for someone:
We use svn and Labview since 2005 and it works together without problems.
We are about 5 developers, we have 11 projects which are about 2GB on data and about 2000 files (most of them are binaries like .vi, vit, ...).
svn handle binaries very efficient ,so our 2000 commits takes not so much space on the repository server.
I would now decide for svn also for bigger projects, but we have found some usefull rules of conduct:
1. Labview files get the needs-lock property: That means that the file are write-protected till lock and labview cannot save automatically.
2. For better tracking changes, only really changed vi's were commited. Before compiling an executable, there is a seperated commit for mass compile if needed to get everything consistent.
3. developers commit changes so fast as possible -> no weekly locked files in the repo
4. developers don't steel the lock without asking the other developer, which has the lock. (a lock means normally: still working on it)
5. Better to make to much commits than to less -> commits are cheap!
6. files, which are in project folder are only used in this project.
7. files, which are used in more than one project (like device drivers) are in a seperated "modules" folder which is integrated to the project which a small batch file -> so a developer can upgrade e.g. a Labview version without affecting other projects.
the batch look like this:
rd /S /Q ..\Module
mkdir ..\Module
svn export -r1788 --force http://servername/svn/repo/Module/Frontpanel-Tools/trunk@1788 ../Module/Frontpanel-Tools
So the modules file are not checked out but only exported and therefore no unintentional changes can happen and affect other projects.
If changes are needed you have to check out the files, modify them and commit, change the revision number in the batch file and commit the change of the batch..
8. main front-panels get the svn:keywords=Revision -> so you can place a text $Revision:: $ and svn fill in the revision number for each commit. Important is, that you have enough spaces for the revision number between the :: and the $. in the other case svn could destroy the vi!
9. For client we use TortoiseSVN.
I hope this helps,
regards, Andreas.
06-05-2009 08:12 PM