Linus Torvalds <torvalds@osdl.org> writes:I've been annoyed by those scary messages fsck-objects enough and was wondering if we could make it less scary. Especially annoying is that the message about missing blobs and trees that are only referred to by dangling commits. I am still undecided which one should be the default. For interactive use by developers who work in their own repositories, git-prune is safe because nothing else would be working on their repositories at the time. While I do not think we should recommend using git-gc from a cron job, if they want to do so, giving an extra --no-prune option in their cron script would be much less annoying. -- >8 -- [PATCH] git-gc: do not run prune mindlessly. You should pass --no-prune if you ever want to run git-gc from a cron job. Signed-off-by: Junio C Hamano <junkio@cox.net> --- Documentation/git-gc.txt | 15 +++++++++++++-- git-gc.sh | 18 ++++++++++++++++-- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/Documentation/git-gc.txt b/Documentation/git-gc.txt index 2bcc949..7b650a7 100644 --- a/Documentation/git-gc.txt +++ b/Documentation/git-gc.txt @@ -8,7 +8,7 @@ git-gc - Cleanup unnecessary files and optimize the local repository SYNOPSIS -------- -'git-gc' +'git-gc' [--no-prune] DESCRIPTION ----------- @@ -21,6 +21,18 @@ Users are encouraged to run this task on a regular basis within each repository to maintain good disk space utilization and good operating performance. +OPTIONS +------- + +--no-prune:: + Usually `git-gc` packs refs, expires old reflog entries, + packs loose objects, removes unreferenced loose objects, + and removes old 'rerere' records. Among these, removal + of unreferenced loose objects is an unsafe operation + while other git operations are in progress. This option + disables this unsafe step. + + Configuration ------------- @@ -50,7 +62,6 @@ kept. This defaults to 15 days. See Also -------- -gitlink:git-prune[1] gitlink:git-reflog[1] gitlink:git-repack[1] gitlink:git-rerere[1] diff --git a/git-gc.sh b/git-gc.sh index 6de55f7..ecd4b0e 100755 --- a/git-gc.sh +++ b/git-gc.sh @@ -4,12 +4,26 @@ # # Cleanup unreachable files and optimize the repository. -USAGE='' +USAGE='git-gc [--no-prune]' SUBDIRECTORY_OK=Yes . git-sh-setup +no_prune= +while case $# in 0) break ;; esac +do + case "$1" in + --no-prune) + no_prune=: + ;; + --) + usage + ;; + esac + shift +done + git-pack-refs --prune && git-reflog expire --all && git-repack -a -d -l && -git-prune && +$no_prune git-prune && git-rerere gc || exit -- 1.5.0.rc2 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
| Sean | Re: [AppArmor 39/45] AppArmor: Profile loading and manipulation,pathname matching |
| Herbert Xu | Re: 2.6.23-rc4-mm1 |
| Miklos Szeredi | Re: [BUG] long freezes on thinkpad t60 |
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
git: | |
| Matthieu Moy | Re: [RFC] Convert builin-mailinfo.c to use The Better String Library. |
| Guido Ostkamp | [PATCH] Fix Solaris Workshop Compiler issues |
| Shawn Pearce | Re: [RFC] Submodules in GIT |
| Imran M Yousuf | Re: [kernel.org users] [RFD] On deprecating "git-foo" for builtins |
| Marcos Laufer | dmesg IBM x3650 OpenBSD 4.3 |
| Marco Peereboom | Re: Real men don't attack straw men |
| patrick keshishian | SMTP flood + spamdb |
| Andrés Delfino | Re: bcw(4) is gone |
| Tilman Schmidt | Re: 2.6.25-rc8: FTP transfer errors |
| Denys Fedoryshchenko | SFQ depth limit |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | [GIT]: Networking |
| high memory | 16 hours ago | Linux kernel |
| semaphore access speed | 19 hours ago | Applications and Utilities |
| the kernel how to power off the machine | 20 hours ago | Linux kernel |
| Easter Eggs in windows XP | 23 hours ago | Windows |
| Shared swap partition | 23 hours ago | Linux general |
| Root password | 1 day ago | Linux general |
| Where/when DNOTIFY is used? | 1 day ago | Linux kernel |
| How to convert Linux Kernel built-in module into a loadable module | 1 day ago | Linux kernel |
| Linux 2.6.24 and I/O schedulers | 1 day ago | Linux kernel |
| USB Driver -- Interrupt Polling -- A Little Help Please | 1 day ago | Linux general |
