Repositories / Repository FAQ
Can anyone get a repository?
As long as you have an account on the Curse Network and are able to get a project approved, you'll be able to get your own repository.
How do I get my own code repository?
- Create a project if you haven't already, wait for an admin to approve your project.
- On your project page, you should go to Repository Actions -> Edit Repository.
- For "Repository Type", select the one you want. Currently Subversion, Git, and Mercurial are supported.
- In "Package As", put the name of your project's main folder. For World of Warcraft, this will be the same as your Addon's TOC.
- Wait roughly a minute, and your repository should be created.
How do I actually use my repository now?
Subversion
- You have the option of using a simple SVN password. SSH keys are far more secure, but harder to set up.
- To use SSH keys, follow the instructions of the article about SSH Public Keys and use the "Development url" starting with svn+ssh://.
- To use simple SVN password, go to http://www.curseforge.com/home/repository-authorization/edit/ and setup your SVN password. Then use the "Development url" starting with svn:// that should contains your username in lowercase. Enter your password when told to do so.
svn checkout svn+ssh://svn@svn.curseforge.net/wow/my-project/mainline/trunk MyProject(Replace with your "Development url" and project name)cd MyProject- Add whatever files you want
svn add *svn commit -m "Your commit message"
Git
- Follow the instructions of the article about SSH Public Keys.
- Go to your project page and it will list your "Development url". This is what you will be pushing to. ''Note: If you have a pre-1.6.2 version of Git, you can't clone the repository if it's empty, you'll have to push to it first.''
mkdir MyProject(Or whatever your project's name is)cd MyProjectgit initgit remote add origin git@git.curseforge.net:wow/my-project/mainline.git(Whatever your "Development url" actually is)- Add whatever files you want, commit it locally
git push origin master- Add some more files, commit locally
git push(You only have to do this from now on)
Mercurial (HG)
- Follow the instructions of the article about SSH Public Keys.
- Go to your project page and it will list your "Development url". This is what you will be pushing to.
hg clone ssh://hg.curseforge.net/wow/my-project/mainline MyProject(Replace with your "Development url" and project name)cd MyProject- Edit whatever files you want, commit locally
hg push
How do I get the packager to make a release or beta
You need to create a tag with your repository.
Subversion
Something along the lines of
svn cp svn://svn.curseforge.net/wow/my-project/mainline/trunk svn://svn.curseforge.net/wow/my-project/mainline/tags/v0.1 -m "Tagging as v0.1"
Except replace
svn:~//svn.curseforge.net/wow/my-project/mainline
with your repository url and
v0.1
with the tag you want.
Git
cd MyProject git tag -a v0.1 -m "Tagging as v0.1" git push origin master tag v0.1
Mercurial
hg tag -m "Tagging as v0.1" v0.1 hg push
Through the website
Go to your project page's repository section, and there will be a "tag repository" link on the side panel. Put in the name you want for your tag, and it will tag it for you.
How does the packager know whether a tag is a release or a beta?
It checks if the tag name matches the regex ^v?[0-9\.\-_]+$|release|stable.
In layman's terms, it is a release if either:
- It optionally starts with "v" and has only numbers, dots, dashes, or underscores.
- It has 'release' in the name
- It has 'stable' in the name
How can I specify externals? (a.k.a. embeds/libraries)
See .pkgmeta file
I tagged my project, but I don't see a file made!
Relax. The packager only runs on set intervals (approximately every 20 minutes), at which point it packages any new tags that were created since its last run. If you tag your project, give it up to 30 minutes or so (on the outside) to build the zip.
Changes to packager settings won't affect whether the packager detects a tag or not - only whether it actually packages it. If you change your packager settings before a tag is built, the new packager settings will be in effect when it goes to build the tag. There's no need to recommit a tag if you change your packaging settings, unless the tag was already built.
How do I import an existing repository?
Subversion
svn checkout svn+ssh://svn@svn.curseforge.net/wow/my-project/mainline/trunk MyProject(Replace with your "Development url" and project name)cd MyProject- Add whatever files you want
svn add *svn commit -m "Your commit message"
Git
git clone git@git.curseforge.net:wow/my-project/mainline.git- Add whatever files locally and commit them.
- git push
Mercurial (HG)
hg clone ssh://hg.curseforge.net/wow/my-project/mainline MyProject(Replace with your "Development url" and project name)cd MyProject- Edit whatever files you want, commit locally
hg push
Error Messages
SVN
svn: Authorization failed
Your username in the development URL (if using the non-SSH URL) should be in lowercase. Likewise when prompted for your username/password entry, your username should be lowercase.
Git
fatal: The remote end hung up unexpectedly
Replace the git://git.curseforge.net:wow/my-project/mainline.git with git@git.curseforge.net:wow/my-project/mainline.git. The git://... protocol is read-only access.
Repository hooks
Your .pkgmeta file is invalid: Git repository not found: 'git://git.curseforge.net/wow/...'
Apart from the obvious problem of malformed URLs, this can also be caused by a repository that has not been pushed to yet. If you created a new library and are trying to refer to it in an external, check if you pushed any commits to the library's repository.
- 22 comments
- ← Previous
- 1
- 2
- 3
- Next →
- 22 comments
- ← Previous
- 1
- 2
- 3
- Next →
- Reply
- #12
watchout Jun 24, 2009 at 23:36 UTC - 0 likesto me it seems that actually it's not the tag name that is parsed, but the commit message of the tagging commit, could this be true?
- Reply
- #11
mikk Nov 22, 2008 at 15:21 UTC - 0 likesThis is not hard, and it is not our job to educate you on how to use SVN.
1. My WoWAce -> Repository Authorization. Set your password.
2. Connect. Type in your username and the password you set in 1.
3. Et voila.
- Reply
- #10
ZacWolf Nov 18, 2008 at 21:05 UTC - 0 likesCome on...
Is anyone going to answer these posts?
Can we get a step by step guide for Tortois SVN?
I try with command line SVN and I keep getting "Authorization failed"
This process can't continue to be this difficult. Who has time for it?
-ZacWolf
- Reply
- #9
Azethoth Oct 29, 2008 at 19:28 UTC - 0 likesJust go to the project web site, click repositories, on the right click make a tag, type in the tag name and you are done.
- Reply
- #8
ZacWolf Oct 26, 2008 at 01:19 UTC - 0 likesOK, needless to say I am lost...
It's like you took the worst of both Curse and Ace and created something even MORE worse...
ANYWAY...
I use Tortoise SVN, can anyone tell me how to add a tag?
I used to specify a property: tsvn:logtemplate [addonname]: -
But that doesn't seem to be working now.
- Reply
- #7
Zikko Oct 15, 2008 at 19:47 UTC - 0 likesIs there a reason why in the tagging section under "Through the website" you can find a link to cartographer3s tagging page (which throws a 403)?
- Reply
- #6
sangdrax8 Oct 14, 2008 at 17:19 UTC - 0 likesHow do you have no tag? Isn't the tag the location inside the tags directory? So with no tag are your files just directly in the tags directory?
- Reply
- #5
danielbarron Oct 14, 2008 at 16:39 UTC - 0 likesDoes the tag name have to be different when I re-tag? It seems the packager does not notice.
- Reply
- #4
Jncl Oct 02, 2008 at 17:18 UTC - 0 likesNo tag = Alpha
Tag with anything other than the regex above = Beta
- Reply
- #3
wobin Sep 23, 2008 at 01:52 UTC - 0 likesYou have ^v?[0-9\.\-_]+$|release|stable
as the regex
does this also include |beta|alpha for the appropriate setting in the repo?