Go to Post *referring to Team Titanium's 2012 robot* If only it could play guitar hero at the same time. sigh. - rsisk [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 27-02-2006, 03:32
ericand's Avatar
ericand ericand is offline
Registered User
AKA: Eric Anderson
FRC #3765 (Terrabots)
Team Role: Mentor
 
Join Date: Jan 2005
Rookie Year: 2004
Location: St. Paul, MN
Posts: 148
ericand is a jewel in the roughericand is a jewel in the roughericand is a jewel in the rough
How do you manage code changes?

I'm curious about experiences with the use of source code repositories (CVS, RCS, DARCS,...) and if anyone has been able to incorporate them into their teams development process.

We've tried but the use of a central repository has not worked well due to the fact that our development is on machines that are not regularly networked together. We archive the best code of the day and use it to seed a development directory for the next day's work.

What we have done that has worked fairly well, is use a contextual diff tool (KDIFF3) that provides a quick way to compare and merge two source directories. Using this tool, we can quickly see what has changed from a previous day's work, or we can merge separate development directories into one.

Last edited by ericand : 27-02-2006 at 03:34.
  #2   Spotlight this post!  
Unread 27-02-2006, 07:00
gnirts gnirts is offline
Suspicious pointer conversion
AKA: Robinson Levin
FRC #1648 (The Gearbox Gangstaz)
Team Role: Programmer
 
Join Date: Jan 2006
Rookie Year: 2005
Location: ATL
Posts: 116
gnirts will become famous soon enough
Re: How do you manage code changes?

Our team uses Subversion. It is supported by MPLAB 7.30 (just look in the help files under "Version Control" or something like that). The fact the machines are not regularly networked is not an issue. You create a repository on one machine with your base code, and all other machines can connect to it and perform what is called a "check out." You can then edit the code you checked out all you want, and later you reconnect to the repo and "commit" your changes. Performing an "update" allows you to receive the changes that others have made and integrate to the code on your machine. SVN (Subversion) has great internal differencing tools, and will be familiar to those who have worked with CVS. You can find it here: http://subversion.tigris.org/

I also suggest using http://tortoisesvn.tigris.org/ (like TortoiseCVS but for Subversion) and http://winmerge.sourceforge.net/ (A powerful file-differ for Windows)

You can even convert existing CVS (which Subversion is designed to replace) repos to SVN using http://cvs2svn.tigris.org/

Good Luck,
Robinson
__________________
'... who are you, then?'
'I am part of that power which eternally
wills evil and eternally works good.'
Goethe, Faust
  #3   Spotlight this post!  
Unread 27-02-2006, 07:25
X-Istence X-Istence is offline
Melt the RC controller!
AKA: Bert JW Regeer
no team
Team Role: Alumni
 
Join Date: Jan 2006
Rookie Year: 2006
Location: Montville
Posts: 151
X-Istence will become famous soon enoughX-Istence will become famous soon enough
Send a message via AIM to X-Istence Send a message via MSN to X-Istence
Re: How do you manage code changes?

I use Subversion with TortoiseSVN. Mostly because it is really nice to be able to go back a few revisions and see what changes were made and why i made them in the first place. See the above post for more subversion information.
__________________
My Blog!
  #4   Spotlight this post!  
Unread 27-02-2006, 08:01
Timothy D. Ginn's Avatar
Timothy D. Ginn Timothy D. Ginn is offline
I check here maybe once a year.
no team
 
Join Date: Apr 2003
Rookie Year: 2002
Location: Port Perry, ON. Canada
Posts: 247
Timothy D. Ginn is a name known to allTimothy D. Ginn is a name known to allTimothy D. Ginn is a name known to allTimothy D. Ginn is a name known to allTimothy D. Ginn is a name known to allTimothy D. Ginn is a name known to all
Send a message via ICQ to Timothy D. Ginn Send a message via AIM to Timothy D. Ginn Send a message via MSN to Timothy D. Ginn Send a message via Yahoo to Timothy D. Ginn
Re: How do you manage code changes?

