User Login    
 + Register
  • Main navigation
Login
Username:

Password:


Lost Password?

Register now!
Documentation
Who's Online
88 user(s) are online (7 user(s) are browsing XoopsWiki)

Members: 3
Guests: 85

trabis, caek9, tzvook, more...
[Main Page]

DevWiki HowToUseTheCvs

From XOOPS Project

Main Page | Recent changes | Edit this page | Page history | Switch to MediaWiki mode

Printable version | Disclaimers | Privacy policy
Category: DevWiki

DevWiki Index

Contents

XOOPS Module Development CVS Instructions

CVS is the Concurrent Versions System, the dominant open-source network-transparent version control system. The XOOPS project uses CVS servers provided by SourceForge, and the Module development team uses an area within the overall XOOPS CVS repository. In order to use CVS correctly you must follow the XOOPS project specific instructions here, in addition to the more general SourceForge instructions.


Getting Started

There are a few things you need to get started

A SourceForge account An account here, in the XOOPS development site Authorization to use CVS A CVS client

SourceForge Account

Go to the SourceForge User Registration Page if you don't already have a SourceForge account.

XOOPS Development Site Account

Get an account on this site with the Register for the Module Development Forge form.

Create a project

If you want to start a new project, fill out the Start a New Project form to create a new project.

Authorization to use CVS

Fill in the Apply for Project CVS services form+. When you application is processed, your SourceForge account will be granted access to commit to your project. This includes adding your SourceForge account to the XOOPS project and giving you "karma" to commit to your project within the XOOPS repository.

+ This form requires that you be logged in to view it.

CVS Client

You can use the command-line CVS or any number of GUI front-ends. We recommend TortoiseCVS as a fast, simple, well supported tool. WinCVS is a more powerful client with macro capabilities (and I believe similarly well supported). The instructions below assume you're using TortoiseCVS as the client.

Using CVS with XOOPS Module Developement

Instruction for using CVS with XOOPS Module projects are included below:

  1. XOOPS Module layout
  2. Settings to access SourceForge CVS Servers
  3. Checking out an existing module
  4. Checking out an empty existing module
  5. Adding a new module

XOOPS Module layout

The XOOPS project has the following top level modules:


documents

  • XOOPS documentation

modules

  • All the xoops modules are kept within this CVS module.
Important: All module names are lower case. All XOOPS modules are to be set up within the this  modules directory.
Any misplaced files will be removed (we will try to warn you first).

x2-languages

  • XOOPS 2.x translations.

xoops1

  • XOOPS 1.x files

xoops2

  • XOOPS 2.x files

Module settings to access SourceForge CVS Servers

SourceForge CVS servers require SSH to be used for developer access. TortoiseCVS will prompt you for this connection information when you perform an operation that requires it. Use the following values when prompted:

CVSROOT {Automatically calculated from the following values}
Protocol Secure Shell (:ext:)
Server xoops.cvs.sourceforge.net
Repository folder /cvsroot/xoops
User name {Your SourceForge username}

Module

modules/your_module_name

You can also use the command line CVSNT client (it is bundled with TortoiseCVS, or available as a seperate download) and use it's built-in putty client so it can use SSH directly:

CVSROOT  :ssh:username@xoops.cvs.sourceforge.net:/cvsroot/xoops
or
:ext:username@xoops.cvs.sourceforge.net:/cvsroot/xoops

Checking out an existing module

Within a directory on your local filesystem, right-click and choose CVS Checkout... Fill in the Checkout Module as described above.

Variation: Checking out an empty existing module

By default, TortoiseCVS prunes empty directories after the checkout. If a module is empty, they it'll be deleted immediately after it is checked out. Go to CVS > Preferences > Policy and uncheck the "Prune empty folders" checkbox.

Variation: Checking out on a branch

On the Revision tab, click "Choose branch or tag", click Update list and select the tag from the list.

Variation: Checking out XOOPS core or other modules

You can use these same settings to check out any number of modules or the XOOPS core files, but you will only be able to commit to the modules you have specifically been granted. Change the Module setting to xoops2 for the core or modules to checkout all the modules.

Adding a new module

Normally when you request a new project, the module will already be created for you. In that case, see "Variation: Checking out an empty existing module" above. In the case when you need to create the module yourself, follow these steps

  • Right-click the directory containing your module
  • Fill in the Module information as above
  • Important: Change the Module name from the directory name to modules/your_module_folder

Using public key authentication

With normal password authentication, you have to enter your SourceForge password with every CVS operation. However, if you use public key authentication you can avoid that.

For command line client (assuming you are using an SSH version 2 key)
  • Set the CVSROOT :ssh;ver=2:username@xoops.cvs.sourceforge.net:/cvsroot/xoops.
  • Load your private key into pageant (the Putty agent).

Using CVS Nightly Script

If you would like nightly exports created from your current CVS files, see the CvsNightly page.

CVS Teminology

CVS naturally has it's own terminology. Some terms from CVS are mentioned here for reference. Consult the resources section for more information.

Avail file
The avail file exists within the XOOPS CVSROOT directory in the repository. It lists the modules that developers are allowed to commit to.
CVSROOT
In CVS terms, CVSROOT can mean a concatenation of the location information for the repository, or a special directory within the repostiory. A CVSROOT for Joe User (username "juser") using the ext protocol to contact xoops.cvs.sourceforge.net server with the repository root located at /cvsroot/xoops would look like this: ":ext:juser@xoops.cvs.sourceforge.net:/cvsroot/xoops".
Karma
Authorization to commit. The mechanism to grant or deny authorization to commit to modules within the XOOPS repository reports if you have enough Karma to perform the commit action.
Module
A CVS module is a directory within the repository. This obviously not the same as a XOOPS module. Note that there is a modules module within the XOOPS repository. :)
Protocol
A method to transport the CVS commands and data between the client and server. "pserver" is widely available but insecure. "ext" allows you to use an external program to set up the communication channel, typically SSH or RSH. SourceForge CVS servers require pserver for all anonymous read-only access and SSH for developer access.


CVS Resources

The following resources can help you better understand CVS, how it works, and how to use it with SourceForge:

DevWiki_Index

Retrieved from "http://www.xoops.org/modules/mediawiki/index.php/DevWiki_HowToUseTheCvs"

This page has been accessed 473 times. This page was last modified 04:46, 30 December 2007. Content is available under XOOPS Project.


Local Support Sites
Powered by
XOOPS Code hosted on SourceForge

Powered by PHP



Powered by MySQL

Powered by Smarty

OSI certified

All content on this site is subject to the Creative Commons License
Developers for Hire