{"shas":[["6f8e7a7792b495ad01e0b821e1b310de4772d199","d4a8f5e63a6e4820614908b03a725db23197595c@googlemail.com","Partial and full uploading of submodules\n\n - Import `git.Submodule`\n\n - Only build up the directory structure for file status A(dded). For a\n   blob build up all the parent directories, for a submodule build the\n   parent directory and the submodule directory itself.\n\n - Upload the item. If it's not a blob get the properties of the\n   submodule:\n\n   * `module` (used like `git.Repo`)\n   * `module_tree` (the tree to upload)\n   * `module_oldtree` (the tree to diff against for M, `EMPTY_TREE` for A)\n   * `module_base` (Base directory of the module. Change to this\n     directory, then perform a recursive upload_diff. Don't forget to\n     change back afterwards.)\n\n - Add myself to the copyright notice.\n   Thanks for the invitation to do so.\n\nPossible uncovered cases:\n\n - A submodule could be manually deleted from `.gitmodules` and\n   `.git/config`. File status is D in that case, but the submodules files\n   will not be deleted on the server.\n   A warning will be logged in this case.\n\n - Be `file` the path of a submodule. Then `tree[file]` is a\n   `git.Submodule`. However `oldtree[file]` must not necessarily be a\n   submodule.\n   An assertion will fail in this case.\n\nAlso note:\n\n - The optional quiet parameter on upload_blob is no longer used, but I\n   didn't remove it.","Niklas Fiekas"]],"repo":"niklasf/git-ftp","actor":"niklasf","ref":"refs/heads/submodule-support","size":1,"head":"6f8e7a7792b495ad01e0b821e1b310de4772d199","actor_gravatar":"1b1bffd135118b5eb464dd31d0304251","push_id":31296192}