Index: utils/dev/README.rst
===================================================================
--- utils/dev/README.rst	(revision 10649)
+++ utils/dev/README.rst	(revision 10655)
@@ -12,10 +12,12 @@
 -------------------------------
 
-| As of now, the NEMO code is build from different sources in the repository, via SVN external definitions
-  which are special versioned properties specified on its sub-items (folders and file).
+| As of now, the NEMO code is build from different sources in the repository,
+  via SVN external definitions which are special versioned properties specified on its sub-items
+  (folders and file).
 | For more, read `the documentation on external definitions in ​the SVN book
   <http://svnbook.red-bean.com/en/1.7/svn.advanced.externals.html>`_.
 
-The *core code*, which is actively developed from one release to another, is still present and unique for a branch.
+On one hand, the *core code*, which is actively developed from one release to another,
+is still present and unique for a branch.
 
 :./cfgs:  Reference configurations
@@ -24,7 +26,10 @@
 :./tests: Test cases
 
-| On the other hand, the *complementary code*, defined by minor modifications between consecutive releases,
-  is managed apart from the default development organisation (``branches``, ``releases``, `tags` and ``trunk``).
-| It has been extracted to another locations in the repository and can considered from now on as external sources.
+| On the other hand,
+  the *complementary code*, defined by minor modifications between consecutive releases,
+  is managed apart from the default development organisation
+  (``branches``, ``releases``, `tags` and ``trunk``).
+| It has been extracted to another locations in the repository and
+  can considered from now on as external sources.
 
 :./arch:     Settings for computing architecture
@@ -35,5 +40,9 @@
 :./tools:    User tools
 
-Thanks to this, the *complementary code* can be shared between several branches.
+.. note::
+
+    The major benefit of this implementation is the convenient way of sharing code.
+    Part of the source code can be develop in one location, in-house or externally,
+    and distribute to several working copies.
 
 External sources in working copy
@@ -56,27 +65,41 @@
 .. important::
 
-    | Regarding the main branches of NEMO development,
-      the default configuration for official releases and tagged snapshots will have fixed externals.
-    | However the trunk will always refer to the ``HEAD`` of the repository.
+    Regarding the main branches of NEMO development,
+    official releases and tagged snapshots will have fixed externals,
+    however the trunk will always refer to the ``HEAD`` of the repository.
+
+.. note::
+
+    | As we cannot add comments in the context of versioned properties,
+      the revision number of an external source could be a major information
+      for those would starting to scrutinize the code.
+    | Revision changes have to be limited it to what is strictly necessary,
+      i.e. only for the external(s) at stake, and
+      each definition must refer to an effective revision considered as reliable.
 
 Developer perspective
 ---------------------
 
-| The external definitions are retained by branching operations so a development branch created from the trunk
-  will in the first place update its external sources to the latest.
-| From that the developer has two options per each external
-
-**Be isolated from unwanted commits**
-    Replace ``HEAD`` revision by a reliable number to be safe
-    but this external will be updated by hand.
-**Be able to commit directly to the external**
-    Let ``HEAD`` revision setting,
-    in return you will receive all its updates.
-
-.. hint::
-
-    You can change your mind at any time and update the externals on a case-by-case basis.
-
-The SVN commands for managing external definitions are below
+| The external definitions are retained by branching operations so in the first place
+  a development branch created from the trunk will update its external sources to the latest.
+| From that the developer makes a choice for each external in the development branch
+
++--------------------------+---------------------------------------------------------+
+| *Set explicit revision*  | Isolated from unwanted commits                          |
+|                          |                                                         |
+|                          | Get back to or reproduce confidently a previous version |
++--------------------------+---------------------------------------------------------+
+| *Keep ``HEAD`` revision* | Modify directly the external and receive all updates    |
+|                          |                                                         |
+|                          | No commit record in the meantime                        |
++--------------------------+---------------------------------------------------------+
+
+| Due to different attributes exposed above,
+  **it is strongly recommended to set explicit revisions on externals for a development branch**.
+| Nevertheless the developer can have its reasons to have implicit revision for given item(s) and
+  can update the definitions on a case-by-case basis.
+
+The SVN commands for managing external definitions are below,
+modified externals are reported in the 2 :sup:`nd` column of ``svn {st,status}`` output.
 
 .. code:: sh
@@ -90,6 +113,5 @@
 .. warning::
 
-    | Think about committing your new definitions to the repository.
-    | Modified externals are reported in the 2 :sup:`nd` column of ``svn {st,status}`` output.
+    Think about committing your new definitions
 
 Recommended development environment
@@ -110,16 +132,19 @@
 | Actually the script will checkout the repository in a slightly different manner from the usual way,
   using the ``--depth`` and ``--set-depth`` SVN options in order to
-  download the sub-paths of the default development organisation in various depths (``branches``, ``releases``, ``tags`` and ``trunk``).
+  download the sub-paths of the default development organisation in various depths
+  (``branches``, ``releases``, ``tags`` and ``trunk``).
 | In the end, the developer will have a versioned copy of the repository first levels with empty folders,
   except for the `trunk` (``/NEMO/trunk``) and the last official release (``/NEMO/releases/release-X.X``)
   which have been fully downloaded.
 
-The benefits of this new approach are numerous:
+The benefits of this new approach are numerous
 
 - **Possibility to work offline like git**:
