|
» Subscribe » Favorite Links » What is S60? » Freeware & Trials » S60 devices » Hints and tips » About this blog |
» Blognotes (15) » Bugs and Workarounds (4) » Build tools (5) » Carbide.c++ 1.1 (4) » Carbide.c++ 1.2 (8) » Carbide.c++ 1.3.x (8) » Carbide.c++ 2.0.x (1) » Carbide Plug-Ins (4) » CodeWarrior (2) » FAQ (6) » Future directions (24) » General (46) » Off-topic (4) » On-device debugging (13) » Performance Investigator (2) » Product features (16) » Product releases (16) » Screencast (12) » Support (30) » Tool setup (5) » UI Designer (8) » Usability (15) » Work in Progress (13) » Write-build-debug (4) |
|
» Launching from the SPN View » Tips for using the CodeScanner tool! » Carbide in the summer » Austin Eclipse DemoCamp » Where's my console output? |
|
Subscribe to RSS feed For email notification, please click here ยป |
« More reasons to upgrade to v1.3. | Main | When do we modify Eclipse projects? »
Without doubt, besides the eclipse editor, the Team features (version control) are the most often used features in my daily development grind. Given that, I am doing mostly java development these days writing Carbide plugins and test suites. For java development, version control is pretty straight forward. It's not quite so simple for Carbide development, but it can be done with just a little more effort. So at the risk of over simplifying or generalizing I'll give you a couple of ways of working with version controls systems and some things to look out for. I can't speak for all version control systems (we use CVS) but I think once you get version control going under an eclipse environment you'll wonder how you lived without it.
NOTE: The follow description will work with CVS and SVN; your mileage may vary with other version control systems. If so I'd love to hear any inaccuracies or improvements.
Basically there two types of users:
1) Those who don't want to check in any Carbide specific files (e.g. .cproject)
2) Those that want to keep Carbide project info around.
I'll give a basic work flow for each and how to get your files under version control.
1) Projects without Carbide Project Info.
The first rule for checking out a project is remembering that it will be checked out into your workspace. So you must adhere to the rule that your project sources need to be on the same drive as your SDK sources. If not, just select File > Switch Workspace > Other... and create a new workspace on the same drive as your SDK before you checkout.
Now when you check out your source-base for the first time, your version control system will just create a vanilla eclipse project like below. You can't do anything with it so just delete it (but don't delete the sources).

Now you need to import the project from the bld.inf, which lives in your workspace. That's it, your project is now a Carbide under version control (notice the server name and version numbers will appear in the file view).

2) Projects with Carbide Project Info.
Now for those that want to keep Cabride project information with version control all you need to add to your checkin is your .project and .cproject files. These files live at the project root. If you cannot see these files, check out the Navigator view, it will show you all the files that are filtered out, as below.

The same rules apply to building Symbian projects: your project sources must be on the same drive as your SDK. So for checkouts, the workspace must be on the same drive as the target SDK. The other strict rule you must follow when checking in/out .cproject files is that you need to have the same SDK 'id' attribute from devices.xml as was on the machine the project was checked in from. This is becuase in order for Carbide to know which SDK to target, it reads the configuration name and matches the source base with the SDK 'id'. If this rule isn't followed, then Carbide will be at a lost to find the correct SDK and you will see the configuration has a 'dummy_ID' in the name to let you know the configuration is invalid.
Comments
Thanks for the article Kelly. I too share similar feeling of awe when i first used version control in carbide and wondered how i used to live without it. However i have one minor problem when it comes to using it with symbian projects. Developers in our team have the sdk installed on various diffrent drives some on C: & others on D: . Sharing these projects with the build ABLD.bat file prooves difficult as every time a developer checks out a project he has to manually delete the abld.bat file and regenerate it. Not to mention that it creates conflicts during check in process. So my question will be , is it possible to tell carbide to always exclude certain files from then project check in process even if they have changed? Right now i can deselect the bat file from the commit wizard, but there has to be some quicker way to do this.
Posted by: Vaibhav | April 4, 2008 02:00 AM--
Posted by: Tim Kelly | April 4, 2008 07:26 AM>>is it possible to tell carbide to always exclude certain files from then project check in process even if they have changed?
--
Yes, and I suppose a good article on eclipse version control would be remiss without stating this : ) In the global preferences go to Team > Ignored Resources and add in the pattern you want to ignore. The trick is getting everyone to do the same.
Thanks again.. got it working!!
.. but as you said the real trick is to get all the developers have exactly the same configurations. That brings a question to my mind as to whether is it possible to share ide preferences accross all developer machine. I mean there must be some configuration file used by carbide and which can be shared to have a uniform set of ide preferences / keyboard binding etc.
Posted by: Vaibhav | April 7, 2008 03:44 AMTake a look at File > Export to see what can be exported. I see Preferences, Breakpoints, and Team Project Sets in the list for Carbide 1.3. Maybe one or more of them will help.
And I think I saw that key binding exports should arrive with Eclipse 3.4.
Posted by: L. Frank Turovich | April 7, 2008 11:49 AM