From 4b1023105a692b3f36f2a9c51fcf193b411156ed Mon Sep 17 00:00:00 2001 From: Jeroen Nijhof Date: Mon, 11 Jan 2016 17:11:22 +0100 Subject: [PATCH 1/3] Add housekeeping feature documentation --- doc/README.md | 1 + doc/administration/housekeeping.md | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 doc/administration/housekeeping.md diff --git a/doc/README.md b/doc/README.md index 25fe3abcb9..5a05fbe50d 100644 --- a/doc/README.md +++ b/doc/README.md @@ -67,6 +67,7 @@ - [Reply by email](incoming_email/README.md) Allow users to comment on issues and merge requests by replying to notification emails. - [Migrate GitLab CI to CE/EE](migrate_ci_to_ce/README.md) Follow this guide to migrate your existing GitLab CI data to GitLab CE/EE. - [Git LFS configuration](workflow/lfs/lfs_administration.md) +- [Housekeeping](administration/housekeeping.md) Keep your git repository tidy and fast. ## Contributor documentation diff --git a/doc/administration/housekeeping.md b/doc/administration/housekeeping.md new file mode 100644 index 0000000000..9c4fb72fd7 --- /dev/null +++ b/doc/administration/housekeeping.md @@ -0,0 +1,13 @@ +# Housekeeping + +## Introduction + +The housekeeping function runs `git gc` on the current project git repository. + +`git gc` runs a number of housekeeping tasks, such as compressing file revisions (to reduce disk space and increase performance) and removing unreachable objects which may have been created from prior invocations of git add. + +Users are encouraged to run this task on a regular basis to maintain good disk space utilization and good operating performance. + +## Where can I find it? + +Just go to your project settings page and you will find the housekeeping function below the project settings form. From a42fe49c8c953c0aa8ca20c8fb5a141447128894 Mon Sep 17 00:00:00 2001 From: Jeroen Nijhof Date: Wed, 13 Jan 2016 12:07:05 +0100 Subject: [PATCH 2/3] Replaced user recommendation with link to git-gc documentation --- doc/administration/housekeeping.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/administration/housekeeping.md b/doc/administration/housekeeping.md index 9c4fb72fd7..b90f916fea 100644 --- a/doc/administration/housekeeping.md +++ b/doc/administration/housekeeping.md @@ -6,7 +6,7 @@ The housekeeping function runs `git gc` on the current project git repository. `git gc` runs a number of housekeeping tasks, such as compressing file revisions (to reduce disk space and increase performance) and removing unreachable objects which may have been created from prior invocations of git add. -Users are encouraged to run this task on a regular basis to maintain good disk space utilization and good operating performance. +See https://www.kernel.org/pub/software/scm/git/docs/git-gc.html for details. ## Where can I find it? From e08e90edbbd28533f215f0dcf274baefb9fc87fd Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Thu, 21 Jan 2016 23:10:47 +0100 Subject: [PATCH 3/3] Refactor housekeeping documentation [ci skip] --- doc/administration/housekeeping.md | 21 +++++++++++++----- .../img/housekeeping_settings.png | Bin 0 -> 23856 bytes 2 files changed, 15 insertions(+), 6 deletions(-) create mode 100644 doc/administration/img/housekeeping_settings.png diff --git a/doc/administration/housekeeping.md b/doc/administration/housekeeping.md index b90f916fea..c27cf1812d 100644 --- a/doc/administration/housekeeping.md +++ b/doc/administration/housekeeping.md @@ -1,13 +1,22 @@ # Housekeeping -## Introduction +_**Note:** This feature was [introduced][ce-2371] in GitLab 8.4_ -The housekeeping function runs `git gc` on the current project git repository. +--- -`git gc` runs a number of housekeeping tasks, such as compressing file revisions (to reduce disk space and increase performance) and removing unreachable objects which may have been created from prior invocations of git add. +The housekeeping function runs [`git gc`][man] on the current project Git +repository. -See https://www.kernel.org/pub/software/scm/git/docs/git-gc.html for details. +`git gc` runs a number of housekeeping tasks, such as compressing file +revisions (to reduce disk space and increase performance) and removing +unreachable objects which may have been created from prior invocations of +`git add`. -## Where can I find it? +You can find this option under your **[Project] > Settings**. -Just go to your project settings page and you will find the housekeeping function below the project settings form. +--- + +![Housekeeping settings](img/housekeeping_settings.png) + +[ce-2371]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2371 "Housekeeping merge request" +[man]: https://www.kernel.org/pub/software/scm/git/docs/git-gc.html "git gc man page" diff --git a/doc/administration/img/housekeeping_settings.png b/doc/administration/img/housekeeping_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..f7c5bc44367e82ed3a62faa3685c50612f8fb315 GIT binary patch literal 23856 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 literal 0 HcmV?d00001