From 1d5a333cd42ce6bc09ce4919d58bf883e486b05f Mon Sep 17 00:00:00 2001
From: Brandon Rodriguez <brodriguez8774@gmail.com>
Date: Wed, 4 Dec 2019 01:47:38 -0500
Subject: [PATCH] Add documentation for git submodules

---
 documents/git_submodules.md | 30 ++++++++++++++++++++++++++++++
 documents/references.md     |  6 ++++++
 2 files changed, 36 insertions(+)
 create mode 100644 documents/git_submodules.md

diff --git a/documents/git_submodules.md b/documents/git_submodules.md
new file mode 100644
index 0000000..0fd96d2
--- /dev/null
+++ b/documents/git_submodules.md
@@ -0,0 +1,30 @@
+# Network Flow > Documents > Git Submodules.md
+
+
+## Git Submodules
+This project should be used as a "git submodule". Git submodules are essentially projects that are meant to be used
+within other projects.
+
+### Installing Submodules
+Submodules can be imported into another project with the command:
+* ``git submodule add <project_url> <location_to_store_submodule>``<br><br>
+Where:
+    * `<project_url>` is the same as if you were to run `git clone` to pull the project.
+    * `<location_to_store_submodule>` is the location you wish the submodule to store within the parent project.
+
+### Initializing Submodules
+When you clone a repo that uses submodules, you'll need to initialize the submodules before they can be accessed. This
+can be done in one of two ways:
+* Add the `--recursive` tag when you clone the parent project. This will also get all submodules (assuming they're
+defined within the master branch).<br><br>
+Ex: `git clone --recursive <project_url>`<br>
+
+* If the original project was already cloned, or if the submodule wasn't in the master branch, use:<br><br>
+`git submodule update --init --recursive`
+
+### Updating Submodules
+Any projects that use a submodule will automatically track which commit is being used. When a submodule is updated, the
+projects using them will have to update which commit they point to.<br><br>
+This is accomplished with 2 steps:
+* ``git submodule foreach git pull origin master``
+* Verify the pulled submodule changes are what you want, and commit them.
diff --git a/documents/references.md b/documents/references.md
index 89bed9d..028fb4e 100644
--- a/documents/references.md
+++ b/documents/references.md
@@ -12,6 +12,12 @@ References new to this project.
 ## Older Relevant References
 References linked in previous assignments.
 
+### Git Submodules
+Since I don't know how Python projects are exported to be a pip library (and I'm not even sure if that's a good use case
+for this project), it's being set up as a submodule project for now.
+* General Info About Git Submodules: <https://github.blog/2016-02-01-working-with-submodules/>
+* Importing a Submodule to a Specific Subdirectory: <https://stackoverflow.com/a/12012292>
+
 ### Logging Logic
 The contents of `resources/logging.py` (and all associated logic) originally started from me trying to
 learn how to log information through Django (the Python Web Framework) using a Dictionary type format. (See
-- 
GitLab