git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* What's in git.git
@ 2006-10-17  7:44 Junio C Hamano
  2006-10-17 17:16 ` Linus Torvalds
  0 siblings, 1 reply; 8+ messages in thread
From: Junio C Hamano @ 2006-10-17  7:44 UTC (permalink / raw)
  To: git

* The 'maint' branch has this fix and produced 1.4.2.4 release.

   Linus Torvalds (1):
      Fix hash function in xdiff library


* The 'master' branch has these since the last announcement.
  The fix in 'maint' is also included.  Hopefully we can cut the
  real 1.4.3 with this sometime this week.

   Junio C Hamano (1):
      Revert "move pack creation to version 3"

   Petr Baudis (1):
      svnimport: Fix broken tags being generated

   Rene Scharfe (2):
      Make write_sha1_file_prepare() void
      Replace open-coded version of hash_sha1_file()


* The 'next' branch, in addition, has these.

   Alan Chandler (1):
      Gitweb - provide site headers and footers

   Andy Whitcroft (2):
      cvsimport: move over to using git-for-each-ref to read refs.
      git-for-each-ref: improve the documentation on scripting modes

   Christian Couder (12):
      Add [-s|--hash] option to Linus' show-ref.
      Use Linus' show ref in "git-branch.sh".
      Document git-show-ref [-s|--hash] option.
      Fix show-ref usage for --dereference.
      Add pack-refs and show-ref test cases.
      When creating branch c/d check that branch c does not already exists.
      Uncomment test case: git branch c/d should barf if branch c exists.
      Fix a remove_empty_dir_recursive problem.
      Clean up "git-branch.sh" and add remove recursive dir test cases.
      Use git-update-ref to delete a tag instead of rm()ing the ref file.
      Check that a tag exists using show-ref instead of looking for the ref file.
      Do not create tag leading directories since git update-ref does it.

   Dennis Stosberg (2):
      lock_ref_sha1_basic does not remove empty directories on BSD
      Remove bashism from t3210-pack-refs.sh

   Jeff King (3):
      wt-status: use simplified resolve_ref to find current branch
      gitignore: git-pack-refs is a generated file.
      gitignore: git-show-ref is a generated file.

   Johannes Schindelin (3):
      Fix git-update-index --again
      show-branch: mark active branch with a '*' again
      Turn on recursive with --summary

   Jonas Fonseca (1):
      Add man page for git-show-ref

   Junio C Hamano (55):
      upload-pack: stop the other side when they have more roots than we do.
      Add git-for-each-ref: helper for language bindings
      Fix t1400-update-ref test minimally
      fsck-objects: adjust to resolve_ref() clean-up.
      symbolit-ref: fix resolve_ref conversion.
      Add callback data to for_each_ref() family.
      Tell between packed, unpacked and symbolic refs.
      pack-refs: do not pack symbolic refs.
      git-pack-refs --prune
      pack-refs: fix git_path() usage.
      lock_ref_sha1_basic: remove unused parameter "plen".
      Clean-up lock-ref implementation
      update-ref: -d flag and ref creation safety.
      update a few Porcelain-ish for ref lock safety.
      Teach receive-pack about ref-log
      receive-pack: call setup_ident before git_config
      grep --all-match
      teach revision walker about --all-match.
      git-diff/git-apply: make diff output a bit friendlier to GNU patch (part 1)
      ref locking: allow 'foo' when 'foo/bar' used to exist but not anymore.
      refs: minor restructuring of cached refs data.
      lock_ref_sha1(): do not sometimes error() and sometimes die().
      lock_ref_sha1(): check D/F conflict with packed ref when creating.
      delete_ref(): delete packed ref
      git-branch: remove D/F check done by hand.
      show-ref --hash=len, --abbrev=len, and --abbrev
      git-fetch: adjust to packed-refs.
      Fix refs.c;:repack_without_ref() clean-up path
      gitweb: make leftmost column of blame less cluttered.
      git-fetch: do not look into $GIT_DIR/refs to see if a tag exists.
      pack-refs: use lockfile as everybody else does.
      gitweb: prepare for repositories with packed refs.
      Revert 954a6183756a073723a7c9fd8d2feb13132876b0
      pack-refs: call fflush before fsync.
      blame.c: whitespace and formatting clean-up.
      git-blame: --show-number (and -n)
      git-blame: --show-name (and -f)
      blame.c: move code to output metainfo into a separate function.
      git-send-email: do not drop custom headers the user prepared
      ref-log: allow ref@{count} syntax.
      git-send-email: real name with period need to be dq-quoted on From: line
      git-blame --porcelain
      gitweb: use blame --porcelain
      Make git-send-email detect mbox-style patches more readily
      core.logallrefupdates create new log file only for branch heads.
      git-pack-refs --all
      core.logallrefupdates thinko-fix
      pack-objects: document --delta-base-offset option
      blame: Document and add help text for -f, -n, and -p
      gitweb: spell "blame --porcelain" with -p
      git-repack: repo.usedeltabaseoffset
      diff --numstat
      pack-objects: use of version 3 delta is now optional.
      gitweb: use for-each-ref to show the latest activity across branches
      Revert "pack-objects: use of version 3 delta is now optional."

   Linus Torvalds (6):
      Add "git show-ref" builtin command
      Teach "git checkout" to use git-show-ref
      Start handling references internally as a sorted in-memory list
      Add support for negative refs
      Make ref resolution saner
      Enable the packed refs file format

   Luben Tuikov (4):
      gitweb: blame: print commit-8 on the leading row of a commit-block
      gitweb: blame: Mouse-over commit-8 shows author and date
      gitweb: blame porcelain: lineno and orig lineno swapped
      git-revert with conflicts to behave as git-merge with conflicts

   Martin Waitz (2):
      gitweb: start to generate PATH_INFO URLs.
      gitweb: warn if feature cannot be overridden.

   Matthew Wilcox (1):
      Add --dry-run option to git-send-email

   Nicolas Pitre (8):
      introduce delta objects with offset to base
      teach git-unpack-objects about deltas with offset to base
      teach git-index-pack about deltas with offset to base
      make git-pack-objects able to create deltas with offset to base
      make pack data reuse compatible with both delta types
      let the GIT native protocol use offsets to delta base when possible
      zap a debug remnant
      allow delta data reuse even if base object is a preferred base

   Petr Baudis (5):
      Fix broken sha1 locking
      Fix buggy ref recording
      gitweb: Document features better
      gitweb: Fix search form when PATH_INFO is enabled
      bisect reset: Leave the tree in usable state if git-checkout failed

   Rene Scharfe (2):
      git-archive --format=zip: use default version ID
      git-archive --format=zip: add symlink support

   Robert Shearman (2):
      git-rebase: Use --ignore-if-in-upstream option when executing git-format-patch.
      git-rebase: Add a -v option to show a diffstat of the changes upstream at the start of a rebase.

   Ryan Anderson (1):
      Remove git-annotate.perl and create a builtin-alias for git-blame

   Santi Béjar (2):
      fetch: Misc output cleanup
      merge and resolve: Output short hashes and .. in "Updating ..."

   Sasha Khapyorsky (1):
      git-svnimport.perl: copying directory from original SVN place


* The 'pu' branch, in addition, has these.

   Junio C Hamano (17):
      git-diff/git-apply: make diff output a bit friendlier to GNU patch (part 2)
      para-walk: walk n trees, index and working tree in parallel
      para walk wip
      merge: loosen overcautious "working file will be lost" check.
      git-pickaxe: blame rewritten.
      git-pickaxe: minimally use revision machinery.
      git-pickaxe: fix output for more than one paths from the same commit.
      git-pickaxe: fix "bottom" commit handling.
      git-pickaxe: allow using non -u0 diff internally.
      git-pickaxe: use linked list of blame entries.
      git-pickaxe: collapse trivial blame entry.
      git-pickaxe: blame line movements within a file.
      git-pickaxe: blame cut-and-pasted lines.
      git-pickaxe: -M, -C, and -C -C
      git-pickaxe: optimize nth_line()
      git-pickaxe: make -C (copy from other file) take immediate blame.
      git-pickaxe: document -M, -C, and -C -C

   Petr Baudis (1):
      gitweb: Show project README if available

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: What's in git.git
  2006-10-17  7:44 What's in git.git Junio C Hamano
@ 2006-10-17 17:16 ` Linus Torvalds
  2006-10-17 18:08   ` [PATCH] add proper dependancies on the xdiff source Andy Whitcroft
                     ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Linus Torvalds @ 2006-10-17 17:16 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git



On Tue, 17 Oct 2006, Junio C Hamano wrote:
>
> * The 'maint' branch has this fix and produced 1.4.2.4 release.
> 
>    Linus Torvalds (1):
>       Fix hash function in xdiff library

There's two things to note about this:

 - the libxdiff dependencies are broken, so it's likely that you need to 
   do a "make clean; make" to actually see the result of this.

   We really should fix this. I was bitten by this _again_ when I wanted 
   to do some performance testing, and was scratching my head about why it 
   didn't seem to matter.

   I haven't looked into which part of the Makefile is broken yet, so I 
   really don't know what's broken, but maybe somebody who likes makefiles 
   could take a look? Basically, doing a

	touch xdiff/xmacros.h

   should cause a recompile of a lot more than it causes.

 - while the hash function problem _can_ cause really huge slowdowns in 
   some unlucky situations, it actually causes noticeable performance 
   issues even for normal situations.

   For example, for me on a 2GHz merom machine in the current git 
   directory:

   Before:

	[torvalds@merom git]$ time ./git log -p | wc -l
	746211
	
	real    0m27.223s
	user    0m26.894s
	sys     0m0.424s

   After:

	[torvalds@merom git]$ time ./git log -p | wc -l
	746211
	
	real    0m9.638s
	user    0m9.329s
	sys     0m0.468s

   so there's a factor-of-three difference here even on a "normal" load 
   like git itself. You don't need a huge file with tons of changes to see 
   the effect of this.

So we should fix the makefile to add whatever proper header file 
dependencies, but we should also make sure that whoever builds binaries 
has done a "make clean", otherwise the fix is potentially hidden.

		Linus

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH] add proper dependancies on the xdiff source
  2006-10-17 17:16 ` Linus Torvalds
