Posts in category howto

Introducing Git

We are moving with the times, and are now introducing Git as a supplement to our Subversion support. This post is not about the relative merits of each system, only to provide an overview of the new features we have added for Git.

  1. Git is optional. Each project still gets one Subversion project like before, but can now add additional Git repositories.
  1. Git repositories are not yet browsable via the web interface. The source, changesets and timeline of events are not yet enabled due to (lack of) performance. We don't quote get the performance we require with so many projects and repositories, and no size or content restrictions. However, we have made a small 'Browse Source' helper that lists Git repositories for each project with URLs to use with Git clients. We will enable the full source browsing functionality as soon as it is ready.
  1. Git clients can connect both through SSH and HTTPS. HTTPS being the most common and easy to get started with, but SSH adding both additional security and usefulness in certain situations by providing certificate-based access.
  1. To support SSH certificate-based access, we have made an administration interface for adding your public keys. The interface is available through your personal profile project, reachable via your name in the menu at the very top. If this still says "Create profile..." you need to click and create a profile first. Once accessed, the administration interface should be self-explanatory: It allows you to paste and add keys, or mark existing keys and delete them.
  1. All projects now have a Git/Repositories menu item under "Admin". However, like anything else this is restricted by permissions, so make sure users are assigned permissions REPOSITORY_CREATE, REPOSITORY_DELETE or VERSIONCONTROL_ADMIN as needed. With required permissions, just enter a name and create your first Git repository in seconds. And, you can even fork an existing repository as an identical copy of the original (a.k.a server-side clones). Permissions are managed through this same interface, as is the ability to delete projects.

 "Git repository administration."

Questions? Missing features? Bugs? Please let us know!

Using svnsync to make a local project mirror

You may at any time make a full local backup of your Subversion repository using the svnsync tool that is part of Subversion.

Much information about this tool is published on the interwebs, but we've made a how-to that is as simple as it can possibly get. As always this information is available in the 'Help' section of all projects, and of course by direct link:


Together with web project backups, this lets you keep local copies of ALL your CodeResort project information.

Subversion How-To: Develop, Branch, Merge

Ever been hard at work at something in your Subversion working copy when you realize that this really, really should have been done in a branch instead...? Whatever the reason, this situation always tends to add a level of anxiety as it really should be done without loosing hours worth of changes...

Here is our tried & tested how-to guide: HowTo/Subversion/DevelopBranchMerge

As our other documentation and guides it can always be found in the 'Help' section of your project.

Happy branching!

Agile CodeResort

We have considered adding 'Agile' features to CodeResort for a long time - estimation, burndown charts, sprints and so on. We have evaluated, tested and coded, but as we operate a hosted service with many projects from many organisations we cannot make any general assumption about 'method' usage. No single best-practice method can be enforced onto the thousands of developers that use CodeResort.

What we have decided on is a simple, general, non-obtrusive, optional implementation that:

  1. Adds a 'remaining' field to Tickets.
  2. Allows it to be queried with inplace edit.
  3. Allows it to be charted as status and as progress over time.

For any grouping of tickets, using any grouping/selection available in Ticket Query, the change in 'remaining' over time can be tracked to produce a nice Burndown view that can be embedded anywhere inside the project:

Example Burndown chart.

Curious? For all the details of configuration and use, see HelpUser/Estimation - also always available in the 'Help' section from inside your projects.


Batch Modify Tickets

We've added the BatchModifyPlugin to our Ticket Query module. All users with TICKET_BATCH_MODIFY or TICKET_ADMIN permission now also get a custom interface for batch modification of tickets directly from the Query interface. Queries are made via 'View Tickets -> Custom Query submenu', and have /query?... as part of the URL.

Any ticket in a Query result will get a checkbox next to it, and for any item checked the 'Batch Modify' section provides a simple interface to change ticket fields:

Batch Modify screenshot

This make it easier to manage open tickets, and even using a Query as a 'whiteboard' in project meetings to change schedule, assignment and other ticket classifications.


Start Talking!

A project at CodeResort is a container for source, documentation, tickets, news and more. Our intention is being able to capture and track history for all formal and informal aspects of project progress.