For openFIRST we currently use CVS but are in the process of migrating to Subversion (it was only last week that SourceForge rolled out Subversion support to all projects).

We're running this in an environment where contributors are (or have at various points been) spread across at least 3 different countries (and two continents). They both work well over dialup and/or unreliable connections (well, as well as anything can work over an unreliable connection).

For learning either the SourceForge site documents for CVS and Subversion are good. They've also got recommended software for both, too (Subversion is below the CVS one in that list).
__________________
Alumni of FRC Team 1006
Former mentor of Full Lego Alchemist (FLL 5621) - Sempar School / Computing Students' Association of Queen's University
  #5   Spotlight this post!  
Unread 27-02-2006, 16:54
comwiz7's Avatar
comwiz7 comwiz7 is offline
Registered User
AKA: Joey
FRC #1323 (Madtown Robotics 1323)
Team Role: Alumni
 
Join Date: Jan 2006
Rookie Year: 2006
Location: Madera
Posts: 66
comwiz7 will become famous soon enoughcomwiz7 will become famous soon enough
Send a message via MSN to comwiz7
Re: How do you manage code changes?

Every time I make a major revision, I copy the old code to another folder and call it like FRC2006Rev1, the number being the version or whatever. Then I save the new change as FRC2006Rev2 and so on...I'm assuming there is a better way to do this. Anybody want to clue me in?
  #6   Spotlight this post!  
Unread 27-02-2006, 16:56
Eldarion's Avatar
Eldarion Eldarion is offline
Electrical Engineer / Computer Geek
AKA: Eldarion Telcontar
no team (Teamless Orphan)
Team Role: Alumni
 
Join Date: Nov 2005
Rookie Year: 2005
Location: Númenor
Posts: 558
Eldarion has a reputation beyond reputeEldarion has a reputation beyond reputeEldarion has a reputation beyond reputeEldarion has a reputation beyond reputeEldarion has a reputation beyond reputeEldarion has a reputation beyond reputeEldarion has a reputation beyond reputeEldarion has a reputation beyond reputeEldarion has a reputation beyond reputeEldarion has a reputation beyond reputeEldarion has a reputation beyond repute
Send a message via AIM to Eldarion Send a message via Yahoo to Eldarion
Re: How do you manage code changes?

I used CVS on Linux through the whole build season. It even allowed us to merge each other's changes pretty much seamlessly.

