Go to Post Just be yourself, be honest, and most importantly, be present. The best role models are the ones you can relate to. - Jessica Boucher [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, 23:30
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?

Quote:
Originally Posted by Eldarion
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.
I make branches for when something changes radically, and I want head to stay the same for a while.
__________________
My Blog!
  #2   Spotlight this post!  
Unread 27-02-2006, 23:36
phrontist's Avatar
phrontist phrontist is offline
Proto-Engineer
AKA: Bjorn Westergard
FRC #1418 (Vae Victus)
Team Role: College Student
 
Join Date: Feb 2004
Rookie Year: 2004
Location: Falls Church, VA
Posts: 828
phrontist has a reputation beyond reputephrontist has a reputation beyond reputephrontist has a reputation beyond reputephrontist has a reputation beyond reputephrontist has a reputation beyond reputephrontist has a reputation beyond reputephrontist has a reputation beyond reputephrontist has a reputation beyond reputephrontist has a reputation beyond reputephrontist has a reputation beyond reputephrontist has a reputation beyond repute
Send a message via AIM to phrontist
Re: How do you manage code changes?

I use subversion with Tortise . Elite Frontier will provide SVN hosting to FIRST teams for free (they already host 116 and 1418).
__________________

University of Kentucky - Radio Free Lexington

"I would rather have a really big success or a really spectacular crash and failure then live out the warm eventual death of mediocrity" - Dean Kamen
  #3   Spotlight this post!  
Unread 28-02-2006, 00:16
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
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.
I used cvs (including scripts written on top of cvs) for many, many years. We did not use branches very often. More than 95% of our stuff was done on the mainline. Branching is best used when you need to do isolated development with version control while the mainline goes through several revisions.

If you use TortoiseCVS check the User's Guide, it's simple. If you use a flavor of regular cvs look for "cvs update -j branchname". This means "join the branch to the mainline". Here is some documentation on Branching and Merging.
__________________
Keith Watson - Professional Software Engineer
No relation to "Kevin" Watson, who created the camera tracking code.
  #4   Spotlight this post!  
Unread 28-02-2006, 12:36
Joe Ross's Avatar Unsung FIRST Hero
Joe Ross Joe Ross is offline
Registered User
FRC #0330 (Beachbots)
Team Role: Engineer
 
Join Date: Jun 2001
Rookie Year: 1997
Location: Los Angeles, CA
Posts: 8,567
Joe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond repute
Re: How do you manage code changes?

Quote:
Originally Posted by Keith Watson
If you use TortoiseCVS check the User's Guide, it's simple. If you use a flavor of regular cvs look for "cvs update -j branchname". This means "join the branch to the mainline". Here is some documentation on Branching and Merging.
Be sure to read the section Merging from a branch several times. I missed that part the first time I merged a branch and it caused me grief later on.

We ended up with only one branch, when I completely rewrote our PID framework. I worked off the PID branch while everyone else worked from head.
  #5   Spotlight this post!  
Unread 28-02-2006, 13:00
Joe Ross's Avatar Unsung FIRST Hero
Joe Ross Joe Ross is offline
Registered User
FRC #0330 (Beachbots)
Team Role: Engineer
 
Join Date: Jun 2001
Rookie Year: 1997
Location: Los Angeles, CA
Posts: 8,567
Joe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond repute
Re: How do you manage code changes?

We used a dedicated laptop running Debian Linux (stable) as the server. I used cvsd to chroot the cvs pserver process. Each team member had a unique login and a trivial password*. I used viewcvs (now renamed to viewvc) as a web interface to let anyone without cvs knowledge browse the repository. We stored all kinds of stuff in the repository, not just our code. For example, we stored all the rules and updates and other documentation, our team roster, even photos of the robot.

We do not have internet access at our build, but do have an internal wireless lan. When we were at our build location, the cvs laptop is there. When we aren't building, it's at my house accessible over our dsl connection. The laptop ran a dns server such that when it was at our build location, you could use the same address as when you were accessing it over the internet.

The commit philosophy we used was such that you should commit after testing when a test platform was availible, but if a test platform wasn't availible commit once you were happy and the code compiled.

For our programming directory, we stored all the .c, .h, .lkr, .lib, .mcp, all the text readmes, and the .hex file. We wanted to have a complete history of the hex file so we could pull up exactly the program we used for each match, without worrying about library changes or other things like that.

Right now we have a tag for the state it was after ship, and for after each fix-it window. We'll also have a tag for the code as it was in the robot for each match so that the drive team can easily request an old version. Depending on whether significant changes get implemented between matches, we may end up branching.

*We'll probably be switching to a more secure form of authentication next year, I just wanted to get something that worked easily out of the box

Last edited by Joe Ross : 28-02-2006 at 13:10.
  #6   Spotlight this post!  
Unread 28-02-2006, 17:44
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 cvs (including scripts written on top of cvs) for many, many years. We did not use branches very often. More than 95% of our stuff was done on the mainline. Branching is best used when you need to do isolated development with version control while the mainline goes through several revisions.

If you use TortoiseCVS check the User's Guide, it's simple. If you use a flavor of regular cvs look for "cvs update -j branchname". This means "join the branch to the mainline". Here is some documentation on Branching and Merging.
Thaks for the links. For some reason I was finding it difficult to locate CVS documentation.
__________________
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, 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.
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 03:20.

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