Every time I change a package name or move some source code folder, I get "out of date" errors when trying to commit on SVN with Subclipse (plugin for Eclipse). It's amazingly annoying and I always have to spend additional 20 minutes trying to think of a solution how to solve that. Does anyone have similar problems? How do you solve them? Is there a way to force commit something (to say to commit and not pay attention to non-updated files)?
I have similar problem. Unfortunately I have not found out the reason.At first I thought this happens because of incorrect commit order for packages, subpackages and classes. It seems the problem occurs only for projects with more then one developer involved. I always do Update after deleting any package and before commit. This always helps me.
Related
I think I am just merely (coming from an SVN background) confused with how Git conflicts are handled by EGit within Eclipse.
I understand that it shows textually in the normal standard method by which to show conflicts as stated here: http://www.kernel.org/pub/software/scm/git/docs/git-merge.html#_how_conflicts_are_presented however it isn't very clean and with thousands of lines of code it becomes unmanageable to avoid accidently deleting lines that are not meant to be deleted.
Is there any GUI within EGit that can show me each conflict with an step over ability?
I have searched around and I heard about the merge tool however when I follow the instructions by right clicking on the top level node of the tree (i.e. right click models folder that has the <> type icon denoting a conflict, which has a conflicted file of User.php within it) the merge tool is greyed out.
Am I using the merge tool wrong?
Edit
I found out that a bug can cause EGit merge tool to not show: Why is the merge tool disabled in Eclipse for a EGit-managed project? however I am using EGit 1.3.0 so I should be way past this bug.
I have given this question two days both here and on the EGit forums: http://www.eclipse.org/forums/index.php/t/371459/ unfortunately (even after everyone viewed it) no one had a real answer so I decided to solve my conflicts manually and just merge that way.
This way was, in reality, quicker and easier than trying to solve why the merge tools were not working for me, ironically.
I have been using TortoiseSVN for a while now and just recently started using the eclipse plugin subclipse. I am really happy with it, although there is some stuff confusing me.
I have a few projects, which each have a different subfolder in the repository. I never worked with branches (so far), so my SVN use was fairly easy.
Update to head
Solve conflict if there are any
Make some changes in the code/project
Commit (Tortoise tells me, if an update is neccessary before)
Now with subclipse, I fell that there are other possibilities. For instance, what's with the synchronize view? I don't really get it. At the moment, I use Team->Update to head/Commit on the project folder and if there are conflicts, I use Team->Edit conflicts... on the conflicted file. That's it. So I never touch the synchronize stuff. I haven't really found a good explanation on the subclise page or google...
Is the idea to just synchronize and everything is done automatically or what?
Basically, I am asking for the workflow (or some link to a good basic explanation). I am not asking, what is possible or what does what, but how subclipse is intended to be used for small projects (<100 files, <5 persons working on it, no branches so far).
I do not think there is any reason to use the Synchronize view if you do not want to. I really like just doing Team > Update and then resolve whatever conflicts occur. That is much more the "SVN-way" to do it. The Synchronize view comes from Eclipse world, so Subclipse had to support it.
TortoiseSVN does have an option that is kind of/sort of like the Synchronize view. It is the "Check for Modifications" option. Particularly when you press the "Check Repository" button.
Also, keep in mind that the Synchronize view does not show "conflicts" the same way as SVN. In SVN, a conflict means that it could not auto-merge the change in to your file. In the Synchronize view, it means you have local modifications to a file that has incoming changes. It is possible, perhaps even likely, that SVN could automatically merge those changes if you just did an update. Personally, I would rather just let SVN try to do it.
The synchronization view allows you to recognize conflicts before you perform an update. If you perform an update and you are getting conflicts this means that you have to stop what you were doing before and start solving the conflicts. This is an interruption of your work-flow.
Usually if you perform an update and get conflict(s) you loose the ability to run and debug your program. using the synchronization view you can update the conflicting files one-by one, which allows you to integrate the remote changes step-by-step into your project.
Therefore you can start solving the conflict without loosing the ability to run your program. Or you see that there are many conflicts and decide that it is not a good time to perform an update at this time.
Hence the synchronization feature is very powerful if it comes to detecting, preventing or solving conflicting changes in an SVN.
At my job, we recently switched from SVN to Git. We use EGit for the integration with eclipse
Now, I have to ask the question : When we pull a lot of changeset from origin/master, there often are conflict, especially when we move classes from package to package. Fine we think, we'll just merge them then commit, then push the merge. But no, when we do that, EGit still show incoming changeset from the server, and when we pull them, it create some conflicts, again, usually the same annoying import we just merged. We have to do it 2 to 4 time before finally it is merged
Why doesn't it just conflict everything once, then be done with it?
Right now I don't get at all why it operate like this. And of course 3 out of 4 time it happen on my boss computer, and that is bad (TM)
And what is the correct workflow when we want to fetch some changeset and merge them? In eclipse please, some dev don't feel very easy with the command line.
Thank you
did you commit resolution of conflicts ?
git add f1 f2
git commit f1 f2
Quite a few month later, I can say that this was actually a bug in EGit that is now fixed. Sometime when doing a pull, the operation would fail (as opposed to be in conflict). That would lead to a corrupted state in Eclipse, and of course trying to merge in that state would not work.
If you ever suffer from that problem, just update your software. Note that it still affect old versions of Eclipse so if your still on something like Helios (like my boss was) you should probably upgrade the whole IDE.
Moral of the story : keep your software up-to-date.
I wonder if there's a best practice when sharing Xcode4 project between multi-developer team. I keep getting problems with .xcodeproj files being corrupted and build problems after every git pull.
The best practice is this - when you get a conflict in project.pbxproj always take in changes from both sides. Then everyone who added or removed files is happy. 99% of the time this works.
If you are getting corrupted project files after a pull, that means that someone is not doing a build before a push. That's the root source of your problem, someone is not understanding what conflicts mean and that they need to be resolved. You need to find that person and show them how to resolve conflicts in files.
This may be somewhat obscure but I've been happily using Eclipse + Perfoce/P4WSAD for over a year now and have thus far been unable to figure this out myself. I often start a build and let it run in the background while I continue to edit source files. The problem occurs when I try to edit a file that is not checked out from perforce. In this case, eclipse pops up a modal dialog box that forces me to choose between either canceling the build or canceling the check-out operation. So usually I just cancel the build, check out the file, and start the build up again, but this is very time consuming. Is it possible to get eclipse to allow check-outs during builds?
I don't know, but you may want to check with Perforce on this (as this might be something specific to their plugin rather than something in the team su8pport), I never have this problem with SVN or CVS (though maybe my builds are not big enough). Also from what I understand the first generation Perforce plugin had major problems, but they have a new one that's much better. You should make sure you are on the new one.
A simple solution (although it can be disk-space consuming) is to have a building branch on which you merge any of your recently committed development (simple merges with no conflicts: you overwrite what is on the build branch).
Another eclipse project references that build branch sources and builds it whenever you want, while you edit the sources of your first original project.