@ 2006-10-17 18:08   ` Andy Whitcroft
  2006-10-17 18:22     ` Ryan Anderson
  2006-10-17 18:15   ` What's in git.git Davide Libenzi
  2006-10-17 18:19   ` Junio C Hamano
  2 siblings, 1 reply; 8+ messages in thread
From: Andy Whitcroft @ 2006-10-17 18:08 UTC (permalink / raw)
  To: git

We are not rebuilding the xdiff library when its header files change.
Add dependancies for those to the main Makefile.

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
---
diff --git a/Makefile b/Makefile
index 932bcb9..3e54f75 100644
--- a/Makefile
+++ b/Makefile
@@ -768,6 +768,8 @@ git-http-push$X: revision.o http.o http-
 	rm -f $@ && $(AR) rcs $@ $(LIB_OBJS)
 
 XDIFF_OBJS=xdiff/xdiffi.o xdiff/xprepare.o xdiff/xutils.o xdiff/xemit.o
+$(XDIFF_OBJS): xdiff/xinclude.h xdiff/xmacros.h xdiff/xdiff.h xdiff/xtypes.h \
+	xdiff/xutils.h xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
 
 $(XDIFF_LIB): $(XDIFF_OBJS)
 	rm -f $@ && $(AR) rcs $@ $(XDIFF_OBJS)

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: What's in git.git
  2006-10-17 17:16 ` Linus Torvalds
  2006-10-17 18:08   ` [PATCH] add proper dependancies on the xdiff source Andy Whitcroft
