Menu
Home

About

Qosh

Services

Portfolio

Pricing

Contact

Listings

OfficeTrio

IntraVersion





News

16 Feb 2008
Teddington Electronics - UK Electronic Design and Manufacture: Specialising in small volume runs, but able to cater for all sizes of business, new product design and development.

31 Oct 2007
Cara-Jane Hunter: Collages - A collection of really beautiful and fascinating collages from a talented artist...

31 Oct 2007
IntraVersion - Free Version Control System - A complete (non-concurrent) multi-user, web-based, version control system...

Old News...

IntraVersion Professional: Features

[ IntraVersion Home | Installation | User Manual | Pro: Features | News | Buy IV Pro ]


File & Directory Level Permissions

You can define whether each user can READ, WRITE and DELETE individual projects, directories and files.

To edit access for an item, click the access icon (keys). The 'Edit Access' page will appear listing all users in the system, with checkboxes for R, W, D (and 'A' - this is for APPROVE - which is reserved for workflow enhancements in the future).

Simply tick the boxes for the required accesses, and click 'Update'.

Inherited access (from directories higher up) is shown in the list, and as coloured borders around the checkboxes.


Project Options

A single project may be released with different packages of files - for example, IV has 'Standard' and 'Pro' options. Intraversion has a very simple, but powerful mechanism for managing this.

Defining Optional Files

There are two ways to define which files are included when a particular option is selected:

  1. You include this macro in the file itself:
    // IVOPTIONS:Pro
    
    Where 'Pro' can be a comma separated list of options (e.g. 'Standard,Professional,Enterprise').

  2. In the file-list page, you can click the 'Optional File' icon - and set the options there.

File options are version specific - so files may change option during the life of a project.


Defining Optional Directories

In the file-list page, you can click the 'Optional File' icon for the directory - and set the options there.

Directory options are NOT version specific - so options set for a directory should not change during the life of a project.


Viewing Optional Files

Every time a file is updated, any options specified like this are noted. The file option info is then visible in the file list.

In this example the file 'zip-class.php' is only included in 'Pro' version of the product.



Getting A Project With Options

When you choose to GET a project, you'll automatically be presented with a list of any options you have defined, and you can choose to include any, or all...

In this example the 'Pro' version of the product is selected, and it's files will be included.



Project Options Macros

Project Options: Text

The options chosen can be included in the output files using the macro: //#IVOPTION#

...Which is converted into the text defined in the variable '$MO_PROJECT_OPTION' in settings.php.

Which will be replaced with something like [ Build_Options: Pro ]

Project Options: Code

The options chosen in the GET can be fed back into the output files using the macro //#IVOPTIONC#

...Which is converted into the code defined in the variable '$MO_PROJECT_OPTION_CODE' in settings.php.

The default options convert the macro into this PHP code:
$OPTION='Pro';

...Which allows the software to know what option(s) it was built with...

Note: Options are not processed for file branches, only for the main (trunk) file.


File Differencing

IV can store files either in-full, or, it can store only the differences between them... There are advantages to both approaches, but when you're managing a lot of projects &/or versions, the saving on database space is considerable.

For example: If you have a 10K text file, and delete one line in it - the new version will occupy 10K of database space in full, or about 12bytes as a diff...

On the Home page, IV shows you how much disk space would be used if all the files were stored in full, how much space is actually taken, and the saving.

Baselines

Baselines are where the full file contents are stored. The first version is always a baseline, and subsequent versions are built by applying the diffs to that.

The system will set baselines according to the value of BASELINE_EVERY (settings.php). For example, a value of 10, will mean that every 10th version is stored in full.

The reason for this is to minimise the amount of processing required for getting projects after they have been through many versions...

If, for example, your project contained 1000 files, which had been through 100 versions each. Then with a single baseline - 100,000 rows of data would have to be fetched, and 99,000 diffs would have to be applied.

If the baseline is set at 10 versions, then a 1000 file project would never require more than 10,000 rows, and 9,900 diffs.

File Diff Options (settings.php)

  • STORE_DIFFS - Default is TRUE. If TRUE, IV will store only the differences between files, not the whole file contents. This setting MUST NOT be changed after files have been added to the system.
  • BASELINE_EVERY - Store a full copy of file data every n versions.

Reports

The reports engine is built, but as of 29/11/2007 there are only 2 test reports in there... If anyone needs particular reports, I'll build them asap.

Reports Engine

Reports are defined in the file inc/report-defs.php.

The functions which generate the data are defined in the file inc/report-func.php.

More info on this is planned...


© Top-Cat.com 2005-2008


top-cat business systems, huntingdon, cambridgeshire, cambs, uk, web developer, web designer
web, website, design, ecommerce, programming, software development, IT systems, business systems
PHP, MySQL experts!