git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* Re: two questions about the format of loose object
  2008-12-02  3:05  5%   ` Liu Yubao
@ 2008-12-04  0:54  0%     ` Nicolas Pitre
  0 siblings, 0 replies; 4+ results
From: Nicolas Pitre @ 2008-12-04  0:54 UTC (permalink / raw)
  To: Liu Yubao; +Cc: Shawn O. Pearce, git list

On Tue, 2 Dec 2008, Liu Yubao wrote:

> In fact the format I proposed in my patches is uncompressed loose
> object, not uncompressed loose object header, that's to say I
> proposed format 2 in my question 2, I am just curious why the
> loose object header is compressed in question 1.
> 
> I did a test to add all files of git-1.6.1-rc1 with git-add, the
> time spent decreased by half. Other commands like git diff,
> git diff --cached, git diff HEAD~ HEAD should be faster now
> although the change may be not noticable for small and medium project.

Please try this with an unmodified git version:

	git config --global core.loosecompression 0

and redo your tests please.

One thing that a purely uncompressed loose object format is missing is 
quick data integrity protection. With the above, you'll have all your 
loose objects uncompressed but they'll still have a CRC32 done over 
them.


Nicolas

^ permalink raw reply	[relevance 0%]

* What's in git.git (Dec 2008, #01; Tue, 02)
@ 2008-12-03  6:23  5% Junio C Hamano
  0 siblings, 0 replies; 4+ results
From: Junio C Hamano @ 2008-12-03  6:23 UTC (permalink / raw)
  To: git

We'll probably have 1.6.0.5 by the end of this week.

The tip of the 'master' branch is at 1.6.1-rc1 with a few more fixes.
Hopefully we will have the final 1.6.1 by the end of the year.

* The 'maint' branch has these fixes since the last announcement.

Joey Hess (1):
  sha1_file: avoid bogus "file exists" error message

Johannes Schindelin (1):
  fast-export: use an unsorted string list for extra_refs

Junio C Hamano (1):
  Update draft release notes to 1.6.0.5

Martin Koegler (1):
  git push: Interpret $GIT_DIR/branches in a Cogito compatible way

Matt McCutchen (1):
  git checkout: don't warn about unborn branch if -f is already passed

Miklos Vajna (2):
  Add new testcase to show fast-export does not always exports all tags
  User's Manual: remove duplicated url at the end of Appendix B

Nguyễn Thái Ngọc Duy (1):
  generate-cmdlist.sh: avoid selecting synopsis at wrong place

Pete Wyckoff (1):
  git-p4: fix keyword-expansion regex

Ralf Wildenhues (1):
  Fix typos in the documentation.

SZEDER Gábor (2):
  bash: remove dashed command leftovers
  bash: offer refs instead of filenames for 'git revert'

Sam Vilain (1):
  sha1_file.c: resolve confusion EACCES vs EPERM

Samuel Tardieu (2):
  tag: Check that options are only allowed in the appropriate mode
  tag: Add more tests about mixing incompatible modes and options


* The 'master' branch has these since the last announcement
  in addition to the above.

Alexander Gavrilov (3):
  gitk: Avoid handling the Return key twice in Add Branch
  gitk: Make line origin search update the busy status
  gitk: Add a menu option to start git gui

Cheng Renquan (1):
  git-remote: add verbose mode to git remote update

Christian Couder (4):
  git-gui: french translation update
  bisect: teach "skip" to accept special arguments like "A..B"
  bisect: fix "git bisect skip <commit>" and add tests cases
  Documentation: describe how to "bisect skip" a range of commits

Christian Stimming (1):
  gitk: Update German translation

Giuseppe Bilotta (2):
  gitweb: make gitweb_check_feature a boolean wrapper
  Update comment on gitweb_check/get_feature

Johannes Schindelin (1):
  Document levenshtein.c

Johannes Sixt (2):
  compat/mingw.c: Teach mingw_rename() to replace read-only files
  t4030-diff-textconv: Make octal escape sequence more portable

Junio C Hamano (6):
  gitweb: fix 'ctags' feature check and others
  gitweb: rename gitweb_check_feature to gitweb_get_feature
  send-email: do not reverse the command line arguments
  Include git-gui--askpass in git-gui RPM package
  GIT 1.6.1-rc1
  Makefile: introduce NO_PTHREADS

Linus Torvalds (3):
  Add cache preload facility
  Fix index preloading for racy dirty case
  Add backslash to list of 'crud' characters in real name

Mark Burton (1):
  git-gui: Teach start_push_anywhere_action{} to notice when remote is a
    mirror.

Michele Ballabio (1):
  git gui: update Italian translation

Miklos Vajna (5):
  Update Hungarian translation. 100% completed.
  builtin-clone: use strbuf in guess_dir_name()
  builtin-clone: use strbuf in clone_local() and copy_or_link_directory()
  builtin_clone: use strbuf in cmd_clone()
  git-stash: use git rev-parse -q

Nanako Shiraishi (1):
  git-gui: update Japanese translation

