Comparing different versions of a Java project - eclipse

I am not an experienced Java developer and I am currently modifying and re-building a plugin project. I am about to adopt a versioning control system (e.g. Subclipse), however I already have several versions of such project. My intention is that to check how these versions differs from each other and I was wondering what is the best approach into this. I work with Eclipse IDE.
Thank indeed,
I.

Subclipse just connects Eclipse with a Subversion repository. You have to have a Subversion repository somewhere for Subclipse to work.
Assuming you have a Subversion repository, you commit the oldest version first. You create a Eclipse workspace on you computer that you'll use to communicate with Subversion. First, you copy the oldest version of your project into the Eclipse workspace. Then you commit the workspace. You update your workspace by copying each saved version to your Eclipse workspace in turn, and commit.
That way, the source control will be able to show you the differences between each saved version.

Ctrl click on the root of the two projects, Right click, then Compare With -> Each Other
Pro tip: use a better source control system than svn, like Bazaar, Git, or Mercurial

Related

How do I SVN copy files or projects in Subclipse?

I am working with Java projects in Eclipse (Juno), using Subclipse for version control.
I've noticed that when I copy a file or a project, the resulting copy will not be under version control.
I can add the files to version control as a second step, but that will break their Subversion history.
Usually, I want to preserve the history: I want a way to copy files and projects in Eclipse that will issue a svn copy command.
How can I achieve this?
Update: I tried it on a project again; it seems that a svn cp was issued.
In which case my question becomes: how can I disable that?
Whenever I want to make a copy of code I use the branch feature, this would keep the history intact. It is available under (Right-Click on resource) -> Team -> Branch/Tag.

Importing a project

I am new to Subversion. I'm using TortoiseSVN as my client and VisualSVN as the server. I want to implement it with fellow programmers who are working with me. Some are using NetBeans as their IDE while others are using Eclipse. My PC is the server and they are the clients.
How do they import a project made by me and make changes to it? Using TortoiseSVN they were able to browse my project, but how they import it in their IDEs and make changes to it? Will I be able to view the changes instantaneously?
Using TortoiseSVN they were able to browse my project
That means they have the url of your SVN repo.
They can load that repo to any folder of their choice.
svn checkout http://url/to/your/repo/trunk/ trunk
Or (TortoiseSVN)
From there, they need to add subversive to their eclipse:
They can import an existing project from their SVN workspace.
Once imported, you can re-connect that Eclipse project to its SVN repo:
(right click on the project, Team > Share)
Enter the relevant SVN repo metadata:
Eclipse has a plugin called "Subclipse" and another called "Subversive". They can find and install those to work with their Subversion working copy directly in Eclipse. Netbeans likely has something similar.
Or, once they have a working copy checked out by TortoiseSVN, they can just import it without any special plugins into their IDE. They would use the IDE for development, and use TortoiseSVN to manage all the Subversion aspects outside of the IDE.
You won't see any changes "instantaneously". For you to see their changes, they will first need to "commit" their changes, and then you will need to "update" to see their changes.
Since you're asking a really basic question about using Subversion, I'd suggest reading or at least skimming through important sections in the SVN book: http://svnbook.red-bean.com/

Working with several repositories at the same time with Subversive in Eclipse

I would like to use two svn repositories. One is to synchronize with my production environment and the other is to synchronize with another developer. Is it possible using Subversive in Eclipse?
EDIT: Sorry! I meant SVN, not CVS
I think what you means is "For one given project, I would like to be able to synchronise on one side with the official repo and at the same time, use the synchronisation and merging facilities to stay i sync with another CVS repository".
Best of my knowledge, this is not possible from the same project. Neither with CVS nor with subversion nor with any other SCM. This is a little bit because all SCM plugins are actually plugged into the Team Management plugins of eclipse and has actually a lot to do with the fact that the relation between a dev environment and a repository is quite exclusive.
What you have to do if you want to synchronize on an exceptional basis is :
Disconnect from one repo (say CVS) (team disconnect). Do not delete the .cvs folders.
Reconnect to a second repo (say SVN - either subversive or subclipse <= my preferred one)
Synch with SVN
disconnect from SVN
reconnect with CVS (team => share).
This is too risky to be done on a regular basis.
Therefore there are other strategies
Use a "shadow project" in your workspace synchronised through a regular synchronisation tool. The master project being connected to the CVS repo and the shadow to VN.
Use git + SVN. git as your local repo backed by SVN. The other developer can use a similar approach.
All in all there are no simple "out of the box" solution. All these solutions require a significant amount of commitment to work flawlessly. But SCM has always been like this, I guess.
Subversive adds Subversion
integration for Eclipse (subversion
is a version control system similar
to CVS). It does not handle CVS
repositories!!!
To use CVS repositories with eclipse
you should use the appropriate CVS
Plugin for eclipse.
You may even use both eclipse plugins (subversive and the cvs plugin). They will work with Eclipse like a charm (but keep in mind that subversive only handles subversion repositories).
Yes its possible to use Subversive in Eclipse. I am using Subversion and CVS both through Eclipse and Tortoise. Subversion is much faster and seems to handle binary files better. The one thing to get your head around is that revision numbering is totally different between subversion and cvs. May be this can help you.
Hope this helps.

