Live TV for Mobile Applications / Version: 1.1
SVN Policy / Date: 2009-10-09

Live TV for Mobile Applications

SVN Policy

Version 1.1


Revision History

Date / Version / Description / Author
2009-09-18 / 1.0 / First version / Željko Rumenjak
2009-10-09 / 1.1 / Added rules for NetBeans / Željko Rumenjak

1.  Introduction

1.1  Purpose of this document

The purpose of this document is to define basic guidelines that team members should uphold when using the SVN. This document also gives a short introduction to the SVN and the tools required to access SVN repositories.

1.2  Document organization

The document is organized as follows:

·  Section 1, Introduction, describes contents of this guide

·  Section 2, Subversion, gives some general information about Subversion

·  Section 3, Necessary tools, describes the software required to use the SVN repository

·  Section 4, Rules for committing files, specifies the rules that must be followed when committing files

1.3  Intended Audience

The intended audience is:

·  Live TV for Mobile Applications project team

1.4  Acronyms and abbreviations

Acronym or
abbreviation / Definitions
SVN / Subversion
IDE / Integrated development environment

2.  Subversion

Subversion (SVN) is a version control system initiated in 1999 by CollabNet Inc. It is used to maintain current and historical versions of many types of files, but is mostly used to store the source code during development.

Subversion tracks and maintains all the revisions of the files stored in the SVN repository. This allows for easy access to the versions of files that were stored in the repository at any point in time.

Few of the most important operations that can be done on the SVN repository are:

1.  Checkout – downloads all the files that are stored in the repository

2.  Update – downloads all the files that have changed from the last update (or checkout)

3.  Commit – stores the local changes in the repository

When committing files to the repository it is possible that the conflicts will happen. In that case the user must manually resolve those conflicts. More on conflicts and other SVN features can be found on the following address: http://tortoisesvn.net/docs/release/TortoiseSVN_en/index.html.

3.  Necessary tools

To access any SVN repository an SVN client is needed. This client can be a standalone application or a plugin for an IDE.

Popular SVN client for the Windows operating system is the TortoiseSVN client that can be downloaded from the following web site: http://tortoisesvn.net/downloads. TortoiseSVN adds some additional commands to the right click context menus in Windows. These commands allow users to control remote SVN repositories with a simple right click on the folder in which the repository is checked-out. Manual that explains how to use TortoiseSVN can be found in the support section of the official TortoiseSVN webpage, http://tortoisesvn.net/support. Chapter 4 (Daily Use Guide) of that manual should provide enough information to the users to understand the basic concepts that are required to use this tool.

On the Linux and UNIX systems SVN repositories can be accessed using the svn command, more on that can be found here: http://artis.imag.fr/~Xavier.Decoret/resources/svn/index.html.

Many plugins exist for different IDE’s; one example is the Subversive plugin for the Eclipse IDE that can be found on the following web site: http://www.eclipse.org/subversive/.

4.  Rules for committing files

Few of the rules that the users should follow when committing files to the SVN repository are:

1.  The same SVN repository will be used for multiple projects, so every project should be placed in its own folder on the SVN.

2.  Always write a short comment of the changes you are committing.

3.  Every version committed to the SVN must compile.

4.  Project’s binary files shouldn’t be committed, unless they are a part of some library that the project uses.

5.  When resolving conflicts, be careful not to override other people’s changes.

Files that should NOT be committed:

General files and folders:

·  thumbs.db

Visual Studio:

·  All files from the obj and bin folders (*.exe, *.pdb, *.manifest, *.dll, …)

·  Solution user options (*.suo) files

Eclipse:

·  All files from the bin folder (*.class, …)

NetBeans:

·  All files from build folder

·  All files from dist folder

·  All files from nbproject/private folder

With TortoiseSVN above files and folders can easily be excluded with a global ignore pattern. This pattern can be set by right clicking on any folder and choosing TortoiseSVN -> Settings command. Global ignore pattern can be defined in the dialog that opens under option General.

An example of a global ignore pattern that could be used to ensure that above files and folders don’t get committed:

thumbs.db build dist private bin obj *.suo *.csproj.user

Page 5