* 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).