<commit_before>#summary Usage of Subversion by the ppwcode project
#labels Phase-Implementation

= Introduction =

Subversion is a beautiful tool. You can do al kinds of things with it. But, we need some consistency. In this document we describe how we want to use Subversion (and why).


= Subprojects =

While it was already possible in CVS to use deep directory structures, for a number of reasons it was practical to have different projects as peer on the top level of a repository. Subversion however much more resembles an ordinary file system, where directory structures are really that.

Therefor, we use deep structures to nest projects in a context of related projects.

== Nominal structure ==

On the first level, we discern between different targets. For libraries, these targets are the technologies (Java, .net, ...). Then, within such a target directory, further structuring depends on the vernaculars of those targets. On this level you also find the general projects 'licenses', 'logo', 'website' and 'wiki' (which must be here to work with Google Code).

== Special subtrees ==

Special subtrees are available in the svn repository with names starting with '_'.

  * `_purgatory`: here old versions of projects of ours reside (which were imported at the start of ppwcode from the old CVS repository) for reactivation; this directory will normally go away after a while
  * `_tmp`: just what it says: a home for temporary storage; please clean up after yourself
  * `_sandbox`: where new projects live, before they are mature enough to know there way in the main structure
  * `_renditions`: where the above directories are intended mainly for developers and contributors, this one is for everybody; it contains different "renditions" of this repository, different ways of presenting it, for different audiences or tools



= Tags and Branches =

Tags and branches _an sich_ or not a feature of Subversion as they where a feature from CVS. But with the features that do exist in Subversion, notably the "_zeitliche_ copy" ([http://www.kfs.org/~jonathan/witt/t64311en.html see Wittgenstein, Tractatus Logico Philosophicus, 6.4.3.1.1] :-P) make this, and more, possible in a more transparant way.<commit_msg>Edited wiki page through web user interface.<commit_after>#summary Usage of Subversion by the ppwcode project
#labels Phase-Implementation

= Introduction =

Subversion is a beautiful tool. You can do al kinds of things with it. But, we need some consistency. In this document we describe how we want to use Subversion (and why).


= Subprojects =

While it was already possible in CVS to use deep directory structures, for a number of reasons it was practical to have different projects as peer on the top level of a repository. Subversion however much more resembles an ordinary file system, where directory structures are really that.

Therefor, we use deep structures to nest projects in a context of related projects.

== Nominal structure ==

On the first level, we discern between different targets. For libraries, these targets are the technologies (Java, .net, ...). Then, within such a target directory, further structuring depends on the vernaculars of those targets. On this level you also find the general projects 'licenses', 'logo', 'website' and 'wiki' (which must be here to work with Google Code).

== Special subtrees ==

Special subtrees are available in the svn repository with names starting with '_'.

  * `_purgatory`: here old versions of projects of ours reside (which were imported at the start of ppwcode from the old CVS repository) for reactivation; this directory will normally go away after a while
  * `_tmp`: just what it says: a home for temporary storage; please clean up after yourself
  * `_sandbox`: where new projects live, before they are mature enough to know there way in the main structure
  * `_renditions`: where the above directories are intended mainly for developers and contributors, this one is for everybody; it contains different "renditions" of this repository, different ways of presenting it, for different audiences or tools



= Tags and Branches =

Tags and branches _an sich_ or not a feature of Subversion as they where a feature from CVS. But with the features that do exist in Subversion, notably the "_zeitliche_ copy" ([http://www.kfs.org/~jonathan/witt/t64311en.html see Wittgenstein, Tractatus Logico Philosophicus, 6.4.3.1.1] :-P) make this, and more, possible in a more transparant way.

The "conventional" way to do tags and branches with Subversion, is to create, under your project root, a `trunk` directoryt, for the, uhm, trunk of development, a `branches` directory for the branches, and a `tags` directory for, you guessed it, the tags:
  * myProjectSvn/
    * trunk
    * branches
      * aBranch
      * anotherBranch
      * aDevelopmentBranch
      * 1.0.0PatchBranch
      * 2.0.0PatchBranch
      * 2.1.0PatchBranch
      * 2.2.0PatchBranch
      * 3.0.0PatchBranch
    * tags
      * 1.0.0
      * 1.0.1
      * 1.0.2
      * 1.1.0
      * 1.1.1
      * 1.1.2
      * 1.2.0
      * 2.0.0
      * 2.0.1
      * 2.1.0
      * 2.1.1
      * 2.1.2
      * 2.1.3
      * 2.1.4
      * 2.1.5
      * 2.1.0
      * 2.2.0
      * 2.2.1
      * 3.0.0
{'fraction_non_alphanumeric': 0.06516768292682927, 'fraction_numerical': 0.01753048780487805, 'mean_word_length': 3.6124780316344465, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7362853', 'n_tokens_mistral': 1461, 'n_tokens_neox': 1389, 'n_words': 738}