Jump to content


Photo
- - - - -

SCC software


  • Please log in to reply
54 replies to this topic

#1 François Normandin

François Normandin

    Son of Scotland

  • Premium Member
  • 1,081 posts
  • Location:Montréal, QC
  • Version:LabVIEW 2012
  • Since:1999

Posted 13 August 2008 - 02:23 PM

I'm contemplating the idea of using SCC for my (rather small) development projects and would like to know which SCC software people are using out there. There's a list of supported SCC programs on NI website but I have no clue which ones are better suited for LabVIEW projects.
Corrolary question: Are there any good open-source SCCs?

François [frɑ̃swa], CLA


#2 Tom Bress

Tom Bress

    Very Active

  • Members
  • PipPipPip
  • 68 posts
  • Version:LabVIEW 2009
  • Since:2000

Posted 13 August 2008 - 02:55 PM

I use Subversion and TortoiseSVN, both of which are open source. Subversion does the actual source code control and TortoiseSVN lets you access the Subversion SCC functions on your desktop through the mouse right-click menus. I've found SCC to be extremely useful even as a solo developer.

The list on the NI website says that you need a low-cost third-party plug in to use Subversion with LabVIEW, but this statement is incomplete and somewhat misleading. What it means is that if you want to access the SCC functionality of Subversion from within the LabVIEW development environment then you need a plug-in. But if you read Jim Kring's blog posts on the subject, as well as the comments of others in the LAVA forums, I think you'll see that the beauty of using TortoiseSVN is that you DON'T do your SCC from inside LabVIEW. TortoiseSVN makes it easy to do your SCC from your desktop without opening an SVN client program. Bottom line: you can use Subversion and TortoiseSVN for free, effective SCC without any other plug-ins or programs.

One last point: be aware that there are two different SCC philosophies out there. One is a rigid "Check out, edit, check in" model that prevents two developers from ever working on the same file at the same time. The other is an "Edit and merge" philosophy where two developers can work on the same file at the same time, with the software managing a merge of the two files if possible. The "Edit and Merge" philosophy seems to be more popular among practicing developers. Subversion supports both models, but the default is the edit and merge behavior. LabVIEW itself provides Merge functionality that can be used by Subversion. Some people try Subversion expecting the other kind of behavior and think that it is broken when it allows two people to work on the same file simultaneously.

QUOTE (normandinf @ Aug 12 2008, 09:02 AM)

I'm contemplating the idea of using SCC for my (rather small) development projects and would like to know which SCC software people are using out there. There's a list of supported SCC programs on NI website but I have no clue which ones are better suited for LabVIEW projects.
Corrolary question: Are there any good open-source SCCs?



#3 gmart

gmart

    Very Active

  • NI
  • 151 posts
  • Version:LabVIEW 8.6
  • Since:2000

Posted 13 August 2008 - 03:45 PM

QUOTE (Tom Bress @ Aug 12 2008, 07:34 AM)

The list on the NI website says that you need a low-cost third-party plug in to use Subversion with LabVIEW, but this statement is incomplete and somewhat misleading. What it means is that if you want to access the SCC functionality of Subversion from within the LabVIEW development environment then you need a plug-in. But if you read Jim Kring's blog posts on the subject, as well as the comments of others in the LAVA forums, I think you'll see that the beauty of using TortoiseSVN is that you DON'T do your SCC from inside LabVIEW. TortoiseSVN makes it easy to do your SCC from your desktop without opening an SVN client program. Bottom line: you can use Subversion and TortoiseSVN for free, effective SCC without any other plug-ins or programs.


The text in the knowledge base states This integration enables LabVIEW users to access the source control providers from within the LabVIEW development environment. That statement does not imply that you can't use external tools to perform source control (as is done with Tortoise). Also, using the integration in LabVIEW gives you functionality such as prompting to check out on edit that you wouldn't get by using an external tool.

The selection of an SCC provider depends on your needs balanced with cost. SVN is a good package and is very popular in this forum. Internally, NI uses Perforce. Perforce has a license model that is essentially free for a 2-user version.

#4 jgcode

jgcode

    LabVIEW Renegade

  • OpenG
  • PipPipPipPipPipPip
  • 2,397 posts
  • Location:Australia
  • Version:LabVIEW 2009
  • Since:2005

Posted 13 August 2008 - 03:55 PM

QUOTE (gmart @ Aug 12 2008, 10:24 PM)

The selection of an SCC provider depends on your needs balanced with cost. SVN is a good package and is very popular in this forum. Internally, NI uses Perforce. Perforce has a license model that is essentially free for a 2-user version.


