Eclipse Subversive, one commit, multiple revision numbers - eclipse

I got multiple projects in the same repository location.
If I commit changes to multiple projects in one commit (select them all, and commit), Subversive creates one revision per project.
For example, if I made changes to 17 files in 5 projects, and I commit them all, Subversive will create 5 revisions with the same comment, but what I really want is one revision with the 17 files.
Is there a way to do this with Subversive?

I also have noticed the same behavior if I commit multiple projects in one commit. This apparently happens because of the JavaHL svn connector, as mentioned here. You could switch to SVNKit if this bothers you.
Note, only JavaHL enables you to use Subversive and other svn clients like Tortoise SVN interchangeable for commits on the same files. Here is more detailed SO thread about the difference between JavaHL and SVNKit.

Related

Eclipse SVN: How to recommit after failed commit

Problem
So, the repository I am trying to commit 50 files into has some pre-commit-hooks in place, of which I failed one.
Question
Is there a way to commit the same files again quickly, without having to select them one by one in the tedious Team -> Commit dialogue, e.g. by a hidden buffer or even a staging area like Git has?
My tools
Eclipse Version: Version: Oxygen.3a Release (4.7.3a)
Subclipse 4.2.4
No, not really. The Eclipse Synchronize view does have a changesets feature you can use to manually put your changes into changesets and you can then commit the changeset. If you are using Eclipse Mylyn this can be somewhat automated by following the Mylyn workflow. That is about it though.

Subversion merge loops over the same revision

Using Subversion plugin in Eclipse Juno, am trying to merge 80+ revisions from branch B to A. The point is that, some revisions were already merged manually. But there is no reference tells which revisions were merged manually, so, I decided to merge all 80+ revisions.
After merging each revision, SVN prompts me with current conflicts to resolve, I do resolve them by hand, then mark the file as resolved. Every thing is happy so far.
But when I mark all conflicts as resolved, SVN should try to merge the next revision and so on, but it merges the same revision again and again, showing the same conflicts and I resolve them again, it loops infinitely this way.
I figured out that, this happens only with revisions which were manually merged earlier. And could not find any online talk about this issue. Any help?
I tried to do the same thing with Eclipse Luna and it worked as normal, so it seems to be bug with subversion plugin of eclipse juno.

SVN Commit Issue

Whenever I commit some code to my SVN repository and then do a Synchronization again with the repository the "Team Synchronizing" panel shows me that there is a update to be taken on my code and it shows 0 files and just an "empty update" to update to the latest revision number (the revision number of the recent code commit which I did) in the eclipse. I am on Windows 7. I have used the same tools in Mac and it works fine. Whenever I do a commit in Mac Eclipse it automatically updates it self.
Is this a bug or is there something I am missing?
Any help would be appreciated.
I suspect that although you have Eclipse on both Mac and Windows, the SVN plugin, or the SVN connector used by that plugin, is different between your two setups.
I'm afraid I don't have details to hand, but have seen this behaviour before. The SVN integration in Eclipse makes most sense if you end up with no incoming changes after you do a commit. It seems one of the Eclipse plugins decides after commit to immediately poll for any outstanding changes. It sees that the top-level folder for your project has been updated, so marks it for update.
This is an accurate reflection of what happens in SVN - if you commit a new revision is created in the repository, but your local checkout is not at that revision until you do an update. If you run "svn info" on the command line just after a commit you will see this.

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.

How can I do a partial update (i.e., get isolated changesets) from subversion with subclipse?

If a file is committed several times with various changes, how can I fetch one change at a time, i.e., one changeset at a time?
I use eclipse, subversion, and subclipse, and I can't change the former two for the time being (or the MS platform..).
In my Team/Synchronization view in eclipse (using subclipse), choosing the changeset model, a file seems to be listed only in the latest relevant changeset even if all changesets are listed. So an earlier changeset doesn't necessarily show the full set of files in the original commit, nor the original diff for a file in a commit.
Update: I'm thinking about using changesets for simplified code review, so I'd like the partial update represented for all the files commited in one changeset. It's easy to get diffs and specific revisions for specific files in eclipse, but I'd like to step through all the changes in one specific commit/ changeset in a practical manner.
As I'm sure you know, svn up will by default grab the latest revision of the file.
However, you can use the -r parameter to svn up to grab a particular revision of a file. So if you know a file was committed in revisions 5, 7, and 9, you could do this:
svn up -r5 myfile
svn up -r7 myfile
svn up -r9 myfile
I believe (but I don't have an installation of it in front of me) that Subclipse has a similar option, labeled something like "Update to Revision..."
Subversion does not support atomic changesets.
(Note: If anyone can prove me wrong, I'll happily switch accepted answer.)
I've compared Git and Subversion using TortoiseGit and TortoiseSVN (and looked at what is possible on the command line).
With both Svn and Git I can update to a certain revision, or see and update to different versions of only one file at a time.
With both Tortoise clients can I see individual commits (revisions) from the repository and look at changes between a revision and the previous revision. (Note that I can't seem to do this in Eclipse, ref the question.)
Only with Git, however, can I update to or cherry-pick an isolated commit. The closest I've seen to this functionality in Subversion is to update to head and then revert a certain revision with a "subtractive merge"...
Test setup: make a project, check out or clone the project, make 2 separate commits to repository from elsewhere, including at least one file that is modified in both commits.
Then, with Git: fetch remote changes.
Then, with both Git and Subversion: look at the log.