Skip to content

Commit c574c35

Browse files
committed
Describe the sub & super projects concepts in the getting started
1 parent a12a61c commit c574c35

1 file changed

Lines changed: 27 additions & 15 deletions

File tree

doc/getting_started.rst

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,34 @@ Getting Started
55

66
Main concepts
77
-------------
8-
Your project depends on other projects to build or run. In order keep the dependencies
9-
with your project. *Dfetch* can fetch these dependencies and place them with your code.
8+
Your project depends on other projects to build or run. In order to keep these
9+
dependencies together with your own code, *Dfetch* can fetch these and place them
10+
inside your project. For clarity lets call your project the *superproject* and the
11+
dependencies the *sub-projects*.
12+
13+
*Dfetch* operates on a *superproject*: the project that contains the
14+
:ref:`Manifest` file. The superproject depends on one or more *subprojects*,
15+
which are the external projects listed in the manifest. The superproject itself
16+
can use any version control system (or even none at all).
17+
18+
The :ref:`Manifest` file describes all the :ref:`Projects` the superproject
19+
depends on. These subprojects can be a mix of different version control systems,
20+
such as Git or Subversion. You can then let *Dfetch* :ref:`update` your
21+
dependencies based on this manifest through ``git`` or ``svn``.
22+
23+
*Dfetch* will fetch the correct version of each subproject and place it in the
24+
location of your choice. If the destination folder already exists and the
25+
version has changed, *Dfetch* will overwrite the folder with the updated
26+
contents.
27+
28+
Since any version control information (such as ``.git`` or ``.svn`` directories) is
29+
removed from the fetched subprojects, *Dfetch* stores general information about each
30+
subproject in a ``.dfetch_data.yaml`` file inside the fetched directory, referred to
31+
as the metadata.
32+
33+
After updating, you can then review the changes using the version control system of
34+
your superproject and commit them as you see fit.
1035

11-
*Dfetch* starts from a :ref:`Manifest` file. This contains all the :ref:`Projects`
12-
this project is depending on. You as a user can then let *Dfetch* :ref:`update`
13-
your dependencies.
14-
15-
*Dfetch* will fetch the correct version of your dependencies and place them in the
16-
location of your choice. If the folder already exists and the version was updated
17-
*Dfetch* will overwrite the folder with the changes.
18-
19-
Since the version control information (`.git` or `svn`) is removed, *Dfetch* stores some
20-
general information about the project in a `.dfetch_data.yaml` file inside the fetched project.
21-
22-
You can then review the changes in your favorite version control system and commit
23-
the changes as you please.
2436

2537
My first manifest
2638
-----------------

0 commit comments

Comments
 (0)