-  create a development branch by copying the `trunk` locally and start coding without a first commit to the remote repository,
-  instead of creating the development branch remotely on the repository, then downloading it to begin to work.
+  create a development branch by copying the `trunk` locally and
+  start coding without a first commit to the remote repository,
+  instead of creating the development branch remotely on the repository,
+  then downloading it to begin to work.
 - **Simple UNIX-like syntax for SVN commands** (``svn {add,cat,cp,ls,mv,rm} ...``) and
-  no more tedious URL scheme to use ( ``svn+ssh://...``).
+  no more tedious URL scheme to use (``svn+ssh://...``).
 - **All developments handled in one common location** by
   putting an end at the branches scattering with several isolated working copies
@@ -139,7 +164,10 @@
 1. ``DEVELOPER_ID``: configure the working copy in developer mode,
    i.e. URL in ``svn info`` begins with |DEV_URL| ... instead of |URL|,
-   so the developer can commit to the repository right away (switching can be made later).
-2. ``repo``: download the whole layout of the repository instead of the default development organisation.
-   By default, the checkout is from root directory ``/NEMO`` with ``branches``, ``releases``, ``tags`` and ``trunk``.
+   so the developer can commit to the repository right away
+   (switching can be made later if needed).
+2. ``repo``: download the whole layout of the repository instead of the default development organisation
+   to manage the development of the sources used as externals.
+   By default,
+   the checkout is from root directory ``/NEMO`` with ``branches``, ``releases``, ``tags`` and ``trunk``.
    With ``repo`` argument, it does from the root of repository with ``/NEMO``, ``/utils``, ``/vendors``.
 
@@ -216,5 +244,6 @@
   - URL link(s) to selected ticket(s) will be provided in the email notification and the changeset page.
 
-| To do so, you can use a word from this list ``addresses re references refs see`` followed by usual ticket link(s).
+| To do so,
+  you can use a word from this list ``addresses re references refs see`` followed by usual ticket link(s).
 | For instance
 
@@ -226,6 +255,8 @@
 -------------------------------
 
-| If a commit is a fix, you can close targeted ticket(s) with the commit operation without the need of a browser.
-| For this, you can use a word from the list ``close closed closes fix fixed fixes`` followed by usual ticket link(s).
+| If a commit is a fix,
+  you can close targeted ticket(s) with the commit operation without the need of a browser.
+| For this,
+  you can use a word from the list ``close closed closes fix fixed fixes`` followed by usual ticket link(s).
 | For instance
 
Index: utils/dev/install_dev_env.sh
===================================================================
--- utils/dev/install_dev_env.sh	(revision 10649)
+++ utils/dev/install_dev_env.sh	(revision 10655)
@@ -9,28 +9,49 @@
 
 dir='NEMO_dev'
-if [ "$2" == 'repo' ]; then root=''; else root='NEMO'; fi
+
+if [ "$2" == 'repo' ]; then root='/'; else root='/NEMO'; fi
 
 ## Copy of the repository with empty root directories
-svn co --depth immediates http://forge.ipsl.jussieu.fr/nemo/svn/$root $dir
+echo 'Checkout the repository from' $root
+svn co --depth empty http://forge.ipsl.jussieu.fr/nemo/svn/$root $dir
+echo
 
 ## Switch to developer role if ID is provided
 if [ -n "$1" ]; then
+    echo 'Switch from user to developer role (http:// => svn+ssh://)'
     ssh-copy-id -i ~/.ssh/id_rsa.pub $1@forge.ipsl.jussieu.fr 2> /dev/null
-    svn sw --relocate http://forge.ipsl.jussieu.fr            \
-	svn+ssh://$1@forge.ipsl.jussieu.fr/ipsl/forge/projets \
+    svn sw --relocate    http://forge.ipsl.jussieu.fr                       \
+	              svn+ssh://$1@forge.ipsl.jussieu.fr/ipsl/forge/projets \
 	NEMO_dev
+    echo
 fi
 
 if [ "$2" == 'repo' ]; then
-    svn up --set-depth immediates $dir/utils $dir/vendors
+    echo "With 'repo' arg, create a lightweight copy of the repository"
+    echo "for the developement of the sources used as 'externals'"
+
+    for item in utils/build/{arch,makenemo,mk} utils/tools       \
+		vendors/{AGRIF/dev,AGRIF/release-4.0,FCM,IOIPSL}  ; do
+#		vendors/{AGRIF/dev,AGRIF/stable,FCM,IOIPSL}  ; do
+	echo '¤' $item
+	svn up -q --parents $dir/$item
+    done
+	
     dir=$dir/'NEMO'
+    echo
 fi
 
 ## Get the 1st level tree under 'branches' and 'releases'
-svn up --set-depth immediates $dir/branches $dir/releases
+echo "Get empty development folders under '/NEMO/branches':" {UKMO,2018,2019}
+svn up -q --set-depth empty --parents $dir/branches/{UKMO,2018,2019}
+echo
 
 ## Download trunk and last release
-svn up --set-depth infinity $dir/trunk
-svn up --set-depth infinity $dir/releases/release-3.6
+echo 'Full download of 2 main branches'
+echo "¤ '/NEMO/trunk'"
+svn up -q           $dir/trunk
+
+echo "¤ latest in '/NEMO/releases'"
+svn up -q --parents $dir/releases/release-4.0
 
 exit 0
