git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [ANNOUNCE] GIT 1.5.4.4

From
JGJeff Garzik <jeff@garzik.org>
Date
Mar 11, 2008, 19:11 UTC
Message-ID
<47D6D96D.2000302@garzik.org>
In-Reply-To
<7vmyp7kryp.fsf@gitster.siamese.dyndns.org>
Junio C Hamano wrote:
Show 11 quoted lines
> Jeff Garzik <jeff@garzik.org> writes:
> 
>> Yes, I regularly run both 'git gc' and 'git prune'.
>>
>> But since (ref original email) I was doing some rebasing, there are
>> inevitably changesets left dangling after such an operation.
> 
> Yeah, I'd say it is stupid if "am" ran "gc --auto" for every patch.  I
> recall that we had the same issue with git-svn and we made it run once
> every 1k round, and we probably should do the same for "am" and "rebase",
> running once at the very end.
> Perhaps we would want to raise the default "gc --auto" limit?  Currently
That seems quite reasonable.  This "feels" like a threshold-too-low problem.
Show 9 quoted lines
> when it estimates that you have roughly 6700 objects unpacked it runs
> "repack --prune-packed", and if there still are that many unpacked objects
> after that, it suggests you to run "git prune" to remove them.  If you are
> rebasing, the commits in the old history that are rewritten will _not_
> immediately become dangling because they will still be reachable from your
> reflog.  If you are getting the message, these objects were already
> dangling (ancient commits that are not even reachable from your reflog
> entries that are by default kept for 90 days) even before you started your
> rebase or am run.
My workflow generally looks like this:
	# repo was created in this manner....  this was done ONCE,
	# not every time I apply patches
	git clone --reference ../linux-2.6 ../linux-2.6 libata-dev
	# a patch-applying session
	git checkout master
	git pull ../linux-2.6
	git fetch --tags ../linux-2.6	# yes, still necessary...
	git branch -D ALL NEXT
	git branch -D upstream-fixes upstream-linus
	git checkout -b upstream-fixes master
	git-am --utf8 --signoff -i /g/tmp/mbox	# repeat many times...
	git branch upstream-linus upstream-fixes
	git-checkout sii-lbt && git-rebase master
	git-checkout mv-ahci-pata && git-rebase master
	git-checkout new-eh && git-rebase master
	git branch NEXT master
	git branch ALL new-eh
	git checkout master
	git prune
	git push --force --all $URL
Thus, 'git prune' is run on a very regular basis, but 'git gc' is not.

However, I presume the lack of 'git gc' regularity on libata-dev.git is mitigated by the fact that I _do_ run 'git gc' regularly on linux-2.6.git (listed in libata-dev's alternatives, as noted by git-clone statement above)

> After you finished your day's work on a typical day, what does the output
> from "git count-objects -v" and "git fsck-objects" look like, I wonder?

[jgarzik@pretzel libata-dev]$ git count-objects -v count: 51 size: 244 in-pack: 475 packs: 4 prune-packable: 0 garbage: 0 [jgarzik@pretzel libata-dev]$ git fsck-objects [jgarzik@pretzel libata-dev]$

As an aside... a git-debug-info might be a useful command, wrapping up everything you (a git developer) would find interesting from me (a humble and appreciative git user). Users could attach the output from git-debug-info to emails, when discussing problems in their repositories.

	Jeff
Previous: Junio C Hamano
Message 7 of 7 in “[ANNOUNCE] GIT 1.5.4.3”
  1. Junio C HamanoFeb 23, 2008
  2. [ANNOUNCE] GIT 1.5.4.4Junio C Hamano, Mar 9, 2008
  3. Jeff GarzikMar 9, 2008
  4. Junio C HamanoMar 9, 2008
  5. Jeff GarzikMar 9, 2008
  6. Junio C HamanoMar 10, 2008
  7. Jeff GarzikMar 11, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.