I am moving to Perforce for personal LabVIEW use due to the 2-user freebie.

Currently work uses Microsoft VSS, but we are looking closely at Perforce and apparently making a switch.
Extra licences are ~ AU$1K mark I have been told.
As a side note during testing we were able to migrate our VSS database easily - as there is some Perl script written by Perforce that allows you to transfer all info from a VSS DB into Perforce.

For multi developer work - LV integration is essential for smooth work IMO.

#5 crelf

crelf

    I'm a LAVA, not a fighter.

  • V I Engineering, Inc.
  • 5,748 posts
  • Version:LabVIEW 2012
  • Since:1993

Posted 13 August 2008 - 04:43 PM

QUOTE (Tom Bress @ Aug 12 2008, 09:34 AM)

I use Subversion and TortoiseSVN, both of which are open source. Subversion does the actual source code control and TortoiseSVN lets you access the Subversion SCC functions on your desktop through the mouse right-click menus. I've found SCC to be extremely useful even as a solo developer.

We use Subversion + TortoiseSVN across our whole company (not just for software SCC) and are very happy with it.

post-181-1170858537.png


#6 François Normandin

François Normandin

    Son of Scotland

  • Premium Member
  • 1,081 posts
  • Location:Montréal, QC
  • Version:LabVIEW 2012
  • Since:1999

Posted 13 August 2008 - 04:51 PM

QUOTE (gsmart @ Aug 12 2008, 10:24 AM)

Internally, NI uses Perforce. Perforce has a license model that is essentially free for a 2-user version.


QUOTE (jgcode @ Aug 12 2008, 10:34 AM)

I am moving to Perforce for personal LabVIEW use due to the 2-user freebie.
...
For multi developer work - LV integration is essential for smooth work IMO.


Well, if NI uses Perforce and it's free for 1 or 2 users, than I might as well start fresh with it. Should our team grows to more than 1 developer :P, it doesn't seem to be prohibitively costly to buy licenses...

thanks for the tips.

François [frɑ̃swa], CLA


#7 gmart

gmart

    Very Active

  • NI
  • 151 posts
  • Version:LabVIEW 8.6
  • Since:2000

Posted 13 August 2008 - 04:53 PM

QUOTE (crelf @ Aug 12 2008, 09:22 AM)

We use Subversion + TortoiseSVN across our whole company (not just for software SCC) and are very happy with it.


What would be nice is if some enterprising individual were to write an SVN plugin for LabVIEW. Then all would be right with the world :D

#8 LAVA 1.0 Content

LAVA 1.0 Content

    <customize this text>

  • Members
  • PipPipPipPipPipPip
  • 2,827 posts
  • Version:LabVIEW 8.6
  • Since:2009

Posted 13 August 2008 - 04:55 PM

QUOTE (Tom Bress @ Aug 12 2008, 03:34 PM)

The list on the NI website says that you need a low-cost third-party plug in to use Subversion with LabVIEW, but this statement is incomplete and somewhat misleading. What it means is that if you want to access the SCC functionality of Subversion from within the LabVIEW development environment then you need a plug-in.
...
.. two different SCC philosophies out there. One is a rigid "Check out, edit, check in" model that prevents two developers from ever working on the same file at the same time. The other is an "Edit and merge" philosophy where two developers can work on the same file at the same time, with the software managing a merge of the two files if possible. ... Some people try Subversion expecting the other kind of behavior and think that it is broken when it allows two people to work on the same file simultaneously.

The issue about using SVN through the LabVIEW SCC interface is that SVN basiccally is the Merge routine. The MS SCC interface used by LabVIEW and PushOK is 'Check out, edit, check in' philosopy.
It works, quite good (for me) but I wouldn't use this bridge for professional work.

QUOTE (jgcode @ Aug 12 2008, 04:34 PM)

For multi developer work - LV integration is essential for smooth work IMO.

Yes, using the LV integration gives you power to build nice tools.
However the advanced functions (branching/labelling) needs to be done in the main SCC program.

Ton

#9 Scott Carlson

Scott Carlson

    Active

  • Members
  • Pip
  • 18 posts

Posted 13 August 2008 - 05:00 PM

QUOTE (normandinf @ Aug 12 2008, 09:02 AM)

I'm contemplating the idea of using SCC for my (rather small) development projects and would like to know which SCC software people are using out there. There's a list of supported SCC programs on NI website but I have no clue which ones are better suited for LabVIEW projects.
Corrolary question: Are there any good open-source SCCs?


Subversion and TortoiseSVN . If you take this route, we are around for further questions.

-src