With the addition of 'Talk' for all projects, there is now also a way for interactive group chats in projects. This new feature can be used for many cool things:

  • Do online project meetings. No travel needed. No typing of minutes with the full transcript always being available.
  • Make a Talk for general project chat, and have the project members 'hang out' there and post their questions for all to see and share. Enlighten everyone.
  • Make a Talk to act as a Twitter-like stream of notes from the project progress. Stay updated.
  • Create a Talk to act as a pasteboard, post snippets and insights for discussion, solve code problems, do code reviews.
  • Use a talk to log events - like a 'deployment log' or 'build log' for information and follow-ups.

Curious? See screenshot (from early testing at the Epicode chat).

Talk is enabled for all projects by default, but some configuration is needed to take full advantage of the feature:

  1. Users of talk rooms, need TALK_USE permission. Creators of rooms need TALK_CREATE.
  2. Create rooms. Start with as few rooms as possible to focus attention - increase as needed.
  3. Activity in Talk rooms are recorded at hourly basis, but remember to tick-off to include 'Talk logs' in your view. Not least if you already have added Timeline RSS feeds - if so you need to grab a new feed, or edit the feed adding &talk=on to the pre-existing query parameters.

As usual, the code for the Talk plugin will be made available as open source (soon) - based on our customer promise that any project created or used at CodeResort is yours to set up anywhere else, whenever you want.

We would welcome feedback on this feature - add a comment to the blog post, or contact us with your input.

Learn Basic Wiki Markup in 5 Minutes

Almost everywhere on CodeResort we use Wiki Markup to enter text. It allows for simple and easy plain-text based input that gets converted and nicely formatted for display.

We've now made a simple 5 minute tutorial for you to get started with text input, formatting and linking - as a basic introduction to those unfamiliar with wiki markup, or as a refresh for those who have used other wikis but are unfamiliar with our markup syntax.

The tutorial is available in Help for each project as HowTo/5MinutesWikiMarkup.

Happy reading and writing!

  • Posted: 2008-12-15 13:52 (Updated: 2008-12-16 10:24)
  • Author: simon
  • Categories: howto
  • Comments (4)

Using WebDAV with Vista

As all projects include a WebDAV-based file share for non-repository files, we have of course also made a 'Help' page with information on how to connect. It turns out that the how-to section for 'Windows' was XP-only. Vista does this differently, and a plain Vista install even needs a fix to get it working.

We have just updated the Help page with a new 'Vista' section - look it up inside your project Help (HelpUsers/Files) to get started with WebDAV on Vista.

Keyboard Navigation in Browse Source

If you use 'Browse Source' in projects regularly, you may be interested to know that you can use the keyboard to navigate.


  • 'J' to move down.
  • 'K' to move up.
  • 'O' or hit 'Return' to open and close folders, and to open files for reading.

Introducing InterWiki

Many of you (if not all of you) have relations to other systems while developing and maintaining your CodeResort project. Tickets, Wiki pages, Subversion log messages and so on fills up with full links to external systems.

It may be that you use some other bug tracker, or perhaps reference pages on test or production systems that showcase a bug. It could be anything. What makes these links a bit difficult is that they often are:

  • Difficult to read and reference
  • Don't get updated when a system moves from one address to another
  • Not pretty

InterWiki makes it possible to build your own link syntax. In the same way you can link to a wiki:WikiStart (wiki page) or ticket:42 (ticket), you can now make a link that looks and behaves just as you need it.

Say for instance that you have a test and production setup and your project also deals with bugs on pages and content planning. If the content pages are numbered, how about referencing them as prod:525 or test:233?

If you use some other bug tracker with your project, how about just typing bug:123 and have a full external link rendered?

Or, if your project uses modules from another project, such as the epicode project that you need to reference, how about typing epicode:ticket:42 to make a link? Even display this link as descriptive text by using this pattern: [epicode:ticket:42 related issue]

Want to know how? Read up on the HelpUser/InterWiki help page - you'll find all you need to get started.

Saving Custom Queries as Reports

Thought I'd drop a note on yet another new feature that is easy to miss - a very useful feature for anyone using the Ticket system.

Projects contain two types of ticket listings. The listed Reports used to be SQL only. Anyone looked at the SQL or tried to modify or make new SQL-based reports? Not as easy as anyone would have liked.

