Struggling with managing my eclipse workspace and what to do about syncing it between two machines - eclipse

I'm trying to sync my workspace with PC<---->Laptop. PC is windows, the laptop is ubuntu Linux. Both have 5.1 Mars eclipse version.
So far I've been using dropbox to sync in between but problems started occurring but managed to solve them. I was compiling classes with a newer version of java and the other eclipse didn't know what to do. Syncing with dropbox is really not an elegant way of doing this.
So now I'm trying out git, but so far I've been confused by it and how it works. I have managed to set the git plugin in the eclipse but not sure what to do next. The plugin is called EGit.
As far as I understand so far, it works like this? workspace--->local repo---->git repo? Then I would have to manually sync the code back on my laptop by entering the commands in terminal?
I already did push some stuff to my private repository, but that was on my laptop.
Is it possible to setup an easy way to sync the code? I know git is a good versioning system and a good way to keep the code updated? I'm a first year CS student and so far I don't have any complicated or large projects to manage with. I'm just looking for a nice way to sync the code. I guess having git setup is an ok way to go about it, but I'm overwhelmed by the features of git and not really grasping it.
Thanks for reading.

It would be a good idea to learn how to do it right. It's a better investment of your time than working on workarounds which only work in a certain situation or which are of limited use. Yes, you could use git for that. You do not really need the EGit plugin, just use the git command line, in my opinion that is easier. There are a bunch of great git tutorials out there. For the beginning the basic commands like git init, clone, pull, status, diff, add, commit, push are sufficient. You would need a central git repository, get a free GitHub account for that purpose.
Compiled classes should not be commited into your source repository. Add folders with any generated files to your .gitignore file.

Related

How to move a remote egit repository?

We're using the Groovy/Grails tool suite from Spring (similar to STS), version 3.1, and have an eGit remote repository on a shared network drive. That network drive is going away and we need to move it somewhere else. I have found instructions on how to move local repos, but not remote repos. Is there an easy way to accomplish this? I've also seen warnings against disconnecting the repository when searching for ways to do this as apparently re-importing became troublesome. I did try copying the repository to another location, deleting my project, and re-importing but the wizard still contained references to the old location (I think they were just default repository settings set within the tool suite) and I wasn't sure that this would be the best practice.
Being relatively new to git, and quite frankly not a huge fan yet, I'm unsure as to how to proceed. I see documentation on cloning and adding repos, but not how to move one. I've also put forth an argument for using gitHub but that won't happen before I need to do this. Thanks!

Is there a plugin for Eclipse that allows two people to edit the same project at the same time?

A friend and I want to work on the same project. Is there a way that we can work on the same project at the same time and have the files stored on Google Drive or Dropbox?
You really want to use a version control system, like mercurial or git. There are lots of hosting options for both of these, like github, bitbucket and others.
Edit: As was observed in a comment, you may also take a look at Subversion or CVS. Whichever works best in your case.
As for Eclipse integration, there are solutions for most systems :
http://javaforge.com/project/HGE for Mercurial
http://www.eclipse.org/egit/ for Git
http://www.eclipse.org/subversive/ for SVN
You can Setup a remote git Server or use bitbucket
In Addition with egit for eclipse :)
I Have done this yesterday and it works pretty well
//again too slow :P

Version Control for School Project