Paul Mackerras (6):
  gitk: Index line[hnd]tag arrays by id rather than row number
  gitk: Fix switch statement in parseviewargs
  gitk: Show local changes properly when we have a path limit
  gitk: Fix context menu items for generating diffs when in tree mode
  gitk: Highlight only when search type is "containing:".
  gitk: Fix bug in accessing undefined "notflag" variable

Peter Krefting (1):
  Updated Swedish translation (514t0f0u).

Pierre Habouzit (4):
  git send-email: make the message file name more specific.
  git send-email: interpret unknown files as revision lists
  git send-email: add --annotate option
  git send-email: ask less questions when --compose is used.

Ralf Wildenhues (1):
  Fix typos in the documentation.

René Scharfe (6):
  add strbuf_expand_dict_cb(), a helper for simple cases
  merge-recursive: use strbuf_expand() instead of interpolate()
  daemon: use strbuf_expand() instead of interpolate()
  daemon: inline fill_in_extra_table_entries()
  daemon: deglobalize variable 'directory'
  remove the unused files interpolate.c and interpolate.h

SZEDER Gábor (1):
  bash: complete full refs

Samuel Tardieu (1):
  Fix deletion of last character in levenshtein distance

Scott Chacon (1):
  Add a built-in alias for 'stage' to the 'add' command

Tuncer Ayaz (2):
  Teach/Fix pull/fetch -q/-v options
  Retain multiple -q/-v occurrences in git pull

^ permalink raw reply	[relevance 5%]

* Re: two questions about the format of loose object
  @ 2008-12-02  3:05  5%   ` Liu Yubao
  2008-12-04  0:54  0%     ` Nicolas Pitre
  0 siblings, 1 reply; 4+ results
From: Liu Yubao @ 2008-12-02  3:05 UTC (permalink / raw)
  To: Shawn O. Pearce; +Cc: git list

Shawn O. Pearce wrote:
> Liu Yubao <yubao.liu@gmail.com> wrote:
>> In current implementation the loose objects are compressed:
>>
>>      loose object = deflate(typename + <space> + size + '\0' + data)
> ...
>> * Question 1:
>>
>> Why not use the format below for loose object?
>>     loose object = typename + <space> + size + '\0' + deflate(data)
> 
> Historical accident.  We really should have used a format more
> like what you are asking here, because it makes inflation easier.
> The pack file format uses a header structure sort of like this,
> for exactly that reason.  IOW we did learn our mistakes and fix them.
> 
> If you look up the new style loose object code you'll see that it
> has a format like this (sort of), the header is actually the same
> format that is used in the pack files, making it smaller than what
> you propose but also easier to unpack as the code can be reused
> with the pack reading code.
> 
> Unfortunately the new style loose object was phased out; it never
> really took off and it made the code much more complex.  So it was
> pulled in commit 726f852b0ed7e03e88c419a9996c3815911c9db1:
> 

In fact the format I proposed in my patches is uncompressed loose
object, not uncompressed loose object header, that's to say I
proposed format 2 in my question 2, I am just curious why the
loose object header is compressed in question 1.

I did a test to add all files of git-1.6.1-rc1 with git-add, the
time spent decreased by half. Other commands like git diff,
git diff --cached, git diff HEAD~ HEAD should be faster now
although the change may be not noticable for small and medium project.


>  Author: Nicolas Pitre <nico@cam.org>:
>  >  deprecate the new loose object header format
>  >
>  >  Now that we encourage and actively preserve objects in a packed form
>  >  more agressively than we did at the time the new loose object format and
>  >  core.legacyheaders were introduced, that extra loose object format
>  >  doesn't appear to be worth it anymore.
>  >
>  >  Because the packing of loose objects has to go through the delta match
>  >  loop anyway, and since most of them should end up being deltified in
>  >  most cases, there is really little advantage to have this parallel loose
>  >  object format as the CPU savings it might provide is rather lost in the
>  >  noise in the end.
>  >
>  >  This patch gets rid of core.legacyheaders, preserve the legacy format as
>  >  the only writable loose object format and deprecate the other one to
>  >  keep things simpler.
> 

Thank you for dig it out for me!


Best regards,

Liu Yubao

^ permalink raw reply	[relevance 5%]

* [ANNOUNCE] GIT 1.6.1-rc1
@ 2008-12-01  9:54  7% Junio C Hamano
  0 siblings, 0 replies; 4+ results
From: Junio C Hamano @ 2008-12-01  9:54 UTC (permalink / raw)
  To: git

As promised, 1.6.1-rc1 is found at the usual places, and from here on we
will be in bugfixes-only mode until 1.6.1 final.  I also think there
probably are a few more patches on 'next' (e.g. the first patch on the
gp/gitweb-feature topic, which is a pure bugfix) that haven't merged to
'master' but should.

^ permalink raw reply	[relevance 7%]

Results 1-4 of 4 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2008-12-01  8:00     two questions about the format of loose object Liu Yubao
2008-12-01 15:32     ` Shawn O. Pearce
2008-12-02  3:05  5%   ` Liu Yubao
2008-12-04  0:54  0%     ` Nicolas Pitre
2008-12-01  9:54  7% [ANNOUNCE] GIT 1.6.1-rc1 Junio C Hamano
2008-12-03  6:23  5% What's in git.git (Dec 2008, #01; Tue, 02) Junio C Hamano

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).