Git is now my favorite version control system. Git and GitHub are very powerful, it has (nearly) all features I can think about, and best of all: As a distributed version control system, I can work with it, even if disconnected from the network :-).
There are many standalone and IDE integration available for Git. Beside of using TortoiseGit, I’m using the eGit Eclipse integration. This post is about how to install eGit in Eclipse, particularly in CodeWarrior for MCU10.4.
Installation
I’m using screenshots with the Eclipse based CodeWarrior for MCU10.4.
❗ The normal eGit update site is download.eclipse.org/egit/. Because the Eclipse version used by CodeWarrior for MCU10.4 is an older one, the current eGit version won’t work. You will likely receive an error “Missing requirement: Git Team Provider UI 3.0.1.201307141637-r (org.eclipse.egit.ui 3.0.1.201307141637-r) requires ‘bundle org.eclipse.team.core [3.6.100,4.0.0)’ but it could not be found”. See this forum thread. The solution is to use ‘download.eclipse.org/egit/updates-2.2/’ as update site.
- Use the menu Help > Install New Software and press ‘Add…’ button
- Specify download.eclipse.org/egit/updates as URL. This is the URL which has the latest and greatest eGit version. However, as CodeWarrior for MCU10.4 is using an older version, use download.eclipse.org/egit/updates-2.2
- I’m not interested in the sources, so I just select the plugin:
Pressing Next, and it should not report any dependency problems. Go through the rest of the dialogs, and after a restart you have eGit integrated in Eclipse.
Summary
Having an Eclipse Git integration as eGit is really nice, and not difficult to install. The only hick-up is if using an older Eclipse version as CodeWarrior for MCU10.4. Then using the dedicated update site download.eclipse.org/egit/updates-2.2 solves the problem.
Happy eGiting 🙂
If you haven’t already, have a look at Sourcetree by Altassian, it has built-in gitflow features and is extremely powerful for distributed teams
LikeLike
Hi Chris,
no, I have not seen Sourcetree yet. Indeed, that client looks great. Downloading and installing it right now 🙂
Thanks for that hint!
LikeLike
Hi Chris,
I’m using SourceTree now for a few hours, and I have to say, I’m impressed! Thanks again for that pointer!
LikeLike
The install went fine, but when I attempt to clone a remote repository, I get a Transport Error saying it cannot open git-upload-pack. I have set the http.sslVerify=false. Any suggestions?
LikeLike
Hi Robert,
that looks like more of a problem vor commit/push, and not for clone? All what I can say is that I don’t have that problem. Have you tried with different git servers? Maybe it is a server side problem?
LikeLike
Resolved: The problem is that there appears to be a known bug in this version of egit that ignores the setting of the http.sslVerify key. We set this to false because the remote server’s certificate didn’t have the fully qualified domain name. Once we fixed that, everything worked. Current versions of egit didn’t have this problem so long as the key was value was false.
LikeLike
Hi Robert,
ah, I was using the latest version already.
LikeLike
Robert, I on a version of Eclipse that requires this version if eGit and am experiencing this error. My repo is on github.com. Do you remember what you did to fix this issue? I would very much appreciate any input! Thanks.
LikeLike
Hi Erich,
Which project files do you recommend committing when working with Processor Expert projects using Git, Mercurial, etc.? On your GitHub account, I see that you are committing at least the “Project_Settings”, “Sources” and “.settings” folders as well as the following files on the project root folders:
“.cproject”
“.project”
“ProcessorExpert.pe”
“readme.txt”
“ReferencedRSESystems.xml”
I’ll be developing firmware in cooperation with a client of ours. Therefore, I’m trying to figure out what’s the best way to do this without committing unnecessary files. To give you an idea of our experience with this situation: me and our client are both new to the Freescale ARM MCUs and CodeWarrior. I gather that we probably don’t need to commit the “Generated_Code” folder since its files it can easily be generated through the Processor Expert plug-in. A coworker warned be about how some IDEs store settings (font size, window pane positioning) in their project files and how this is problematic when working with a client who uses different IDE preferences.
What are your recommendations and warnings in general? Also, did I miss any of the files that I should commit as a bare minimum?
Thanks in advance!
LikeLike
Hi Carlos,
have a look here:
https://mcuoneclipse.com/2013/03/29/version-control-with-processor-expert-projects/
You absolutely need .cproject, .project, *.pe and ReferencedRSESystems.xml. .settings is somewhat optional, altough I started to store it.
I hope this helps.
LikeLike
Thank you very much! This resolved all my questions so far.
I definitely agree with you about the inconvenience of “describing” all the Processor Expert components within the “ProcessorExpert.pe” XML file.
The only temporary solution I can imagine is dividing our development responsibilities so only one of the teams is responsible for updating the Processor Expert components. Therefore, one team would focus on the hardware abstraction layer and the other team would have to focus only on algorithmic stuff (processing data acquired from sensors, …).
Regardless, it seems like we might have some headaches during the first few weeks of development. At least while we get used to this workflow.
What would be the best way for all of us to lobby Freescale into making CodeWarrior more VCS-friendly? 😉
LikeLike
Hi Carlos,
I made that request several times already. I think things might move slowly.
LikeLike
Hi Erich. I’m not being able to install the EGIT plugin on Code Warrior 10.5. Do you have success doing this ?
LikeLike
Yes, I have it installed with CodeWarrrior for MCU10.5, and no issues or problems.
LikeLike
Pingback: Constructing a Classroom IDE with Eclipse for ARM | MCU on Eclipse
Pingback: Tutorial: Git with Eclipse | MCU on Eclipse
Hi Erich. I tried this on CW 11.1 but couldn’t locate the eGit version that it was happy with. Do you know which one it is?
LikeLiked by 1 person
CW for MCU v11.1 is using an Eclipse from 2013. You can see the eGit older releases on http://download.eclipse.org/egit/ and especially https://wiki.eclipse.org/EGit/FAQ#Where_can_I_find_older_releases_of_EGit.3F with the date of the release. So I have in my CW MCU v11.1 the egit-3.2 – download.eclipse.org/egit/updates-3.2/ installed and that seems to work fine.
LikeLike
Thanks Erich- that works! Looks like the Mylyn stuff doesn’t (Task focused interface) but I guess I can live without that 🙂
LikeLiked by 1 person