#10 François Normandin

François Normandin

    Son of Scotland

  • Premium Member
  • 1,081 posts
  • Location:Montréal, QC
  • Version:LabVIEW 2012
  • Since:1999

Posted 13 August 2008 - 05:15 PM

QUOTE (Ton @ Aug 12 2008, 11:34 AM)

Yes, using the LV integration gives you power to build nice tools.


That's what got me thinking it was time to implement SCC for me... How else can I try this Project Scanner if I don't use SCC?





QUOTE (Scott Carlson @ Aug 12 2008, 11:39 AM)

Subversion and TortoiseSVN . If you take this route, we are around for further questions.

-src


Subversion and TortoiseSVN seems to be a very popular choice. I'll have to try it too.
I'm a big open source fan.

François [frɑ̃swa], CLA


#11 crelf

crelf

    I'm a LAVA, not a fighter.

  • V I Engineering, Inc.
  • 5,748 posts
  • Version:LabVIEW 2012
  • Since:1993

Posted 13 August 2008 - 05:16 PM

I think integration into the LabVIEW project is overrated. Our engineers do far more than project-specific work, so the TortoiseSVN client that integrates SCC into Windows Explorer is an absolute God-send for us (we were using VSS previously). I suppose it would be nice to use the project integration, but that would give us more than one place to do the same thing, so it makes it fundamentally less intuative. I know that you can have non-LabVIEW files in the project, but that's not what I'm talking abou there.

