SVN for Linux users

From WowAce Wiki
Jump to: navigation, search

There are some people out there like me, who use Linux to edit program sources. For a weird reason I also edit my WoW Addons under Linux. Since the process is generally the same, I copied much of the texts from SVN_For_Beginners. Please notify me (or feel free to correct it) if you find something bad here. Some stuff that is changed:

  • tsvn:logtemplate is TortoiseSVN specific. Anyone knows an svn alternative?

Throughout this page, I assume that:

  • You are a developer.
  • You have read and signed SVN Rules.
  • You are using Linux.
  • You are using Tigris' SVN.
  • You already have an SVN account. If you do not, see Getting an Account.

Import your addon into the SVN

Delete your externals directory

Since you'll be setting your externals up later, you don't want to upload them along with your addon.

By delete, it means the whole directory structure your externals (libraries) live in, not just the files themselves or you'll probably end up with lock errors when you try to update. When you set up the externals later on you will tell it where to create the directories for them again.

Import your addon

svn import YourAddon

You will be prompted to enter a username and a password. Enter yours here.

Delete your local copy

Yes you will have to delete your copy of your addon now, don't worry we will be getting it back with the next step.

cd ..
rm -rf YourAddon

Checkout your addon from the SVN

Now that it's safe on the SVN, you'll need to get it back. You should be familiar with checking out addons, but a small refresher is provided. The checkout directory should be the directory where you want the addon's files to be in, I have all my svn stuff in a seperate directory so i wont break my addons when i play.

svn checkout

This will create a YourAddon directory, fetching back all your stuff into it.

Setting SVN Properties (i.e. Externals)

This section assumes that you have already imported your addon into the SVN. Now that your addon is under SVN versioning control, you can set your externals again and give it a default commit message template.


You can directly set your externals property if you know the correct value, or you can edit it with your default editor.

cd YourAddon
svn propset svn:externals "libs/AceLibrary ../Ace2/AceLibrary" .


cd YourAddon
svn propedit svn:externals .
Edit your external definitions using your editor

Please note the dot at the end of both lines, it is required!

End of line

It is mandatory to set svn:eol-style native for each file. It is done by setting the svn:eol-style property to native.

For more on this see svn property eol-style.

Committing your changes

Before we get to updating your addon on the svn server lets talk about adding/deleting/renaming files in your addon. By now you should be used to using the right click menu commands so lets get started.

Adding Files

A lot of times you begin an addon and it starts out simple but then you realize you need to split out some functions into a seperate file or add localization. For any reason you need to add a file to your addon you first need svn to see it.

svn add new_file

It's now added and will be uploaded when you do a commit.

Deleting/Renaming Files

If for any reason you need to delete/rename a file, use the svn delete/rename. You should not delete or rename using other programs or from the command line like with rm.

svn delete not_needed_file
svn rename old_file_name new_file_name

Updating on the SVN server (i.e. Committing)

Ok now that we know the basics and our addon has had a few bug fixes now its time to upload it to the server to share it with everyone.

cd YourAddon
svn commit

This will pop up your default editor, so you can edit your logs. There will be a line stating

--This line, and those below, will be ignored--

And right after that will be listed your changed files. Enter some words about the change, save the file and exit your editor. After this, svn will upload your changes to the dev server. (You didn't forget to add YourAddon: as the first word, did you?)


  • Have anything to add? questions? have an error that you don't know how to fix? well I spend a lot of time in irc:// and me and anyone else in there will be happy to answer any and all questions you have, just take it easy on me since I'm still learning also hehe. --[User:Greywind] 06:37, 12 October 2006 (EDT)
  • It's a very good idea to hang out on the wowace IRC channel when you're making your first few commits. Commits to the Ace SVN are reported there, and if you're having problems or doing something wrong, people will be able to help you right away.
  • Most of the time you can also find me on #wowace, hanging around with the nickname Mushuk or W00d5t0ck

---Mushuk 08:28, 1 April 2008 (EDT)