Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am just starting a new position and using svn rather than git (my favorite).

With svn if there are any conflicts will I see them after an svn update or after an (attempt) to svn commit?

In other words will an svn update merge remote changes into my current (uncommited) working copy?

I want to be sure not to mess up before my first svn commit if things are not good as I am new to this system! :)

Obviously I have also made a manual copy of my new code in case I run into any issues :)

fyi, I am on Ubuntu 11.10

share|improve this question
    
It sounds like you would be ideally interested in git-svn - I use this as my Subversion client whenever I can. You can continue to use Git like you always do, and interact with Subversion only when you need to. –  Greg Hewgill Dec 22 '11 at 20:57
add comment

1 Answer

up vote 6 down vote accepted

In other words will an svn update merge remote changes into my current (uncommited) working copy?

Yes.

svn will not let you commit if there are new changes in the repository; you will have to do an update first. This update will merge remote changes into your current working copy and alert you of any merge conflicts that occurred.

share|improve this answer
    
yeah I found this too: wiki.greenstone.org/wiki/index.php/Useful_SVN_Commands –  Michael Durrant Dec 22 '11 at 16:49
2  
Most significatly An svn update merges the repository's changes with the local changed code, or shows places where conflicts have arisen (conflicts are shown with a C next to the files you tried to update). If someone else had committed changes to the repository and if these did not conflict with the changes in your own version, the svn update would show up a "G", not a "C". To deal with conflicts (C), see a later section. –  Michael Durrant Dec 22 '11 at 16:51
    
i have to wait 8 mins to accept the answer :) –  Michael Durrant Dec 22 '11 at 16:51
    
I also just got a better understanding that, unlike git, there is no 'local' repository, so 'commit' goes straight to the remote server instead of doing 'commit' and 'push' as in git. As I now understand it, in svn 'push' therefore doesn't exist. –  Michael Durrant Dec 22 '11 at 20:12
1  
Correct, there is no "svn push". And FYI, Subversion uses the term "conflict" differently from how you are. In Subversion, a "conflict" is the result of merging change(s) into your working copy that Subversion was not able to automatically resolve (probably because you changed the same line(s)). Your "conflicts" are just "other commits" to Subversion. Welcome to the past! :-) –  Ross Patterson Dec 23 '11 at 12:48
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.