we will be doing a project for our Object Oriented Software Eng. class, and our team consists 4 people, including myself. Our groups were made random, so I do not know their level of skills. Maybe they have never heard of version control. I am looking for a system that will allow us to work together. I have used SVN and Git for a very little time. However, I am not very confident with them. Can you suggest a nice and easy to use system that is compatible with Eclipse or NetBeans IDE? Simplicity is the most important thing and I do not know how to use Git or SVN for a project more than one people. (I have only used them individually)
You need to have some kind of Source control.
If you have used SVN/GIT in your own projects using it in a team is just as easy. SVN is easiest, however even though it is a little harder I would go for mercurial with tortoiseHG, hosted for free at bitbucket.
It will Integrate into the windows UI
Its distributed which will make things smoother and reduce merge issues
You get free private hosting
You can use tortoise SVN or VSS (Visual source safe) to maintain project among multiple peoples. In both tool, you can maintain local copy of project in your PC and commit your changes on server when it completes.
Version control tools comparision : http://en.wikipedia.org/wiki/Comparison_of_revision_control_software
Have a look at Mercurial. It is easy to use and portable (it's written in Python). If you use Windows, you will probably find TortoiseHG useful too, as it provides Explorer extensions for mostly all functions Mercurial supports. There are also many sites that provide free project hosting for this VCS, such as BitBucket. And here is a nice tutorial about Mercurial.
EDIT: I once found a Mercurial plug-in for Eclipse. You can find it by searching in Help > Install Software in Eclipse.
I have used Dropbox as source control in a project once, it worked ok you can also revert to old version of your files which is great, we didn`t have to work in the same files so there was no conflict.
But now that I have gotten used to svn and mercurial I would never use something else. I too would recommend using mercurial with tortoiseHg and a bitbucket acount. I have started using it for smaller project as well, I simply did a repository with all of them in it so I have at least a backup and I am able to revert to an old version if need be.
My recommandation is to avoid sharing a folder using tools like dropbox and use a real source control like mercurial hosted on bitbucket (free for project with less than 4 users).
I'd say using SVN or GIT is a bit over kill for a school project which is likely to not last that long.
Another option would be to use something like DropBox.

Managing web project over multiple hosts with revision control

Greetings! :-)
I would like to describe a workflow strategy with some gaps in it, and I would be glad if you could fill in the gaps and otherwise give comments. If admins think that this does not validate as a question, then please delete away.
I am working on a webproject having files with PHP, Javascript (jQuery), HTML, CSS and postgresql code for in-database functions, table creation and configuration. All files are changed frequently. I use Apache.
This is what I want:
Introduce revision control.
Use build files for managing compilation and revision control.
Start using a proper IDE.
Be able to hack on my stationary and laptop with little time wasted on keeping code and IDE project configurations synchronized.
Have a setup for the project so some friends (approx 4-5) may join the project in the future.
This is what I am planning to start to use:
Bazaar for revision control and "project distribution".
Ant for build files.
Eclipse setup with proper plugins for managing Bazaar and Ant.
With Bazaar I intend to put code files, build files and even Eclipse project configuration files (configuration files of the project that I create in Eclipse to work with the webproject) under revision control. That way I can pull all that stuff from my stationary to my laptop via Bazaar.
Since I also put Eclipse's project conf files under revision control, I expect that I can without hazzle immediately open the Eclipse project directly on my laptop. So even if I make modifications to the project settings in Eclipse this should also be synchronized over laptop and host.
But I do have a few questions. Do you know how I should use bazaar so that I am notified or stopped when I try to modify the code on my stationary but have forgotten to push/check-in modifications from my laptop?
Also how should I setup Bazaar so that others can easily join the project in the future? I dont like using a service like launchpad, and would like my stationary to be the server. Is it not a bit risky to do it through ssh because I would have to create a new user account on my stationary each time a new user wants to join in?
Thoughts? Comments? It would be appreciated.
On the first question, you should consider using "checkouts", also called bound branches. That makes bzr behave more like svn in that every commit automatically goes to the "server" and you can't forget to push. Of course, bzr can't really detect if you forget to commit something.
On the second question, you can set up a bzr server that runs over HTTP/DAV and uses the web server's authentication methods. However, if you don't really like other people using your machine as a server, you might want to consider using a totally distributed approach, where your codevelopers publish their own branches and you pull in the things you want.
The Bazaar documentation is quite good and has the details on these topics.

Share an Eclipse CDT project

I have been working on an embedded project with a friend and I like to send him the project every once in a while so he can go over the code.
What is the best way to send him the project so that he can build it fairly easily on his side.
Zipping up the workspace and sending it over does not seem to work very well and exporting the project and having him import it into a workspace doesn't seem to do what I want either.
Update
Thanks everyone for your input, I figured out how to install Subclipse and how to use it with my SVN repo. In order to allow my friend to do the same I went through and documented the installation of Subclipse as well as how to add-to and import-from the repository.
You can find it on my blog.
I would say go with a Source Code Repository (e.g. SVN). There are many free options: gitHub, GoogleCode, Assembla etc.
I would discourage zipping & sending: you'll have trouble synchronizing the project and you will probably loose time.
Many people use Source Control systems such as SVN, Git, etc. Zipping workspaces is a very difficult way to keep in sync, especially if you continue to work on the project after you have sent it off.
If it is an Open Source project then there are several sites that host SVN or Git. Otherwise it will still be worth the effort of setting up a server.