* What's in git.git, and announcing GIT 1.4.2-rc4
@ 2006-08-10 1:29 Junio C Hamano
2006-08-10 3:34 ` Willy Tarreau
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Junio C Hamano @ 2006-08-10 1:29 UTC (permalink / raw)
To: git; +Cc: linux-kernel
GIT 1.4.2-rc4
It's been a week since -rc3, so here it is. The changes are
really small fixes and nothing else. Let's hope I can tag the
real 1.4.2 this weekend.
* The 'master' branch has these since the last announcement;
these are all in 1.4.2-rc4:
Jeff King:
git-push: allow pushing from subdirectories
Johannes Schindelin:
Fix crash when GIT_DIR is invalid
Jonas Fonseca:
Update git-init-db(1) and documentation of core.sharedRepository
Junio C Hamano:
Cygwin needs NO_C99_FORMAT???
Makefile: Cygwin does not seem to need NO_STRLCPY
Fix "grep -w"
debugging: XMALLOC_POISON
builtin-mv: fix use of uninitialized memory.
GIT-VERSION-GEN: adjust for ancient git
Documentation: git-status takes the same options as git-commit
Fix tutorial-2.html
check return value from diff_setup_done()
find_unique_abbrev() with len=0 should not abbreviate
make --find-copies-harder imply -C
allow diff.renamelimit to be set regardless of -M/-C
Michael Krelin:
handle https:// protocol in git-clone
Ramsay Jones:
Allow config file to specify Signed-off-by identity in format-patch.
commit walkers: setup_ident() to record correct committer in ref-log.
Ryan Anderson:
log-tree: show_log() should respect the setting of diffopt->line_termination
annotate: Fix bug when parsing merges with differing real and logical parents.
* The 'next' branch, in addition, has these.
= To graduate immediately after 1.4.2 happens:
- Jakub Narebski's autoconf stuff acquired a bit more
clean-ups and new detections since the last announcement.
- A new merge strategy, merge-recur, which is a rewrite of
merge-recursive in C, by Johannes and Alex.
- More commands are made built-in by Matthias Kestenholz, and
I cleaned up the build procedure for built-ins a bit.
- Matthias Lederhofer introduced $GIT_PAGER environment
variable that can specify a different pager from $PAGER.
- Ramsay Jones has one header fix to add _GNU_SOURCE, which
helps things to compile in his environment. This was
confirmed to fix a similar problem on an ancient version of
one distribution.
- Timo Hirvonen made the parameter parsing of diff family
saner some time ago. Remaining two minor changes will
graduate to "master" after 1.4.2:
* --name-only, --name-status, --check and -s are mutually exclusive
* Remove awkward compatibility warts "-s". Now -s means "do
not output diff" everywhere, including git-diff-files.
- Johannes made http-push avoid fork() by calling
merge_bases() directly.
- MAX_NEEDS and MAX_HAS limitation in upload-pack has been
lifted.
- pack-objects can copy a non-delta representation of a object
with the new style header straight into packs.
- Paul Mackerras has a few gitk updates.
* Hopefully not too long after 1.4.2:
- A big gitweb clean-up series by Jakub Narebski, with help
from Jeff King, Matthias Lederhofer and Martin Waitz to make
run-time and build-time configuration easier.
Quite a lot of clean-ups and enhancements by Jakub and Luben
Tuikov are queued, and with the proposed function renames,
it may be stable enough to start seriously testing soon
after 1.4.2 happens.
- New style loose objects, which use the same header format as
in-pack objects, can be copied straight into packs when not
deltified. I am hoping that we can make the new-style loose
objects the default in 10 to 12 weeks to give everybody time
to update to 1.4 series.
= Graduation schedule unknown:
- Not-universally-liked Git.pm by Pasky with help from Dennis
Stosberg, Johannes, Pavel Roskin and others. One drawback
is this pretty much makes Perl scripts that use Git.pm
unusable with ActiveState right now. No changes since the
last announcement.
- Linus worries that Racy-git avoidance code leaves racily-clean
index entries forever and hurts performance, and I did some
tweaks. First we need to verify performance is actually
harmed and by how much to see if this is needed.
* The 'pu' branch, in addition, has these.
- An update to upload-pack to prevent it from going all the
way back when the downloader has more roots than it. Needs
testing and comments.
- Johannes has a new diff option --color-words to use color to
squash word differences into single line output.
I do not feel much need for this stuff, and the change is
rather intrusive, so I am tempted to drop it.
- A new merge strategy, merge-rename, which is still a
work-in-progress to handle renames in read-tree 3-way
merge. Judging from the way Johannes's merge-recur is
making progress, I may want to drop this.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: What's in git.git, and announcing GIT 1.4.2-rc4
2006-08-10 1:29 What's in git.git, and announcing GIT 1.4.2-rc4 Junio C Hamano
@ 2006-08-10 3:34 ` Willy Tarreau
2006-08-10 5:05 ` Junio C Hamano
2006-08-10 8:05 ` Johannes Schindelin
2006-08-10 13:34 ` Alex Riesen
2 siblings, 1 reply; 14+ messages in thread
From: Willy Tarreau @ 2006-08-10 3:34 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
Hi Junio,
On Wed, Aug 09, 2006 at 06:29:30PM -0700, Junio C Hamano wrote:
> GIT 1.4.2-rc4
>
> It's been a week since -rc3, so here it is. The changes are
> really small fixes and nothing else. Let's hope I can tag the
> real 1.4.2 this weekend.
I encountered a problem in 1.4.1 and 1.4-git about 2 weeks ago
(I've not tried 1.4.2-rc4 yet). When applying a git patch which
contains a symlink, the symlink created on the filesystem sometimes
has a wrong name with some chars appended to its end, such as if its
name was not zero-terminated. I always encountered this only when
there were several symlinks in the patch, eg: you create a symlink
first, then commit, then change its dest, then commit, then git-format-patch
and try to apply both patches (git-am -k -3) to another tree. Generally,
the second link will be broken. The index will be OK however, since git-status
will complain about it.
I've tried to find the reason for this problem in the code, but
failed to do so. I remember that the function which calls symlink()
(I don't remember its name, sorry) already gets an invalid name in
path->name or something like this.
That's all I could do because I was really too short in time, and I'm
sorry I really don't have enough time to track this further right now.
However, if you have some time to reproduce it and have questions, I'm
willing to respond you.
Thanks, and sorry again for the lack of information,
Willy
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: What's in git.git, and announcing GIT 1.4.2-rc4
2006-08-10 3:34 ` Willy Tarreau
@ 2006-08-10 5:05 ` Junio C Hamano
2006-08-10 5:43 ` Junio C Hamano
0 siblings, 1 reply; 14+ messages in thread
From: Junio C Hamano @ 2006-08-10 5:05 UTC (permalink / raw)
To: Willy Tarreau; +Cc: git
Willy Tarreau <w@1wt.eu> writes:
> I encountered a problem in 1.4.1 and 1.4-git about 2 weeks ago
> (I've not tried 1.4.2-rc4 yet). When applying a git patch which
> contains a symlink, the symlink created on the filesystem sometimes
> has a wrong name with some chars appended to its end.
Thanks. I can reproduce this, and am looking into it.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: What's in git.git, and announcing GIT 1.4.2-rc4
2006-08-10 5:43 ` Junio C Hamano
@ 2006-08-10 5:42 ` Willy Tarreau
2006-08-10 7:47 ` Johannes Schindelin
1 sibling, 0 replies; 14+ messages in thread
From: Willy Tarreau @ 2006-08-10 5:42 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
On Wed, Aug 09, 2006 at 10:43:57PM -0700, Junio C Hamano wrote:
> Junio C Hamano <junkio@cox.net> writes:
>
> > Willy Tarreau <w@1wt.eu> writes:
> >
> >> I encountered a problem in 1.4.1 and 1.4-git about 2 weeks ago
> >> (I've not tried 1.4.2-rc4 yet). When applying a git patch which
> >> contains a symlink, the symlink created on the filesystem sometimes
> >> has a wrong name with some chars appended to its end.
> >
> > Thanks. I can reproduce this, and am looking into it.
>
> Found it. The patch application mechanism uses a counted string
> (char *buf with ulong size) to hold the result, and the code
> stupidly threw the buf to symlink(2), without making it NUL
> terminated.
Excellent ! That means that under some circumstances, it might even have
corrupted the very first link, and not necessarily only the second and
other ones. Thanks for having fixed it that fast.
Cheers,
Willy
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: What's in git.git, and announcing GIT 1.4.2-rc4
2006-08-10 5:05 ` Junio C Hamano
@ 2006-08-10 5:43 ` Junio C Hamano
2006-08-10 5:42 ` Willy Tarreau
2006-08-10 7:47 ` Johannes Schindelin
0 siblings, 2 replies; 14+ messages in thread
From: Junio C Hamano @ 2006-08-10 5:43 UTC (permalink / raw)
To: Willy Tarreau; +Cc: git
Junio C Hamano <junkio@cox.net> writes:
> Willy Tarreau <w@1wt.eu> writes:
>
>> I encountered a problem in 1.4.1 and 1.4-git about 2 weeks ago
>> (I've not tried 1.4.2-rc4 yet). When applying a git patch which
>> contains a symlink, the symlink created on the filesystem sometimes
>> has a wrong name with some chars appended to its end.
>
> Thanks. I can reproduce this, and am looking into it.
Found it. The patch application mechanism uses a counted string
(char *buf with ulong size) to hold the result, and the code
stupidly threw the buf to symlink(2), without making it NUL
terminated.
diff --git a/builtin-apply.c b/builtin-apply.c
index f8c6763..c159873 100644
--- a/builtin-apply.c
+++ b/builtin-apply.c
@@ -1698,6 +1698,14 @@ static int apply_data(struct patch *patc
desc.buffer = buf;
if (apply_fragments(&desc, patch) < 0)
return -1;
+
+ /* NUL terminate the result */
+ if (desc.alloc <= desc.size) {
+ desc.buffer = xrealloc(desc.buffer, desc.size + 1);
+ desc.alloc++;
+ }
+ desc.buffer[desc.size] = 0;
+
patch->result = desc.buffer;
patch->resultsize = desc.size;
@@ -2040,6 +2048,9 @@ static int try_create_file(const char *p
int fd;
if (S_ISLNK(mode))
+ /* Although buf:size is counted string, it also is NUL
+ * terminated.
+ */
return symlink(buf, path);
fd = open(path, O_CREAT | O_EXCL | O_WRONLY, (mode & 0100) ? 0777 : 0666);
if (fd < 0)
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: What's in git.git, and announcing GIT 1.4.2-rc4
2006-08-10 5:43 ` Junio C Hamano
2006-08-10 5:42 ` Willy Tarreau
@ 2006-08-10 7:47 ` Johannes Schindelin
2006-08-10 7:59 ` Junio C Hamano
1 sibling, 1 reply; 14+ messages in thread
From: Johannes Schindelin @ 2006-08-10 7:47 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Willy Tarreau, git
Hi,
On Wed, 9 Aug 2006, Junio C Hamano wrote:
> +
> + /* NUL terminate the result */
> + if (desc.alloc <= desc.size) {
> + desc.buffer = xrealloc(desc.buffer, desc.size + 1);
> + desc.alloc++;
While in this particular case, desc.alloc cannot be smaller than desc.size
(and therefore the condition in the if() is misleading), it might be
better to write "desc.alloc = desc.size + 1;" for others to understand...
Ciao,
Dscho
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: What's in git.git, and announcing GIT 1.4.2-rc4
2006-08-10 7:47 ` Johannes Schindelin
@ 2006-08-10 7:59 ` Junio C Hamano
0 siblings, 0 replies; 14+ messages in thread
From: Junio C Hamano @ 2006-08-10 7:59 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: git
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> While in this particular case, desc.alloc cannot be smaller than desc.size
> (and therefore the condition in the if() is misleading), it might be
> better to write "desc.alloc = desc.size + 1;" for others to understand...
We overallocate desc.alloc in apply_one_fragment for growth, so
that if() is needed, but after this part of the code we discard
the desc hence the increment is not needed ;-).
diff --git a/builtin-apply.c b/builtin-apply.c
index c159873..be2c715 100644
--- a/builtin-apply.c
+++ b/builtin-apply.c
@@ -1700,10 +1700,8 @@ static int apply_data(struct patch *patc
return -1;
/* NUL terminate the result */
- if (desc.alloc <= desc.size) {
+ if (desc.alloc <= desc.size)
desc.buffer = xrealloc(desc.buffer, desc.size + 1);
- desc.alloc++;
- }
desc.buffer[desc.size] = 0;
patch->result = desc.buffer;
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: What's in git.git, and announcing GIT 1.4.2-rc4
2006-08-10 1:29 What's in git.git, and announcing GIT 1.4.2-rc4 Junio C Hamano
2006-08-10 3:34 ` Willy Tarreau
@ 2006-08-10 8:05 ` Johannes Schindelin
2006-08-10 8:10 ` Junio C Hamano
2006-08-10 8:19 ` Junio C Hamano
2006-08-10 13:34 ` Alex Riesen
2 siblings, 2 replies; 14+ messages in thread
From: Johannes Schindelin @ 2006-08-10 8:05 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git, linux-kernel
Hi,
On Wed, 9 Aug 2006, Junio C Hamano wrote:
> * The 'next' branch, in addition, has these.
>
> = To graduate immediately after 1.4.2 happens:
>
> [...]
>
> - pack-objects can copy a non-delta representation of a object
> with the new style header straight into packs.
>
> [...]
>
> * Hopefully not too long after 1.4.2:
>
> [...]
>
> - New style loose objects, which use the same header format as
> in-pack objects, can be copied straight into packs when not
> deltified. I am hoping that we can make the new-style loose
> objects the default in 10 to 12 weeks to give everybody time
> to update to 1.4 series.
These are the same, no?
> * The 'pu' branch, in addition, has these.
>
> [...]
>
> - Johannes has a new diff option --color-words to use color to
> squash word differences into single line output.
>
> I do not feel much need for this stuff, and the change is
> rather intrusive, so I am tempted to drop it.
I beg to differ on the "intrusive": except for needed structs and
functions, which are totally orthogonal with the rest of git, it only
touches fn_out_consume(), builtin_diff() and in an obvious way,
diff_opt_parse() and struct diff_options.
So the real impact is pretty low and well contained.
Besides, I really use it often -- you should try it! Call me blind, but
very often I cannot spot the differences (in the unified diff) when they
are minor, especially when there was just a typo in the documentation. You
could now say that I should not care about it, then, but if _I_ made the
mistake, I want to learn from it.
Of course, if you really hate what it does, I will happily carry it in my
personal repository; I _need_ it.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: What's in git.git, and announcing GIT 1.4.2-rc4
2006-08-10 8:05 ` Johannes Schindelin
@ 2006-08-10 8:10 ` Junio C Hamano
2006-08-10 8:19 ` Junio C Hamano
1 sibling, 0 replies; 14+ messages in thread
From: Junio C Hamano @ 2006-08-10 8:10 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: git
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>> - pack-objects can copy a non-delta representation of a object
>> with the new style header straight into packs.
>>...
>> * Hopefully not too long after 1.4.2:
>> - New style loose objects, which use the same header format as
>> in-pack objects, can be copied straight into packs when not
>> deltified. I am hoping that we can make the new-style loose
>> objects the default in 10 to 12 weeks to give everybody time
>> to update to 1.4 series.
>
> These are the same, no?
Yeah; I meant to say that we need to wait a while before making
the new style loose object the default, since people with older
git would not be able to use them.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: What's in git.git, and announcing GIT 1.4.2-rc4
2006-08-10 8:05 ` Johannes Schindelin
2006-08-10 8:10 ` Junio C Hamano
@ 2006-08-10 8:19 ` Junio C Hamano
2006-08-10 8:27 ` Johannes Schindelin
1 sibling, 1 reply; 14+ messages in thread
From: Junio C Hamano @ 2006-08-10 8:19 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: git
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> Besides, I really use it often -- you should try it! Call me blind, but
> very often I cannot spot the differences (in the unified diff) when they
> are minor, especially when there was just a typo in the documentation. You
> could now say that I should not care about it, then, but if _I_ made the
> mistake, I want to learn from it.
I tried it on this:
diff --git a/builtin-apply.c b/builtin-apply.c
index c159873..be2c715 100644
--- a/builtin-apply.c
+++ b/builtin-apply.c
@@ -1700,10 +1700,8 @@ static int apply_data(struct patch *patc
return -1;
/* NUL terminate the result */
- if (desc.alloc <= desc.size) {
+ if (desc.alloc <= desc.size)
desc.buffer = xrealloc(desc.buffer, desc.size + 1);
- desc.alloc++;
- }
desc.buffer[desc.size] = 0;
patch->result = desc.buffer;
which shows something like:
diff --git a/builtin-apply.c b/builtin-apply.c
index c159873..be2c715 100644
--- a/builtin-apply.c
+++ b/builtin-apply.c
@@ -1700,10 +1700,8 @@ static int apply_data(struct patch *patc
return -1;
/* NUL terminate the result */
if (desc.alloc <= desc.size)
{
desc.buffer = xrealloc(desc.buffer, desc.size + 1);
desc.alloc++;
}
desc.buffer[desc.size] = 0;
patch->result = desc.buffer;
where "desc.alloc++;" and next lines and the opening brace after
if() are red. Why does that red opening brace have to come at
the beginning of line, I wonder...
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: What's in git.git, and announcing GIT 1.4.2-rc4
2006-08-10 8:19 ` Junio C Hamano
@ 2006-08-10 8:27 ` Johannes Schindelin
0 siblings, 0 replies; 14+ messages in thread
From: Johannes Schindelin @ 2006-08-10 8:27 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
Hi,
On Thu, 10 Aug 2006, Junio C Hamano wrote:
> I tried it [--color-words] on this:
>
> diff --git a/builtin-apply.c b/builtin-apply.c
> index c159873..be2c715 100644
> --- a/builtin-apply.c
> +++ b/builtin-apply.c
> @@ -1700,10 +1700,8 @@ static int apply_data(struct patch *patc
> return -1;
>
> /* NUL terminate the result */
> - if (desc.alloc <= desc.size) {
> + if (desc.alloc <= desc.size)
> desc.buffer = xrealloc(desc.buffer, desc.size + 1);
> - desc.alloc++;
> - }
> desc.buffer[desc.size] = 0;
>
> patch->result = desc.buffer;
>
> which shows something like:
>
> diff --git a/builtin-apply.c b/builtin-apply.c
> index c159873..be2c715 100644
> --- a/builtin-apply.c
> +++ b/builtin-apply.c
> @@ -1700,10 +1700,8 @@ static int apply_data(struct patch *patc
> return -1;
>
> /* NUL terminate the result */
> if (desc.alloc <= desc.size)
> {
> desc.buffer = xrealloc(desc.buffer, desc.size + 1);
> desc.alloc++;
> }
> desc.buffer[desc.size] = 0;
>
> patch->result = desc.buffer;
>
> where "desc.alloc++;" and next lines and the opening brace after
> if() are red. Why does that red opening brace have to come at
> the beginning of line, I wonder...
It is an implementation detail: to determine the differing words, I turn
all whitespace into newlines in that particular hunk, and then run another
diff (nested diff run!). So, the space in --- and the newline in +++
compare equal. Since wI am mostly interested in the _new_ (gree) version,
the newline is printed, not the space.
Hmmm. I have to think about it.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: What's in git.git, and announcing GIT 1.4.2-rc4
2006-08-10 1:29 What's in git.git, and announcing GIT 1.4.2-rc4 Junio C Hamano
2006-08-10 3:34 ` Willy Tarreau
2006-08-10 8:05 ` Johannes Schindelin
@ 2006-08-10 13:34 ` Alex Riesen
2006-08-10 14:00 ` Johannes Schindelin
2 siblings, 1 reply; 14+ messages in thread
From: Alex Riesen @ 2006-08-10 13:34 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git, Johannes Schindelin
On 8/10/06, Junio C Hamano <junkio@cox.net> wrote:
> - A new merge strategy, merge-recur, which is a rewrite of
> merge-recursive in C, by Johannes and Alex.
It still has problems devouring that monster merge I have (~20k entries,
with around 40 changed in the other branch, around 100 revs ago. Big
binary files involved. Renames and copies).
Perfomance is nowhere near usable: ~20min on Windows/3GHz/2Gb,
~4Min on Linux/1.4GHz/384Mb ;) I agree that Linux is much more bearable
but 4Min is still too much (especially comparing to that "stupid" resolve).
I noticed that it spends a lot of time finding renames (diffcore_std,
in particular).
Why doesn't it take that much time for "diff-tree -M -r base head1" +
"diff-tree -M -r base head2", I wonder...? (~30 sek, for that windows box).
Sorry, I can't provide the tree. I suppose Mozilla tree can be compared
to that thing, when it becomes available. Linux kernel is no good for
reproducing this problem: it's too clean and compact.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: What's in git.git, and announcing GIT 1.4.2-rc4
2006-08-10 13:34 ` Alex Riesen
@ 2006-08-10 14:00 ` Johannes Schindelin
2006-08-10 14:30 ` Alex Riesen
0 siblings, 1 reply; 14+ messages in thread
From: Johannes Schindelin @ 2006-08-10 14:00 UTC (permalink / raw)
To: Alex Riesen; +Cc: Junio C Hamano, git
Hi,
On Thu, 10 Aug 2006, Alex Riesen wrote:
> On 8/10/06, Junio C Hamano <junkio@cox.net> wrote:
> > - A new merge strategy, merge-recur, which is a rewrite of
> > merge-recursive in C, by Johannes and Alex.
>
> It still has problems devouring that monster merge I have (~20k entries,
> with around 40 changed in the other branch, around 100 revs ago. Big
> binary files involved. Renames and copies).
> Perfomance is nowhere near usable: ~20min on Windows/3GHz/2Gb,
> ~4Min on Linux/1.4GHz/384Mb ;) I agree that Linux is much more bearable
> but 4Min is still too much (especially comparing to that "stupid" resolve).
>
> I noticed that it spends a lot of time finding renames (diffcore_std,
> in particular).
My next plans -- after making sure that merge-recursive is accurate
(enough) -- was to use oprofile to find the expensive spots.
> Why doesn't it take that much time for "diff-tree -M -r base head1" +
> "diff-tree -M -r base head2", I wonder...? (~30 sek, for that windows box).
Could it be that it has many common ancestors? You have to do the rename
handling twice for each merge...
> Sorry, I can't provide the tree. I suppose Mozilla tree can be compared
> to that thing, when it becomes available. Linux kernel is no good for
> reproducing this problem: it's too clean and compact.
The beauty of Open Source: since everyone can see your mess, you tend to
be tidier...
Ciao,
Dscho
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: What's in git.git, and announcing GIT 1.4.2-rc4
2006-08-10 14:00 ` Johannes Schindelin
@ 2006-08-10 14:30 ` Alex Riesen
0 siblings, 0 replies; 14+ messages in thread
From: Alex Riesen @ 2006-08-10 14:30 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: Junio C Hamano, git
On 8/10/06, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
> > I noticed that it spends a lot of time finding renames (diffcore_std,
> > in particular).
>
> My next plans -- after making sure that merge-recursive is accurate
> (enough) -- was to use oprofile to find the expensive spots.
BTW, it maybe subjective, but diff-tree seem to have slowed down too.
> > Why doesn't it take that much time for "diff-tree -M -r base head1" +
> > "diff-tree -M -r base head2", I wonder...? (~30 sek, for that windows box).
>
> Could it be that it has many common ancestors? You have to do the rename
> handling twice for each merge...
No. I'd notice that.
> > Sorry, I can't provide the tree. I suppose Mozilla tree can be compared
> > to that thing, when it becomes available. Linux kernel is no good for
> > reproducing this problem: it's too clean and compact.
>
> The beauty of Open Source: since everyone can see your mess, you tend to
> be tidier...
Yep. One of the reasons to have source closed: so your customers do
not see how dirty the mess they paid for is.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2006-08-10 14:30 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-10 1:29 What's in git.git, and announcing GIT 1.4.2-rc4 Junio C Hamano
2006-08-10 3:34 ` Willy Tarreau
2006-08-10 5:05 ` Junio C Hamano
2006-08-10 5:43 ` Junio C Hamano
2006-08-10 5:42 ` Willy Tarreau
2006-08-10 7:47 ` Johannes Schindelin
2006-08-10 7:59 ` Junio C Hamano
2006-08-10 8:05 ` Johannes Schindelin
2006-08-10 8:10 ` Junio C Hamano
2006-08-10 8:19 ` Junio C Hamano
2006-08-10 8:27 ` Johannes Schindelin
2006-08-10 13:34 ` Alex Riesen
2006-08-10 14:00 ` Johannes Schindelin
2006-08-10 14:30 ` Alex Riesen
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 NNTP newsgroup(s).