TortiseCVS is a great Windows CVS client.
__________________
CMUCam not working? Tracks sporadically? Try this instead: http://www.falconir.com!
PM me for more information if you are interested (it's open source!).

Want the FIRST Email blasts? See here: http://www.chiefdelphi.com/forums/sh...ad.php?t=50809

"The harder the conflict, the more glorious the triumph. What we obtain too cheaply, we esteem too lightly; it is dearness only that gives everything its value."
-- Thomas Paine

If it's falling apart it's a mechanical problem. If it's spewing smoke it's a electrical problem.
If it's rampaging around destroying things it's a programming problem.

"All technology is run on 'Magic Smoke' contained within the device. As everyone knows, whenever the magic smoke is released, the device ceases to function."
-- Anonymous

I currently speak: English, some German, Verilog, x86 and 8051 Assembler, C, C++, VB, VB.NET, ASP, PHP, HTML, UNIX and SQL
  #7   Spotlight this post!  
Unread 27-02-2006, 17:40
Keith Watson Keith Watson is offline
Registered User
FRC #0957 (WATSON)
Team Role: Mentor
 
Join Date: Feb 2006
Rookie Year: 2006
Location: Wilsonville, OR
Posts: 112
Keith Watson is just really niceKeith Watson is just really niceKeith Watson is just really niceKeith Watson is just really nice
Re: How do you manage code changes?

Quote:
Originally Posted by comwiz7
Every time I make a major revision, I copy the old code to another folder and call it like FRC2006Rev1, the number being the version or whatever. Then I save the new change as FRC2006Rev2 and so on...I'm assuming there is a better way to do this. Anybody want to clue me in?
Use one of the version control systems mentioned in this thread.

Copying entire folders like you are doing works. Just be very careful if you are going to open a workspace in one of the saved folders. MPLAB stores the absolute pathnames to the source code so it is still using the source files in the original folder, not the new folder!
__________________
Keith Watson - Professional Software Engineer
No relation to "Kevin" Watson, who created the camera tracking code.
  #8   Spotlight this post!  
Unread 27-02-2006, 17:45
Keith Watson Keith Watson is offline
Registered User
FRC #0957 (WATSON)
Team Role: Mentor
 
Join Date: Feb 2006
Rookie Year: 2006
Location: Wilsonville, OR
Posts: 112
Keith Watson is just really niceKeith Watson is just really niceKeith Watson is just really niceKeith Watson is just really nice
Re: How do you manage code changes?

Quote:
Originally Posted by Eldarion
TortiseCVS is a great Windows CVS client.
I used TortoiseCVS at home.

Here is a tip: After you have checked in a major revision of your code, tag it. The tag makes it easy to keep track of the major revisions.
__________________
Keith Watson - Professional Software Engineer
No relation to "Kevin" Watson, who created the camera tracking code.
  #9   Spotlight this post!  
Unread 27-02-2006, 18:16
devicenull devicenull is offline
Robot? We need a robot?
no team
 
Join Date: Sep 2004
Rookie Year: 1234
Location: n/a
Posts: 359
devicenull is just really nicedevicenull is just really nicedevicenull is just really nicedevicenull is just really nicedevicenull is just really nice
Re: How do you manage code changes?

Quote:
Originally Posted by ericand
I'm curious about experiences with the use of source code repositories (CVS, RCS, DARCS,...) and if anyone has been able to incorporate them into their teams development process.

We've tried but the use of a central repository has not worked well due to the fact that our development is on machines that are not regularly networked together. We archive the best code of the day and use it to seed a development directory for the next day's work.

What we have done that has worked fairly well, is use a contextual diff tool (KDIFF3) that provides a quick way to compare and merge two source directories. Using this tool, we can quickly see what has changed from a previous day's work, or we can merge separate development directories into one.
Check out SVK, it's basically a decentralized SVN. I've never actually used it, but I hear its pretty good.

I've got SVN installed on my laptop (Hint: You don't need a server to use SVN with, file:/// repositories work fine). When I get home, I run a batch script that backs up the SVN tree to my desktop, then I have another script there which copies it over to my linux SVN server, so I can use stuff like ViewCV It also has the nice advantage of me having three seperate copies of the code, so I can't lose it.
  #10   Spotlight this post!  
Unread 27-02-2006, 18:21
gnirts gnirts is offline
Suspicious pointer conversion
AKA: Robinson Levin
FRC #1648 (The Gearbox Gangstaz)
Team Role: Programmer
 
Join Date: Jan 2006
Rookie Year: 2005
Location: ATL
Posts: 116
gnirts will become famous soon enough
Re: How do you manage code changes?

So it seems that others are using Subversion as well. A few questions about version control in general:

Which files in the code directory does everyone put under version control? Just .c and .h? .hex too? What about documentation?

And how often does everyone commit? Major revisions? Every compile?

Lastly, do people using CVS/SVN use the tools inside MPLAB or Tortoise?

Just Curious,
Robinson
__________________
'... who are you, then?'
'I am part of that power which eternally
wills evil and eternally works good.'
Goethe, Faust
  #11   Spotlight this post!  
Unread 27-02-2006, 18:42
devicenull devicenull is offline
Robot? We need a robot?
no team
 
Join Date: Sep 2004
Rookie Year: 1234
Location: n/a
Posts: 359
devicenull is just really nicedevicenull is just really nicedevicenull is just really nicedevicenull is just really nicedevicenull is just really nice
Re: How do you manage code changes?

Quote:
Originally Posted by gnirts
So it seems that others are using Subversion as well. A few questions about version control in general:

Which files in the code directory does everyone put under version control? Just .c and .h? .hex too? What about documentation?

And how often does everyone commit? Major revisions? Every compile?

Lastly, do people using CVS/SVN use the tools inside MPLAB or Tortoise?

Just Curious,
Robinson
*.c, *.h, hex files don't matter, they can be re-created.

Documentation? What documentation?

I commit usually after I get something working correctly.. every compile is a bit excessive, because about half my compiles are something simple, like switching a sign.

I use the tools inside MPlab.
  #12   Spotlight this post!  
Unread 27-02-2006, 18:54
Cuog's Avatar
Cuog Cuog is offline
Registered Linux User: 390661
AKA: Alex
FRC #0422
Team Role: Mentor
 
Join Date: Nov 2005
Rookie Year: 2004
Location: Richmond, Virginia
Posts: 852
Cuog has a reputation beyond reputeCuog has a reputation beyond reputeCuog has a reputation beyond reputeCuog has a reputation beyond reputeCuog has a reputation beyond reputeCuog has a reputation beyond reputeCuog has a reputation beyond reputeCuog has a reputation beyond reputeCuog has a reputation beyond reputeCuog has a reputation beyond reputeCuog has a reputation beyond repute
Send a message via AIM to Cuog
Re: How do you manage code changes?

this will depend on the size of your progtramming team but the approach i used this year was to split up the work and merge eceryone's completed work manually, for example this year the driving code was written byt my team mate Tom and i wrote the autonomous i then got the user_routines file from him and added it to my project that had modifications in user_routines_fast and got the two running nicely. basically just subdivide what needs to be done and give spots for it to be placed then copy and paste
__________________
KK4KQO
http://voltair.us
Too many projects, too little time.
  #13   Spotlight this post!  
Unread 27-02-2006, 19:29
Timothy D. Ginn's Avatar
Timothy D. Ginn Timothy D. Ginn is offline
I check here maybe once a year.
no team
 
Join Date: Apr 2003
Rookie Year: 2002
Location: Port Perry, ON. Canada
Posts: 247
Timothy D. Ginn is a name known to allTimothy D. Ginn is a name known to allTimothy D. Ginn is a name known to allTimothy D. Ginn is a name known to allTimothy D. Ginn is a name known to allTimothy D. Ginn is a name known to all
Send a message via ICQ to Timothy D. Ginn Send a message via AIM to Timothy D. Ginn Send a message via MSN to Timothy D. Ginn Send a message via Yahoo to Timothy D. Ginn
Re: How do you manage code changes?

Quote:
Originally Posted by gnirts
So it seems that others are using Subversion as well. A few questions about version control in general:

Which files in the code directory does everyone put under version control? Just .c and .h? .hex too? What about documentation?
Generally speaking the version control systems work best with textual data rather than binary files. So, things like documentation, the .h and .c files, etc. would be good to put in. You can, of course, have binary data there too (like the .hex files, images, etc.), but, the version control systems generally won't give you features like comparing the changes from one version to another with that type of data.

Quote:
Originally Posted by gnirts
And how often does everyone commit? Major revisions? Every compile?
The general rule of thumb we use is commit after any changes that are stable enough to have passed some very basic preliminary testing (e.g. no syntax errors and such). I tend to do it more or less every time I would ordinarily save a file (less any of those where it would fail the preliminary tests).

Quote:
Originally Posted by gnirts
Lastly, do people using CVS/SVN use the tools inside MPLAB or Tortoise?
Since we're not using it for robot code (and thus not MPLAB) I can't directly answer that question. What I will mention (which may not be of particular relevance to you personally, but others reading this thread later may find useful to know) is that Eclipse (which I believe I've read from some other threads in the past can be used to program the robot, but that I use with the PHPEclipse plugin for writing PHP code) has plugins for both Subversion and CVS. I haven't used those extensively; I usually use the command line interface to CVS/Subversion (then again, I often develop these things when logged remotely into other boxes and anything else could be prohibitively slow).
__________________
Alumni of FRC Team 1006
Former mentor of Full Lego Alchemist (FLL 5621) - Sempar School / Computing Students' Association of Queen's University
  #14   Spotlight this post!  
Unread 27-02-2006, 20:22
Donut Donut is offline
The Arizona Mentor
AKA: Andrew
FRC #2662 (RoboKrew)
Team Role: Engineer
 
Join Date: Mar 2005
Rookie Year: 2004
Location: Goodyear, AZ
Posts: 1,307
Donut has a reputation beyond reputeDonut has a reputation beyond reputeDonut has a reputation beyond reputeDonut has a reputation beyond reputeDonut has a reputation beyond reputeDonut has a reputation beyond reputeDonut has a reputation beyond reputeDonut has a reputation beyond reputeDonut has a reputation beyond reputeDonut has a reputation beyond reputeDonut has a reputation beyond repute
Re: How do you manage code changes?

We use a set of folders with different version names, and a good old USB drive. My job this year (other than doing a few tasks that had to be finished) was pretty much merging code and making sure everything got coded.

We should probably invest in something else though.
  #15   Spotlight this post!  
Unread 27-02-2006, 22:13
Eldarion's Avatar
Eldarion Eldarion is offline
Electrical Engineer / Computer Geek
AKA: Eldarion Telcontar
no team (Teamless Orphan)
Team Role: Alumni
 
Join Date: Nov 2005
Rookie Year: 2005
Location: Númenor
Posts: 558
Eldarion has a reputation beyond reputeEldarion has a reputation beyond reputeEldarion has a reputation beyond reputeEldarion has a reputation beyond reputeEldarion has a reputation beyond reputeEldarion has a reputation beyond reputeEldarion has a reputation beyond reputeEldarion has a reputation beyond reputeEldarion has a reputation beyond reputeEldarion has a reputation beyond reputeEldarion has a reputation beyond repute
Send a message via AIM to Eldarion Send a message via Yahoo to Eldarion
Re: How do you manage code changes?

Quote:
Originally Posted by Keith Watson
I used TortoiseCVS at home.

Here is a tip: After you have checked in a major revision of your code, tag it. The tag makes it easy to keep track of the major revisions.
Thanks for the tip. I was aware of that and have been making good use of it.

Do you have any experience branching from the main revision? I have been running into some problems, mainly I don't know how to merge the branch back into the head revision.
__________________
CMUCam not working? Tracks sporadically? Try this instead: http://www.falconir.com!
PM me for more information if you are interested (it's open source!).

Want the FIRST Email blasts? See here: http://www.chiefdelphi.com/forums/sh...ad.php?t=50809

"The harder the conflict, the more glorious the triumph. What we obtain too cheaply, we esteem too lightly; it is dearness only that gives everything its value."
-- Thomas Paine

If it's falling apart it's a mechanical problem. If it's spewing smoke it's a electrical problem.
If it's rampaging around destroying things it's a programming problem.

"All technology is run on 'Magic Smoke' contained within the device. As everyone knows, whenever the magic smoke is released, the device ceases to function."
-- Anonymous

I currently speak: English, some German, Verilog, x86 and 8051 Assembler, C, C++, VB, VB.NET, ASP, PHP, HTML, UNIX and SQL
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Out of the Box Camera Code russell Programming 9 21-10-2009 05:28
Problem with idata_user_routines.o? Adrien Programming 3 12-02-2006 01:33
Code suddenly fails to initialize miketwalker Programming 11 19-02-2005 15:23
Team THRUST - Kevin's Code and Camera Code Combine Chris_Elston Programming 3 31-01-2005 22:28
heres the code. y this not working omega Programming 16 31-03-2004 15:18


All times are GMT -5. The time now is 23:05.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi