@@ -5,22 +5,34 @@ Getting Started
55
66Main 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
2537My first manifest
2638-----------------
0 commit comments