@ 2006-10-17 18:15   ` Davide Libenzi
  2006-10-17 18:19   ` Junio C Hamano
  2 siblings, 0 replies; 8+ messages in thread
From: Davide Libenzi @ 2006-10-17 18:15 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Junio C Hamano, git

On Tue, 17 Oct 2006, Linus Torvalds wrote:

>  - while the hash function problem _can_ cause really huge slowdowns in 
>    some unlucky situations, it actually causes noticeable performance 
>    issues even for normal situations.

Yes, using a 32 bits multiplier on a 64 bits machine transform the almost 
O(1) hash performance to a crappy O(N) list performance. you notice that 
in every diff operation, independently from the content.



- Davide

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: What's in git.git
  2006-10-17 17:16 ` Linus Torvalds
  2006-10-17 18:08   ` [PATCH] add proper dependancies on the xdiff source Andy Whitcroft
  2006-10-17 18:15   ` What's in git.git Davide Libenzi
@ 2006-10-17 18:19   ` Junio C Hamano
  2006-10-17 18:53     ` Linus Torvalds
  2006-10-17 18:57     ` Andy Whitcroft
  2 siblings, 2 replies; 8+ messages in thread
From: Junio C Hamano @ 2006-10-17 18:19 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: git

Linus Torvalds <torvalds@osdl.org> writes:

> There's two things to note about this:
>
>  - the libxdiff dependencies are broken, so it's likely that you need to 
>    do a "make clean; make" to actually see the result of this.

Eh, stupid-and-obvious like this perhaps.

---

