summaryrefslogtreecommitdiff
path: root/setup.c
diff options
context:
space:
mode:
authorBrandon Williams <bmwill@google.com>2017-06-22 18:43:32 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-06-24 01:24:34 (GMT)
commit359efeffc1f16443be18a80b91ba7cd356eb34f1 (patch)
treef8cecc22fbe18c585c51f637f6113daf8d742f42 /setup.c
parentbf08c8cfc1cff6aa4377efad8bdc166106b3a4d5 (diff)
downloadgit-359efeffc1f16443be18a80b91ba7cd356eb34f1.zip
git-359efeffc1f16443be18a80b91ba7cd356eb34f1.tar.gz
git-359efeffc1f16443be18a80b91ba7cd356eb34f1.tar.bz2
repository: introduce the repository object
Introduce the repository object 'struct repository' which can be used to hold all state pertaining to a git repository. Some of the benefits of object-ifying a repository are: 1. Make the code base more readable and easier to reason about. 2. Allow for working on multiple repositories, specifically submodules, within the same process. Currently the process for working on a submodule involves setting up an argv_array of options for a particular command and then launching a child process to execute the command in the context of the submodule. This is clunky and can require lots of little hacks in order to ensure correctness. Ideally it would be nice to simply pass a repository and an options struct to a command. 3. Eliminating reliance on global state will make it easier to enable the use of threading to improve performance. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'setup.c')
0 files changed, 0 insertions, 0 deletions