views:

976

answers:

6

Hello,

I'm having some problems with SVN, because i don't know how to use it for my project, the only thing that i know in SVN is how to download, but i want to know how i can upload my C++ project via SVN and what server that i can upload. Remember that i'm using Linux Ubuntu Intrepid Ibex. Thanks!

+7  A: 

The best resource about Subversion is the freely available Version Control with Subversion book, highly recommended.

Adam Byrtek
+3  A: 

If you don't understand Subversion then Version Control with Subversion might be a good place to start.

Mark
+1  A: 

Are you using any kind of IDE for your project? If you do try to find a integration for SVN in you IDE.

For command line svn I found this tutorial

Are you the only person working on your project? Then the cheapes solution would be to install a local subversion server. Subversion should be included in the Ubuntu apt sources.

If you are working on an open source software project you can get free suberversion access at sourceforge

Janusz
I don't use IDE, but thanks for the very good help!!!
Nathan Campos
+6  A: 

Please see the http://svnbook.red-bean.com/.

However for personal projects one of the distributed version control systems (git, bazaar, mercurial) might be a better idea as they do not require a server tu run and are more flexible when it comes to workflow choices.

wuub
Funny that you promote three version control system that are geared towards collaboration for a personal project.
NomeN
@NomeN: like all VCS :) Funny thing is that there is considerably less work required to set any one of them than svn.
wuub
I don't see your point, subversion doesn't need a server. And the only difference to bzr, git, hg is, that you have to specify explicitly where your repository resides.
Mauli
+2  A: 

In your Question you say you have downloaded the application (called checked-out, checkout)

From there, in your terminal you will need to cd into your project folder, then from there (where there will be .svn files) you can issue commands like:

svn status to see all of your uncommited changes, changed files that you haven't told svn to send to your svn repository where the latest code is kept (can be local or remote server).

svn update to get the latest code from the svn repository, this will be unnecessary on a one man project.

svn commit relative/path/to/file this will tell svn that you have finished editing this file and to take a snapshot (called a revision) you can include many paths and files and i think you can use wild cards (i'm fuzzy between git and svn).

If you change some code in one file that some calls in other files will fail if not updated, all of these files should be in one commit if possible with a very clear message (you will thank yourself for clear log messages in the future, down the line)

and that is the basics of svn, sorry if i have merged (haa!) git and svn commands together.

After all of that i forgot to mention the rapidsvn package in the ubuntu repos, quite a good svn GUI in my opinion. Similar menu options as the commands i listed above with a very easy right click and revert option, check it out if your not a command line person.

Question Mark
A: 

There's an excellent command-line Linux SVN tutorial here

12345