Custom Query on the other hand is great for picking the criteria of the selection, selecting grouping, ordering and also what columns you would like to display. However, unless you set them up as [query:] links or inline using the [[TicketQuery]] macro, they were temporary.

No longer. This button is now available on Custom Query pages:

'Save Query' button.

Saving a query as a report makes it appear on the 'View Tickets' front page, and allows you to link to it using the report syntax: {10} or report:10

Much nicer don't you think?

Annotate (Blame) for source code

One of the recently available features is the ability to annotate the source code - most commonly called 'blame' support due to it's popular use of finding out who (and when) and error was introduced...

When browsing a source file, there is now a new 'Annotate' option:

The new menu option.

Selecting it will render the changesets for each line, and the tooltip will provide some basic information - selecting the changeset will take you directly to it:

Showing Annotate in use.

Ain't that nice?

  • Posted: 2008-01-24 13:54 (Updated: 2008-01-26 01:00)
  • Author: simon
  • Categories: howto
  • Comments (0)

Quick Links in Search field for easy navigation

Quick Link Example

Here is a tip for quickly navigating to a resource when you know its name. Just enter it as a link in the 'Search Project' field.

Here are some examples for you to try in your own project:

  • #42 - ticket number 1
  • [42] - for changeset 42
  • {3} - for report number 3
  • RecentChanges - for wiki page of that name

Pretty much all resources in your project is directly linkable - have a look at the HelpUser/Links help page to see the possibilities and review syntax.

  • Posted: 2008-01-24 13:54 (Updated: 2008-01-26 01:02)
  • Author: simon
  • Categories: howto
  • Comments (0)

Blog feature available for all projects

Every project on CodeResort now has a Blog:

  • Regular projects (/p/projectname) have a project-internal blog, available to project members only.
  • User projects (/u/username) have a public blog for anonymous access - open to the world.

Blog for regular projects

The Blog is enabled by default for all projects, but only project administrators will actually see it due to their extended permissions. To let other in you need to set permissions. A typical setup based on our default permission setup is:

  • Grant BLOG_MODIFY_OWN to members ('@member' group) so they can view all the news, post their own news, but not modify the news of others.
  • Also, grant them BLOG_COMMENT permission so that the project members can comment on blog posts.

Why a project blog? Our motivation for this feature was to find a nice and simple way to bring any kind of 'news' into the project information - and documentation. It fills a much needed gap for information that does not fit nicely into either wiki, tickets, or changeset messages. We can't tell you how you should use it, but here are some ideas for inspiration:

  • News on project organisation, introducing new project members or new responsibilities.
  • Project deliveries such as releases / deployments and changeovers, announcing branches and the like.
  • Pulling together a number of tickets, changesets and wiki updates into a coherent overview of what has actually happened and why.
  • Notes on changes to developer setups, dependencies or similar information needed for people to do their work.

The blog has its own RSS feed for full-length messages, and it also puts all creations, edits and comments into the Timeline. Note that if you already have a Timeline RSS feed set up, you need to grab the URL again to get the blog events (blog=on needs to be added to the query string).

Try it out, and see what it can do for you and your project.

Blog for user projects

Having the blog feature available, we thought it would be a great idea for any user with their own project to also have a blog to share their findings and thoughts with others. The user project blog is all pre-configured and ready, so just get started posting.

Note: If you have a login but no user project, you basically only need to click 'Create Profile' in the top navigation menu. Fill in the form, and your own personal mini-project is created. Currently a 'user project' has the following main features:

  • A Wiki, only available for you.
  • 'My Tickets' - your own overview of all open tickets in all projects on CodeResort where you are somehow involved.
  • The Blog that is available to the world.

If you do start using your personal blog, let us know so that we can add a link to your blog in the sidebar here.

More Information

We've also added a help page with further information about the blog - see 'Help' form inside your project, or read the wiki page here if you are logged in: HelpUser/Blog

Open Source

Lastly, just a note to say that the blog feature is made available as open source - developed and maintained by CodeResort: http://trac-hacks.org/wiki/FullBlogPlugin

This is done to ensure that whatever data you enter into your project here at CodeResort, will also be available and accessible if you for some reason should want to move your project away from CodeResort later.


Do you like the blog? Does it make sense? Do you have requests for changes or new additions to the functionality?

We made it for you, and appreciate any help you can give us in making this a useful feature.