Importing files from Subversion into an existing project

I am trying to import files from a SVN repository into an existing Eclipse project using Subclipse. Unfortunately, I can only find a way to create a new project from a repository. I know about Tortoise SVN, but it is so much easier to remember to add files when version control is imported into the IDE. Is this possible?
Eclipse doesn't seem to offer this functionality, but you can use another svn client to achieve this effect and then subversion will recognise that these files are under version control.
You may also want to check out how to check out the contents rather than the folder itself.

Associating existing Eclipse project with existing SVN repository

I have an eclipse project on my hard disk, which is a fairly recent check out from an SVN repository. I've imported this project into my Eclipse workspace, and now want to associate it with the SVN repository.
How do I do this? The only options I seem to have under Right-click -> Team is "Share Project", which only seems to allow me to do an initial import.
Edit: Motivation - It's a largish repository, and I don't really want to have to import the whole thing over the network.
Edit 2: There are (for some reason) no .svn dirs in the project. So maybe a fresh import from svn is the only option
Team->Share project is exactly what you need to do. Select SVN from the list, then click "Next". Subclipse will notice the presence of .svn directories that will ask you to confirm that the information is correct, and associate the project with subclipse.
I just wanted to add that if you don't see Team -> Share project, it's likely you have to remove the project from the workspace before importing it back in. This is what happened to me, and I had to remove and readd it to the workspace for it to fix itself. (This happened when moving from dramatically different Eclipse versions + plugins using the same workspace.)
subclipse not showing "share project" option on project context menu in eclipse
I'm asked this question very frequently, if it's smart to use "Share project..." if a eclipse project has been disconnected from it SVN counterpart in the repository. So, I append my answer to this thread.
The SVN-Team option "Share project ..." is totally fine for projects that exist in SVN and in your Eclipse workspace, even if the Eclipse project is missing the hidden .svn configuration. You can still connect them. Eclipse SVN-implementation (Subclipse/Subversive) will verify if the provided SVN http(s) source is populated. If yes, all existing files will be copied and linked (checked out in SVN terms) to your very personal Eclipse workspace.
Word of caution:
Do a backup if you depend on you local files. The SVN implementation may vary its behaviour with every release.
If you have multiple projects encapsulated within each other, make sure you point the SVN path to the correct local path.
regards,
Feder
I came across the same issue. I checked out using Tortoise client and then tried to import the projects in Eclipse using import wizard. Eclipse did not recognize the svn location. I tried share option as mentioned in the above posts and it tried to commit these projects into SVN. But my issue was a version mismatch. I selected svn 1.8 version in eclipse (I was using 1.7 in eclipse and 1.8.8 in tortoise) and then re imported the projects. It resolved with no issues.
I am using Tortoise SVN client. You can alternativley check out the required project from SVN in some folder. You can see a .SVN folder inside the project. Copy the .SVN folder into the workspace folder. Now remove the project from eclipse and import the same again into eclipse. You can see now the project is now associated with svn
In case of SVN servers you have to creating a central repository with all projects. The contents of the repository can be uploaded with the Team/Share command; in case of the Subversive client it automatically runs a commit after the import, so you can upload your files.
This step cannot be circumvented in any way using a centralized version management system such as SVN.
Try this- Close the project then open it. It links with svn automatically,if project was checked out from valid svn path.