As for the check-in/check-out vs merge philosophies (a really good point and important for consideration when you're first considering implimenting a SCC schema) - they are very different and equally valid, so it's really a choice depending on your situation. We reviewed both paradigms and chose the former due to several reasons. I'm not saying that that option is inherently better, but it's more appropriate for our situation.

post-181-1170858537.png


#12 François Normandin

François Normandin

    Son of Scotland

  • Premium Member
  • 1,081 posts
  • Location:Montréal, QC
  • Version:LabVIEW 2012
  • Since:1999

Posted 13 August 2008 - 05:22 PM

QUOTE (crelf @ Aug 12 2008, 11:55 AM)

As for the check-in/check-out vs merge philosophies (a really good point and important for consideration when you're first considering implimenting a SCC schema) - they are very different and equally valid, so it's really a choice depending on your situation. We reviewed both paradigms and chose the former due to several reasons. I'm not saying that that option is inherently better, but it's more appropriate for our situation.


I would think check-in/check-out is better for my needs, as I'm a lone wireworker at the moment.
Can these SCC schema be changed at a later date or is the initial choice final?

François [frɑ̃swa], CLA


#13 crelf

crelf

    I'm a LAVA, not a fighter.

  • V I Engineering, Inc.
  • 5,748 posts
  • Version:LabVIEW 2012
  • Since:1993

Posted 13 August 2008 - 05:25 PM

QUOTE (normandinf @ Aug 12 2008, 11:54 AM)

I'm a big open source fan.

Me too, but whilst I like the whole open source idea, it only works when the project output is useful, robust and appropriately supported. For Subversion and TortoiseSVN, my experience is that's absolutely the case :yes:

post-181-1170858537.png


#14 Michael Aivaliotis

Michael Aivaliotis

    MindFreak

  • JKI
  • 2,664 posts
  • Version:LabVIEW 2012
  • Since:1994

Posted 13 August 2008 - 08:11 PM

Just a side note. If you are stepping on each other's toes so much that you need to always merge then your code is not designed well enough to allow multi-user development. Sorry. Either that or you have too many people working on the code.
Thank You
Michael Aivaliotis

VI Shots

#15 crelf

crelf

    I'm a LAVA, not a fighter.

  • V I Engineering, Inc.
  • 5,748 posts
  • Version:LabVIEW 2012
  • Since:1993

Posted 13 August 2008 - 08:27 PM

QUOTE (Michael_Aivaliotis @ Aug 12 2008, 02:50 PM)

Just a side note. If you are stepping on each other's toes so much that you need to always merge then your code is not designed well enough to allow multi-user development.

True.

post-181-1170858537.png


#16 jgcode

jgcode

    LabVIEW Renegade

  • OpenG
  • PipPipPipPipPipPip
  • 2,397 posts
  • Location:Australia
  • Version:LabVIEW 2009
  • Since:2005

Posted 14 August 2008 - 01:24 AM

QUOTE (crelf @ Aug 12 2008, 11:55 PM)

I think integration into the LabVIEW project is overrated. Our engineers do far more than project-specific work, so the TortoiseSVN client that integrates SCC into Windows Explorer is an absolute God-send for us (we were using VSS previously). I suppose it would be nice to use the project integration, but that would give us more than one place to do the same thing, so it makes it fundamentally less intuative. I know that you can have non-LabVIEW files in the project, but that's not what I'm talking abou there.


From my experience - using VSS external to the project means there is alot of copies around :angry:
As I generally have to check out the whole project each time I have to work on it - rather than a specific file and required dependencies I need to code.
Also ideally there should be strict rules in place for check in check out daily, but alas that is not the case by the people in power.
I have seen the ill effect of multiple versions (I took over someones role who did not check in check out :nono: ) I found versions of version of versions around the place. It was a freaking nightmare for us and the client.
Therefore something that enforces their developers to check in/out must be a good thing from a manager's point of view?

From testing the integration I was very impressed.
I can visually see whilst working on from the Project what is checked in and checked out.
I can easily and quickly check something out that I need - working in the same environment as I program in.
And I can easily check a change back in - no manual drag and drop to a third party app.
I like it! :thumbup:
I find this method more intuative for me.

#17 jdunham

jdunham

    Extremely Active

  • Members
  • PipPipPipPipPip
  • 628 posts
  • Location:San Francisco, CA
  • Version:LabVIEW 2011
  • Since:1994

Posted 14 August 2008 - 10:10 PM

Our group has several developers and over 3000 VIs, and we are using SVN with no SCC integration and using a copy/merge model rather than check-in/check-out. On the whole it works well, but merging can really be a pain. We have some custom tools for ignoring recompiles in a merge, but it can be a headache. I also wrote my own tool with similarities toTon's project scanner (No fancy gui or anything). I'd rather scrap that and use a LAVA open source tool.

I would be interested in opinions about whether a switch to check-in/check-out would be useful (Sorry to hijack the thread somewhat). The benefit would be the SCC integration (PushOK) and the project scanner and any LVProj support, and the risk would be that working on the merge model for so long (4 years) would make the changeover too difficult for the team.

How does the SCC plug-in handle times when you change a typedef and several hundred VIs automatically recompile?

#18 Tom Bress

Tom Bress

    Very Active

  • Members
  • PipPipPip
  • 68 posts
  • Version:LabVIEW 2009
  • Since:2000

Posted 14 August 2008 - 10:19 PM

QUOTE (normandinf @ Aug 12 2008, 12:01 PM)

I would think check-in/check-out is better for my needs, as I'm a lone wireworker at the moment.
Can these SCC schema be changed at a later date or is the initial choice final?


If you are a lone wolf then I would recommend the edit-merge. Since you are the only one working on a given file, you'll never have to merge and you'll avoid having to check files in and out. Why check them in and out if you are the only one working on them?

#19 eaolson

eaolson

    Extremely Active

  • Members
  • PipPipPipPip
  • 255 posts

Posted 14 August 2008 - 10:48 PM

QUOTE (Tom Bress @ Aug 13 2008, 03:58 PM)

If you are a lone wolf then I would recommend the edit-merge. Since you are the only one working on a given file, you'll never have to merge and you'll avoid having to check files in and out. Why check them in and out if you are the only one working on them?

I, too, am a lone wolf. I've been using SVN and TortoiseSVN for a couple of years now and wonder how I ever lived without it. I'm just not quite clear on the difference between edit-merge and check-in/check-out. Could someone explain a bit?

#20 John Lokanis

John Lokanis

    The 500 club

  • Premium Member
  • 587 posts
  • Location:Seattle, WA
  • Version:LabVIEW 2012
  • Since:1993

Posted 14 August 2008 - 10:50 PM

I have been using Perforce for several years now with LabVIEW. I think it is the best SCC out there. I have tried VSS, CVS, PVCS and SVN. The thing I like best about Perforce is the ability to have a UI to manage my files. I do not like the 'itegration' of SVN into the windows explorer. Perforce does this too, but I almost never use it.
I do like the integration of an SCC into the LV Project. Mainly because when I create a new VI, it prompts me to add it to Perforce. I use the Perforce GUI to do my checkins, however.
There are some things about Perforce that I do not like, but overall IMHO it is the best in breed.

As for using SCC with LabVIEW, I do find that I keep all the fiels in the project checked out to me when doing major work. This way, I can freely edit and recomiple VIs as needed. When I am ready to checkin the changes, Perforce will do a DIFF and give me a list of all changed files so I can add my comments to each and submit them.
In our group, we usually only have one DEV working on a Project or sub-project at a time, so this method works well. YMMV.

-John
----------------------------------
John Lokanis
CLA
Twitter: @jlokanis