diff --git a/Makefile b/Makefile
index 2c7c338..3fed480 100644
--- a/Makefile
+++ b/Makefile
@@ -237,6 +237,7 @@ PYMODULES = \
 
 LIB_FILE=libgit.a
 XDIFF_LIB=xdiff/lib.a
+$(XDIFF_LIB): $(wildcard xdiff/*.[ch])
 
 LIB_H = \
 	archive.h blob.h cache.h commit.h csum-file.h delta.h grep.h \

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] add proper dependancies on the xdiff source
  2006-10-17 18:08   ` [PATCH] add proper dependancies on the xdiff source Andy Whitcroft
@ 2006-10-17 18:22     ` Ryan Anderson
  0 siblings, 0 replies; 8+ messages in thread
From: Ryan Anderson @ 2006-10-17 18:22 UTC (permalink / raw)
  To: Andy Whitcroft; +Cc: git

On 10/17/06, Andy Whitcroft <apw@shadowen.org> wrote:
> We are not rebuilding the xdiff library when its header files change.
> Add dependancies for those to the main Makefile.
>
> Signed-off-by: Andy Whitcroft <apw@shadowen.org>

Acked-by: Ryan Anderson <ryan@google.com>

(I had a different variation on the same change just about ready to
mail, but the dependencies match.  For a simple verification, "gcc -MM
xdiff.c" is a good tool.)

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: What's in git.git
  2006-10-17 18:19   ` Junio C Hamano
@ 2006-10-17 18:53     ` Linus Torvalds
  2006-10-17 18:57     ` Andy Whitcroft
  1 sibling, 0 replies; 8+ messages in thread
From: Linus Torvalds @ 2006-10-17 18:53 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git



On Tue, 17 Oct 2006, Junio C Hamano wrote:
> 
> Eh, stupid-and-obvious like this perhaps.

I'm not convinced that is enough. You need to make the individual 
xdiff/*.c files depend on the xdiff/*.h files, because otherwise it will 
think that the *.o files are up-to-date and just re-link the archive.

The kernel does automatic dependency generation for all the *.c files, and 
it's _really_ nice. Having to do dependencies by hand is just always going 
to suck. But the kernel can depend on more things (in particular, the 
kernel can depend on gcc, and use things like "-MD,$(depfile)" to generate 
lists of dependencies while building, so that any object file _always_ has 
the things it depended upn explicitly listed).

But in the absense of those kinds of really clever and powerful tricks, it 
might be worthwhile to even just have a "mkdepend" scrupt thing and 
include the end result into the Makefile (we do already depend on GNU 
make).

That would allow us to get the real dependencies (and minimal! right now 
we sometimes compile too _much_ just because some of our dependencies are 
so screwed up and lazy).

			Linus

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: What's in git.git
  2006-10-17 18:19   ` Junio C Hamano
  2006-10-17 18:53     ` Linus Torvalds
@ 2006-10-17 18:57     ` Andy Whitcroft
  1 sibling, 0 replies; 8+ messages in thread
From: Andy Whitcroft @ 2006-10-17 18:57 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Linus Torvalds, git

Junio C Hamano wrote:
> Linus Torvalds <torvalds@osdl.org> writes:
> 
>> There's two things to note about this:
>>
>>  - the libxdiff dependencies are broken, so it's likely that you need to 
>>    do a "make clean; make" to actually see the result of this.
> 
> Eh, stupid-and-obvious like this perhaps.
> 
> ---
> 
> diff --git a/Makefile b/Makefile
> index 2c7c338..3fed480 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -237,6 +237,7 @@ PYMODULES = \
>  
>  LIB_FILE=libgit.a
>  XDIFF_LIB=xdiff/lib.a
> +$(XDIFF_LIB): $(wildcard xdiff/*.[ch])

To combine your more succinct style with my previous patch, its the link
between the .o's and the .h's thats missing.

$(XDIFF_OBJS): $(wildcard xdiff/*.h)

-apw

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2006-10-17 18:58 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-17  7:44 What's in git.git Junio C Hamano
2006-10-17 17:16 ` Linus Torvalds
2006-10-17 18:08   ` [PATCH] add proper dependancies on the xdiff source Andy Whitcroft
2006-10-17 18:22     ` Ryan Anderson
2006-10-17 18:15   ` What's in git.git Davide Libenzi
2006-10-17 18:19   ` Junio C Hamano
2006-10-17 18:53     ` Linus Torvalds
2006-10-17 18:57     ` Andy Whitcroft

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