gitweb.git
Merge branch 'jc/fetch-progressive-stride'Junio C Hamano Sun, 27 Mar 2011 03:13:15 +0000 (20:13 -0700)

Merge branch 'jc/fetch-progressive-stride'

* jc/fetch-progressive-stride:
fetch-pack: use smaller handshake window for initial request
fetch-pack: progressively use larger handshake windows
fetch-pack: factor out hardcoded handshake window size

Conflicts:
builtin/fetch-pack.c

Merge branch 'svn-fe' of git://repo.or.cz/git/jrnJunio C Hamano Sat, 26 Mar 2011 18:35:41 +0000 (11:35 -0700)

Merge branch 'svn-fe' of git://repo.or.cz/git/jrn

* 'svn-fe' of git://repo.or.cz/git/jrn:
vcs-svn: handle log message with embedded NUL
vcs-svn: avoid unnecessary copying of log message and author
vcs-svn: remove buffer_read_string
vcs-svn: make reading of properties binary-safe

Merge git-gui 0.14.0Junio C Hamano Sat, 26 Mar 2011 17:42:26 +0000 (10:42 -0700)

Merge git-gui 0.14.0

vcs-svn: handle log message with embedded NULJonathan Nieder Sat, 26 Mar 2011 05:49:37 +0000 (00:49 -0500)

vcs-svn: handle log message with embedded NUL

Pass the log message by strbuf instead of as a C-style string and use
fwrite instead of printf to write it to fast-import so embedded '\0'
bytes can be preserved.

Currently "git log" doesn't show the embedded NULs but "git cat-file
commit" can.

While at it, stop including system headers from repo_tree.h. git
source files need to include git-compat-util.h (or cache.h or
builtin.h) sooner to ensure the appropriate feature test macros are
defined.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

vcs-svn: avoid unnecessary copying of log message and... Jonathan Nieder Fri, 25 Mar 2011 04:10:00 +0000 (23:10 -0500)

vcs-svn: avoid unnecessary copying of log message and author

Use strbuf_swap when storing the svn:log and svn:author properties, so
pointers to rather than the contents of buffers get copied. The main
effect should be to make the code a little easier to read.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

vcs-svn: remove buffer_read_stringJonathan Nieder Fri, 25 Mar 2011 04:09:19 +0000 (23:09 -0500)

vcs-svn: remove buffer_read_string

All previous users of buffer_read_string have already been converted
to use the more intuitive buffer_read_binary, so remove the old API to
avoid some confusion.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

vcs-svn: make reading of properties binary-safeJonathan Nieder Sat, 26 Mar 2011 05:15:10 +0000 (00:15 -0500)

vcs-svn: make reading of properties binary-safe

svn-fe errors out on revision 59151 of the ASF repository:

fatal: invalid dump: unexpected end of file

The proximate cause is a property with an embedded NUL character.
Previously such anomalies were ignored but commit c9d1c8ba
(2010-12-28) introduced a check strlen(val) == len to avoid reading
uninitialized data when a property list ends early and unfortunately
this test does not distinguish between "foo" followed by EOF and the
string "foo\0bar\0baz".

Fix it by using buffer_read_binary to read to a strbuf and checking
the actual length read. Most consumers of properties still use
C-style strings, so in practice an author or log message with embedded
NULs will be truncated, but a least this way svn-fe won't error out
(fixing the regression).

Reported-by: David Barr <david.barr@cordelta.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

Sync with 1.7.4.2Junio C Hamano Sat, 26 Mar 2011 00:57:08 +0000 (17:57 -0700)

Sync with 1.7.4.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.7.4.2 v1.7.4.2Junio C Hamano Sat, 26 Mar 2011 00:56:14 +0000 (17:56 -0700)

Git 1.7.4.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7607: clean up stray untracked fileJeff King Fri, 25 Mar 2011 18:09:03 +0000 (14:09 -0400)

t7607: clean up stray untracked file

This file ends up conflicting with the test just after it
(causing the "git merge" to fail). Neither test is to blame
for the bug, though. It looks like the merge in 1a9fe45
(Merge branch 'tr/merge-unborn-clobber', 2011-02-09) is what
caused the conflict.

We didn't notice because the follow-on test is already
marked as expect_failure (even though it has since been
fixed, and now succeeds once the untracked file is moved out
of the way).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7607: mark known breakage in test 11 as fixedJeff King Fri, 25 Mar 2011 18:08:36 +0000 (14:08 -0400)

t7607: mark known breakage in test 11 as fixed

This was fixed by 1d718a51 (do not overwrite untracked
symlinks, 2011-02-20).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitweb: Fix handling of fractional timezones in parse_dateJakub Narebski Fri, 25 Mar 2011 19:20:49 +0000 (20:20 +0100)

gitweb: Fix handling of fractional timezones in parse_date

Fractional timezones, like -0330 (NST used in Canada) or +0430
(Afghanistan, Iran DST), were not handled properly in parse_date; this
means values such as 'minute_local' and 'iso-tz' were not generated
correctly.

This was caused by two mistakes:

* sign of timezone was applied only to hour part of offset, and not
as it should be also to minutes part (this affected only negative
fractional timezones).

* 'int $h + $m/60' is 'int($h + $m/60)' and not 'int($h) + $m/60',
so fractional part was discarded altogether ($h is hours, $m is
minutes, which is always less than 60).

Note that positive fractional timezones +0430, +0530 and +1030 can be
found as authortime in git.git repository itself.

For example http://repo.or.cz/w/git.git/commit/88d50e7 had authortime
of "Fri, 8 Jan 2010 18:48:07 +0000 (23:48 +0530)", which is not marked
with 'atnight', when "git show 88d50e7" gives correct author date of
"Sat Jan 9 00:18:07 2010 +0530".

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'ss/git-gui-mergetool' gitgui-0.14.0Pat Thoyts Fri, 25 Mar 2011 08:26:47 +0000 (08:26 +0000)

Merge branch 'ss/git-gui-mergetool'

git-gui: detect the use of MUI langauge packs on WindowsPat Thoyts Fri, 18 Feb 2011 13:42:54 +0000 (13:42 +0000)

git-gui: detect the use of MUI langauge packs on Windows

The Tcl msgcat package doesn't detect the use of a multi-lingual language
pack on Windows 7. This means that a user may have their display language
set to Japanese but the system installed langauge was English.
This patch reads the relevent registry key to fix this before loading in
the locale specific parts of git-gui.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

Merge branch 'kc/gitweb-pathinfo-w-anchor'Junio C Hamano Wed, 23 Mar 2011 21:55:55 +0000 (14:55 -0700)

Merge branch 'kc/gitweb-pathinfo-w-anchor'

* kc/gitweb-pathinfo-w-anchor:
gitweb: fix #patchNN anchors when path_info is enabled

Merge branch 'jn/fortify-source-workaround'Junio C Hamano Wed, 23 Mar 2011 21:55:49 +0000 (14:55 -0700)

Merge branch 'jn/fortify-source-workaround'

* jn/fortify-source-workaround:
run-command: prettify -D_FORTIFY_SOURCE workaround

Merge branch 'jn/maint-c99-format'Junio C Hamano Wed, 23 Mar 2011 21:55:46 +0000 (14:55 -0700)

Merge branch 'jn/maint-c99-format'

* jn/maint-c99-format:
unbreak and eliminate NO_C99_FORMAT
mktag: avoid %td in format string

Merge branch 'lt/default-abbrev'Junio C Hamano Wed, 23 Mar 2011 21:55:40 +0000 (14:55 -0700)

Merge branch 'lt/default-abbrev'

* lt/default-abbrev:
Rename core.abbrevlength back to core.abbrev
Make the default abbrev length configurable

Merge branch 'pk/stash-apply-status-relative'Junio C Hamano Wed, 23 Mar 2011 21:55:37 +0000 (14:55 -0700)

Merge branch 'pk/stash-apply-status-relative'

* pk/stash-apply-status-relative:
Add test: git stash shows status relative to current dir
git stash: show status relative to current directory

Merge branch 'jc/maint-diff-q-filter'Junio C Hamano Wed, 23 Mar 2011 21:55:17 +0000 (14:55 -0700)

Merge branch 'jc/maint-diff-q-filter'

* jc/maint-diff-q-filter:
diff --quiet: disable optimization when --diff-filter=X is used

Merge branch 'pw/p4'Junio C Hamano Wed, 23 Mar 2011 21:54:24 +0000 (14:54 -0700)

Merge branch 'pw/p4'

* pw/p4:
git-p4: test sync new branch
git-p4: fix sync new branch regression

Update draft release notes to 1.7.5Junio C Hamano Wed, 23 Mar 2011 05:02:24 +0000 (22:02 -0700)

Update draft release notes to 1.7.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'mg/rev-list-one-side-only'Junio C Hamano Wed, 23 Mar 2011 04:38:50 +0000 (21:38 -0700)

Merge branch 'mg/rev-list-one-side-only'

* mg/rev-list-one-side-only:
git-log: put space after commit mark
t6007: test rev-list --cherry
log --cherry: a synonym
rev-list: documentation and test for --cherry-mark
revision.c: introduce --cherry-mark
rev-list/log: factor out revision mark generation
rev-list: --left/right-only are mutually exclusive
rev-list: documentation and test for --left/right-only
t6007: Make sure we test --cherry-pick
revlist.c: introduce --left/right-only for unsymmetric picking

Merge branch 'js/maint-stash-index-copy'Junio C Hamano Wed, 23 Mar 2011 04:38:25 +0000 (21:38 -0700)

Merge branch 'js/maint-stash-index-copy'

* js/maint-stash-index-copy:
stash: copy the index using --index-output instead of cp -p
stash: fix incorrect quoting in cleanup of temporary files

Merge branch 'tl/p4'Junio C Hamano Wed, 23 Mar 2011 04:38:19 +0000 (21:38 -0700)

Merge branch 'tl/p4'

* tl/p4:
git-p4: Fix error message crash in P4Sync.commit.
Teach git-p4 to ignore case in perforce filenames if configured.
git-p4: Teach gitConfig method about arguments.

Merge branch 'mg/doc-bisect-tweak-worktree'Junio C Hamano Wed, 23 Mar 2011 04:38:15 +0000 (21:38 -0700)

Merge branch 'mg/doc-bisect-tweak-worktree'

* mg/doc-bisect-tweak-worktree:
git-bisect.txt: example for bisecting with hot-fix
git-bisect.txt: streamline run presentation

Merge branch 'jn/test-sanitize-git-env'Junio C Hamano Wed, 23 Mar 2011 04:38:12 +0000 (21:38 -0700)

Merge branch 'jn/test-sanitize-git-env'

* jn/test-sanitize-git-env:
tests: scrub environment of GIT_* variables
config: drop support for GIT_CONFIG_NOGLOBAL
gitattributes: drop support for GIT_ATTR_NOGLOBAL
tests: suppress system gitattributes
tests: stop worrying about obsolete environment variables

Merge branch 'sp/maint-upload-pack-stop-early'Junio C Hamano Wed, 23 Mar 2011 04:38:06 +0000 (21:38 -0700)

Merge branch 'sp/maint-upload-pack-stop-early'

* sp/maint-upload-pack-stop-early:
upload-pack: Implement no-done capability
upload-pack: More aggressively send 'ACK %s ready'

Merge branch 'sp/maint-fetch-pack-stop-early'Junio C Hamano Wed, 23 Mar 2011 04:38:03 +0000 (21:38 -0700)

Merge branch 'sp/maint-fetch-pack-stop-early'

* sp/maint-fetch-pack-stop-early:
fetch-pack: Implement no-done capability
fetch-pack: Finish negotation if remote replies "ACK %s ready"

Merge branch 'jc/maint-rev-list-culled-boundary'Junio C Hamano Wed, 23 Mar 2011 04:37:59 +0000 (21:37 -0700)

Merge branch 'jc/maint-rev-list-culled-boundary'

* jc/maint-rev-list-culled-boundary:
list-objects.c: don't add an unparsed NULL as a pending tree

Conflicts:
list-objects.c

Merge branch 'jc/maint-fetch-alt'Junio C Hamano Wed, 23 Mar 2011 04:37:53 +0000 (21:37 -0700)

Merge branch 'jc/maint-fetch-alt'

* jc/maint-fetch-alt:
fetch-pack: objects in our alternates are available to us
refs_from_alternate: helper to use refs from alternates

Conflicts:
builtin/receive-pack.c

Merge branch 'sg/complete-symmetric-diff'Junio C Hamano Wed, 23 Mar 2011 04:37:47 +0000 (21:37 -0700)

Merge branch 'sg/complete-symmetric-diff'

* sg/complete-symmetric-diff:
bash: complete 'git diff ...branc<TAB>'
bash: fix misindented esac statement in __git_complete_file()

Merge branch 'svn-fe' of git://repo.or.cz/git/jrnJunio C Hamano Wed, 23 Mar 2011 03:51:07 +0000 (20:51 -0700)

Merge branch 'svn-fe' of git://repo.or.cz/git/jrn

* 'svn-fe' of git://repo.or.cz/git/jrn:
vcs-svn: use strchr to find RFC822 delimiter
vcs-svn: implement perfect hash for top-level keys
vcs-svn: implement perfect hash for node-prop keys
vcs-svn: use strbuf for author, UUID, and URL
vcs-svn: use strbuf for revision log
vcs-svn: improve reporting of input errors
vcs-svn: make buffer_copy_bytes return length read
vcs-svn: make buffer_skip_bytes return length read
vcs-svn: improve support for reading large files
vcs-svn: allow input errors to be detected promptly
vcs-svn: simplify repo_modify_path and repo_copy
vcs-svn: handle_node: use repo_read_path
vcs-svn: introduce repo_read_path to check the content at a path

Merge branch 'db/length-as-hash' into svn-feJonathan Nieder Tue, 22 Mar 2011 23:44:49 +0000 (18:44 -0500)

Merge branch 'db/length-as-hash' into svn-fe

* db/length-as-hash:
vcs-svn: use strchr to find RFC822 delimiter
vcs-svn: implement perfect hash for top-level keys
vcs-svn: implement perfect hash for node-prop keys

Conflicts:
vcs-svn/svndump.c

vcs-svn: use strchr to find RFC822 delimiterDavid Barr Tue, 14 Dec 2010 00:06:43 +0000 (11:06 +1100)

vcs-svn: use strchr to find RFC822 delimiter

This is a small optimisation (4% reduction in user time) but is the
largest artifact within the parsing portion of svndump.c

Signed-off-by: David Barr <david.barr@cordelta.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

vcs-svn: implement perfect hash for top-level keysDavid Barr Mon, 13 Dec 2010 08:56:01 +0000 (19:56 +1100)

vcs-svn: implement perfect hash for top-level keys

Instead of interning property names and comparing their string_pool
keys, look them up in a table by string length, which should be about
as fast.

Another small step towards removing dependence on string_pool
altogether.

Signed-off-by: David Barr <david.barr@cordelta.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

vcs-svn: implement perfect hash for node-prop keysDavid Barr Mon, 13 Dec 2010 08:13:24 +0000 (19:13 +1100)

vcs-svn: implement perfect hash for node-prop keys

Instead of interning property names and comparing their string_pool
keys, look them up in a table by string length, which should be about
as fast.

This is a small step towards removing dependence on string_pool.

Signed-off-by: David Barr <david.barr@cordelta.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

vcs-svn: use strbuf for author, UUID, and URLDavid Barr Tue, 22 Mar 2011 22:52:17 +0000 (17:52 -0500)

vcs-svn: use strbuf for author, UUID, and URL

Use strbufs and strings instead of interned strings for values of rev,
dump, and node fields that happen to be strings. After this change,
the only remaining string_pool use is for paths in the repo_tree API
and internals.

Functional change: treat an empty author, UUID, or URL as none at all.
So for example, in repos where the first revision has an empty
svn:author property, the first rev will be treated as by "nobody"
rather than by a person with empty name and email address created by
prepending an @ sign to the repository UUID.

Signed-off-by: David Barr <david.barr@cordelta.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

Merge branch 'maint'Junio C Hamano Tue, 22 Mar 2011 21:56:13 +0000 (14:56 -0700)

Merge branch 'maint'

* maint:
git-am.txt: advertise 'git am --abort' instead of 'rm .git/rebase-apply'
bisect: visualize with git-log if gitk is unavailable

vcs-svn: use strbuf for revision logDavid Barr Mon, 21 Mar 2011 23:49:50 +0000 (10:49 +1100)

vcs-svn: use strbuf for revision log

obj_pool is overkill for this application: all that is needed is a
buffer that can resize from rev to rev to accomodate differently-sized
strings. In the spirit of commit deadcef4 (2010-11-06), use a strbuf
instead.

This is a small step towards removing dependence on obj_pool.h.

Signed-off-by: David Barr <david.barr@cordelta.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

vcs-svn: improve reporting of input errorsJonathan Nieder Tue, 28 Dec 2010 10:30:54 +0000 (04:30 -0600)

vcs-svn: improve reporting of input errors

Catch input errors and exit early enough to print a reasonable
diagnosis based on errno.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Barr <david.barr@cordelta.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

vcs-svn: make buffer_copy_bytes return length readJonathan Nieder Tue, 28 Dec 2010 10:26:17 +0000 (04:26 -0600)

vcs-svn: make buffer_copy_bytes return length read

Currently buffer_copy_bytes does not report to its caller whether
it encountered an early end of file.

Add a return value representing the number of bytes read (but not
the number of bytes copied). This way all three unusual conditions
can be distinguished: input error with buffer_ferror, output error
with ferror(outfile), early end of input by checking the return
value.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Barr <david.barr@cordelta.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

vcs-svn: make buffer_skip_bytes return length readJonathan Nieder Mon, 11 Oct 2010 02:44:21 +0000 (21:44 -0500)

vcs-svn: make buffer_skip_bytes return length read

Currently there is no way to detect when input ended if it ended
early during buffer_skip_bytes. Tell the calling program how many
bytes were actually skipped for easier debugging.

Existing callers will still ignore early EOF.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Barr <david.barr@cordelta.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

vcs-svn: improve support for reading large filesJonathan Nieder Mon, 11 Oct 2010 02:46:24 +0000 (21:46 -0500)

vcs-svn: improve support for reading large files

Move from uint32_t to off_t as the fundamental unit of length used by
the line_buffer library. Performance would get worse if anything but
I think it's worth it for support of deltas that need to skip large
pieces (> 4 GiB).

Exception: buffer_read_string still takes a uint32_t, since it keeps
its result in an in-core obj_pool.

Callers still have to be updated to take advantage of this.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Barr <david.barr@cordelta.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

git-am.txt: advertise 'git am --abort' instead of ... SZEDER Gábor Tue, 22 Mar 2011 18:42:25 +0000 (19:42 +0100)

git-am.txt: advertise 'git am --abort' instead of 'rm .git/rebase-apply'

'git am --abort' is around for quite a long time now, and users should
normally not poke around inside the .git directory, yet the
documentation of 'git am' still recommends the following:

... if you decide to start over from scratch,
run `rm -f -r .git/rebase-apply` ...

Suggest 'git am --abort' instead.

It's not quite the same as the original, because 'git am --abort' will
restore the original branch, while simply removing '.git/rebase-apply'
won't, but that's rather a thinko in the original wording, because
that won't actually "start over _from scratch_".

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix sparse warningsStephen Boyd Tue, 22 Mar 2011 07:51:05 +0000 (00:51 -0700)

Fix sparse warnings

Fix warnings from 'make check'.

- These files don't include 'builtin.h' causing sparse to complain that
cmd_* isn't declared:

builtin/clone.c:364, builtin/fetch-pack.c:797,
builtin/fmt-merge-msg.c:34, builtin/hash-object.c:78,
builtin/merge-index.c:69, builtin/merge-recursive.c:22
builtin/merge-tree.c:341, builtin/mktag.c:156, builtin/notes.c:426
builtin/notes.c:822, builtin/pack-redundant.c:596,
builtin/pack-refs.c:10, builtin/patch-id.c:60, builtin/patch-id.c:149,
builtin/remote.c:1512, builtin/remote-ext.c:240,
builtin/remote-fd.c:53, builtin/reset.c:236, builtin/send-pack.c:384,
builtin/unpack-file.c:25, builtin/var.c:75

- These files have symbols which should be marked static since they're
only file scope:

submodule.c:12, diff.c:631, replace_object.c:92, submodule.c:13,
submodule.c:14, trace.c:78, transport.c:195, transport-helper.c:79,
unpack-trees.c:19, url.c:3, url.c:18, url.c:104, url.c:117, url.c:123,
url.c:129, url.c:136, thread-utils.c:21, thread-utils.c:48

- These files redeclare symbols to be different types:

builtin/index-pack.c:210, parse-options.c:564, parse-options.c:571,
usage.c:49, usage.c:58, usage.c:63, usage.c:72

- These files use a literal integer 0 when they really should use a NULL
pointer:

daemon.c:663, fast-import.c:2942, imap-send.c:1072, notes-merge.c:362

While we're in the area, clean up some unused #includes in builtin files
(mostly exec_cmd.h).

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bisect: visualize with git-log if gitk is unavailableJeff King Mon, 21 Mar 2011 13:14:22 +0000 (09:14 -0400)

bisect: visualize with git-log if gitk is unavailable

If gitk is not available in the PATH, bisect ends up
exiting with the shell's 127 error code, confusing the git
wrapper into thinking that bisect is not a git command.

We already fallback to git-log if there doesn't seem to be a
graphical display available. We should do the same if gitk
is not available in our PATH at all. This not only fixes the
ugly error message, but is a much more sensible default than
failing to show the user anything.

Reported by Maxin John.

Tested-by: Maxin B. John <maxin@maxinbjohn.info>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Rename core.abbrevlength back to core.abbrevJunio C Hamano Mon, 21 Mar 2011 05:26:24 +0000 (22:26 -0700)

Rename core.abbrevlength back to core.abbrev

It corresponds to --abbrev=$n command line option after all.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update drart release notes to 1.7.5Junio C Hamano Mon, 21 Mar 2011 05:24:24 +0000 (22:24 -0700)

Update drart release notes to 1.7.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Mon, 21 Mar 2011 05:14:47 +0000 (22:14 -0700)

Merge branch 'maint'

* maint:
Update draft release notes to 1.7.4.2
Work around broken ln on solaris as used in t8006
t/README: Add a note about running commands under valgrind

Update draft release notes to 1.7.4.2Junio C Hamano Mon, 21 Mar 2011 05:14:21 +0000 (22:14 -0700)

Update draft release notes to 1.7.4.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'sp/maint-fd-limit' into maintJunio C Hamano Mon, 21 Mar 2011 05:11:46 +0000 (22:11 -0700)

Merge branch 'sp/maint-fd-limit' into maint

* sp/maint-fd-limit:
sha1_file.c: Don't retain open fds on small packs
mingw: add minimum getrlimit() compatibility stub
Limit file descriptors used by packs

Merge branch 'mr/hpux' into maintJunio C Hamano Mon, 21 Mar 2011 05:11:15 +0000 (22:11 -0700)

Merge branch 'mr/hpux' into maint

* mr/hpux:
git-compat-util.h: Honor HP C's noreturn attribute
Makefile: add NO_FNMATCH_CASEFOLD to HP-UX section

Merge branch 'so/submodule-no-update-first-time' into... Junio C Hamano Mon, 21 Mar 2011 05:11:02 +0000 (22:11 -0700)

Merge branch 'so/submodule-no-update-first-time' into maint

* so/submodule-no-update-first-time:
t7406: "git submodule update {--merge|--rebase]" with new submodules
submodule: no [--merge|--rebase] when newly cloned

Merge branch 'mo/perl-bidi-pipe-envfix' into maintJunio C Hamano Mon, 21 Mar 2011 05:10:31 +0000 (22:10 -0700)

Merge branch 'mo/perl-bidi-pipe-envfix' into maint

* mo/perl-bidi-pipe-envfix:
perl: command_bidi_pipe() method should set-up git environmens

Merge branch 'ae/better-template-failure-report' into... Junio C Hamano Mon, 21 Mar 2011 05:09:39 +0000 (22:09 -0700)

Merge branch 'ae/better-template-failure-report' into maint

* ae/better-template-failure-report:
Improve error messages when temporary file creation fails

Work around broken ln on solaris as used in t8006Ben Walton Mon, 21 Mar 2011 01:12:26 +0000 (21:12 -0400)

Work around broken ln on solaris as used in t8006

The test setup in t8006-blame-textconv.sh uses "ln -sf" to
overwrite an existing symlink. Unfortunately, both /usr/bin/ln
and /usr/xpg4/bin/ln on solaris 9 don't properly handle -f and -s
used at the same time. This caused the test setup and subsequent
checks to fail.

Instead, remove the symlink and then create a new one in the
setup code.

The upstream Solaris bug (fixed in 10, but not 9) is documented
here:

http://bugs.opensolaris.org/view_bug.do?bug_id=4372462

Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fetch-pack: use smaller handshake window for initial... Junio C Hamano Mon, 21 Mar 2011 04:52:45 +0000 (21:52 -0700)

fetch-pack: use smaller handshake window for initial request

Start the initial request small by halving the INITIAL_FLUSH (we will try
to stay one window ahead of the server, so we would end up giving twice as
many "have" in flight at the very beginning). We may want to tweak these
values even more, taking MTU into account.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Shawn Pearce <spearce@spearce.org>

fetch-pack: progressively use larger handshake windowsJunio C Hamano Mon, 21 Mar 2011 04:52:44 +0000 (21:52 -0700)

fetch-pack: progressively use larger handshake windows

The client has to dig the history deeper when more recent parts of its
history do not have any overlap with the server it is fetching from. Make
the handshake window exponentially larger as we dig deeper, with a
reasonable upper cap.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Shawn Pearce <spearce@spearce.org>

fetch-pack: factor out hardcoded handshake window sizeJunio C Hamano Mon, 21 Mar 2011 04:52:40 +0000 (21:52 -0700)

fetch-pack: factor out hardcoded handshake window size

The "git fetch" client presents the most recent 32 commits it has to the
server and gives a chance to the server to say "ok, we heard enough", and
continues reporting what it has in chunks of 32 commits, digging its
history down to older commits.

Move the hardcoded size of the handshake window outside the code, so that
we can tweak it more easily.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Shawn Pearce <spearce@spearce.org>

Add test: git stash shows status relative to current dirPiotr Krukowiecki Mon, 14 Mar 2011 19:19:36 +0000 (20:19 +0100)

Add test: git stash shows status relative to current dir

[jc: moved "cd subdir" inside subshell and fixed comparison with expected]

Signed-off-by: Piotr Krukowiecki <piotr.krukowiecki@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/README: Add a note about running commands under valgrindCarlos Martín Nieto Tue, 15 Mar 2011 09:32:11 +0000 (10:32 +0100)

t/README: Add a note about running commands under valgrind

The test suite runs valgrind with certain options activated. Add a
note saying how to run commands under the same conditions as the test
suite does.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'mm/maint-log-n-with-diff-filtering'Junio C Hamano Sun, 20 Mar 2011 06:25:38 +0000 (23:25 -0700)

Merge branch 'mm/maint-log-n-with-diff-filtering'

* mm/maint-log-n-with-diff-filtering:
log: fix --max-count when used together with -S or -G

Merge branch 'mg/rev-list-n-reverse-doc'Junio C Hamano Sun, 20 Mar 2011 06:25:32 +0000 (23:25 -0700)

Merge branch 'mg/rev-list-n-reverse-doc'

* mg/rev-list-n-reverse-doc:
git-log.txt,rev-list-options.txt: put option blocks in proper order
git-log.txt,rev-list-options.txt: -n/--max-count is commit limiting

Merge branch 'js/rerere-forget-always-take-pathspec'Junio C Hamano Sun, 20 Mar 2011 06:24:48 +0000 (23:24 -0700)

Merge branch 'js/rerere-forget-always-take-pathspec'

* js/rerere-forget-always-take-pathspec:
rerere forget: deprecate invocation without pathspec

Merge branch 'ab/i18n-basic'Junio C Hamano Sun, 20 Mar 2011 06:24:42 +0000 (23:24 -0700)

Merge branch 'ab/i18n-basic'

* ab/i18n-basic:
i18n: "make distclean" should clean up after "make pot"
i18n: Makefile: "pot" target to extract messages marked for translation
i18n: add stub Q_() wrapper for ngettext
i18n: do not poison translations unless GIT_GETTEXT_POISON envvar is set
i18n: add GETTEXT_POISON to simulate unfriendly translator
i18n: add no-op _() and N_() wrappers
commit, status: use status_printf{,_ln,_more} helpers
commit: refer to commit template as s->fp
wt-status: add helpers for printing wt-status lines

Conflicts:
builtin/commit.c

Merge branch 'uk/ls-remote-in-get-remote-url'Junio C Hamano Sun, 20 Mar 2011 06:24:34 +0000 (23:24 -0700)

Merge branch 'uk/ls-remote-in-get-remote-url'

* uk/ls-remote-in-get-remote-url:
git-request-pull: open-code the only invocation of get_remote_url
get_remote_url(): use the same data source as ls-remote to get remote urls

Merge branch 'ss/mergetool--lib'Junio C Hamano Sun, 20 Mar 2011 06:24:27 +0000 (23:24 -0700)

Merge branch 'ss/mergetool--lib'

* ss/mergetool--lib:
mergetool--lib: Add Beyond Compare 3 as a tool
mergetool--lib: Sort tools alphabetically for easier lookup

Merge branch 'jn/status-translatable'Junio C Hamano Sun, 20 Mar 2011 06:24:19 +0000 (23:24 -0700)

Merge branch 'jn/status-translatable'

* jn/status-translatable:
commit, status: use status_printf{,_ln,_more} helpers
commit: refer to commit template as s->fp
wt-status: add helpers for printing wt-status lines

Conflicts:
builtin/commit.c

Merge branch 'jk/trace-sifter'Junio C Hamano Sun, 20 Mar 2011 06:24:12 +0000 (23:24 -0700)

Merge branch 'jk/trace-sifter'

* jk/trace-sifter:
trace: give repo_setup trace its own key
add packet tracing debug code
trace: add trace_strbuf
trace: factor out "do we want to trace" logic
trace: refactor to support multiple env variables
trace: add trace_vprintf

Merge branch 'jk/format-patch-multiline-header'Junio C Hamano Sun, 20 Mar 2011 06:24:08 +0000 (23:24 -0700)

Merge branch 'jk/format-patch-multiline-header'

* jk/format-patch-multiline-header:
format-patch: rfc2047-encode newlines in headers
format-patch: wrap long header lines
strbuf: add fixed-length version of add_wrapped_text

Merge branch 'jk/merge-rename-ux'Junio C Hamano Sun, 20 Mar 2011 06:23:56 +0000 (23:23 -0700)

Merge branch 'jk/merge-rename-ux'

* jk/merge-rename-ux:
pull: propagate --progress to merge
merge: enable progress reporting for rename detection
add inexact rename detection progress infrastructure
commit: stop setting rename limit
bump rename limit defaults (again)
merge: improve inexact rename limit warning

Merge branch 'maint'Junio C Hamano Sun, 20 Mar 2011 06:21:10 +0000 (23:21 -0700)

Merge branch 'maint'

* maint:
gitweb: Always call parse_date with timezone parameter
bisect: explain the rationale behind 125

grep: read patterns from stdin with -f -René Scharfe Sat, 19 Mar 2011 18:33:15 +0000 (19:33 +0100)

grep: read patterns from stdin with -f -

Support the well-know convention of reading standard input instead of a
named file if "-" (dash) is specified. GNU grep does the same.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitweb: Always call parse_date with timezone parameterJakub Narebski Sat, 19 Mar 2011 22:53:55 +0000 (23:53 +0100)

gitweb: Always call parse_date with timezone parameter

Timezone is required to correctly set local time, which would be needed
for future 'localtime' feature.

While at it, remove unnecessary call to the function from git_log_body,
as its return value is not used anywhere.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bisect: explain the rationale behind 125Junio C Hamano Sun, 20 Mar 2011 04:46:06 +0000 (21:46 -0700)

bisect: explain the rationale behind 125

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Fri, 18 Mar 2011 23:20:49 +0000 (16:20 -0700)

Merge branch 'maint'

* maint:
docs: fix grammar in gitattributes.txt

gitweb: fix #patchNN anchors when path_info is enabledKevin Cernekee Fri, 18 Mar 2011 16:00:16 +0000 (17:00 +0100)

gitweb: fix #patchNN anchors when path_info is enabled

When $feature{'pathinfo'} is used, gitweb script sets the base URL to
itself, so that relative links to static files work correctly. It
does it by adding something like below to HTML head:

<base href="http://HOST/gitweb.cgi">

This breaks the "patch" anchor links seen on the commitdiff pages,
because these links, being relative (<a href="#patch1">), are resolved
(computed) relative to the base URL and not relative to current URL,
i.e. as:

http://HOST/gitweb.cgi#patch1

Instead, they should look like this:

http://HOST/gitweb.cgi/myproject.git/commitdiff/35a9811ef9d68eae9afd76bede121da4f89b448c#patch1

Add an "-anchor" parameter to href(), and use href(-anchor=>"patch1")
to generate "patch" anchor links, so that the full path is included in
the patch link.

While at it, convert

print "foo";
print "bar";

to

print "foo" .
"bar";

in the neighborhood of changes.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

docs: fix grammar in gitattributes.txtAlexei Sholik Fri, 18 Mar 2011 13:14:27 +0000 (15:14 +0200)

docs: fix grammar in gitattributes.txt

[jc: with a fixlet from Marc Branchaud]

Signed-off-by: Alexei Sholik <alcosholik@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fetch-pack: objects in our alternates are available... Junio C Hamano Fri, 11 Mar 2011 19:53:52 +0000 (11:53 -0800)

fetch-pack: objects in our alternates are available to us

Use the helper function split from the receiving end of "git push" to
allow the same optimization on the receiving end of "git fetch".

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>

refs_from_alternate: helper to use refs from alternatesJunio C Hamano Fri, 11 Mar 2011 19:32:53 +0000 (11:32 -0800)

refs_from_alternate: helper to use refs from alternates

The receiving end of "git push" advertises the objects that the repository
itself does not use, but are at the tips of refs in other repositories
whose object databases are used as alternates for it. This helps it avoid
having to receive (and the pusher having to send) objects that are already
available to the receiving repository via the alternates mechanism.

Tweak the helper function that implements this feature, and move it to
transport.[ch] for future reuse by other programs.

The additional test demonstrates how this optimization is helping "git push",
and "git fetch" is ignorant about it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>

Name make_*_path functions more accuratelyCarlos Martín Nieto Thu, 17 Mar 2011 11:26:46 +0000 (12:26 +0100)

Name make_*_path functions more accurately

Rename the make_*_path functions so it's clearer what they do, in
particlar make clear what the differnce between make_absolute_path and
make_nonrelative_path is by renaming them real_path and absolute_path
respectively. make_relative_path has an understandable name and is
renamed to relative_path to maintain the name convention.

The function calls have been replaced 1-to-1 in their usage.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

run-command: prettify -D_FORTIFY_SOURCE workaroundJonathan Nieder Wed, 16 Mar 2011 07:32:39 +0000 (02:32 -0500)

run-command: prettify -D_FORTIFY_SOURCE workaround

Current gcc + glibc with -D_FORTIFY_SOURCE try very aggressively to
protect against a programming style which uses write(...) without
checking the return value for errors. Even the usual hint of casting
to (void) does not suppress the warning.

Sometimes when there is an output error, especially right before exit,
there really is nothing to be done. The obvious solution, adopted in
v1.7.0.3~20^2 (run-command.c: fix build warnings on Ubuntu,
2010-01-30), is to save the return value to a dummy variable:

ssize_t dummy;
dummy = write(...);

But that (1) is ugly and (2) triggers -Wunused-but-set-variable
warnings with gcc-4.6 -Wall, so we are not much better off than when
we started.

Instead, use an "if" statement with an empty body to make the intent
clear.

if (write(...))
; /* yes, yes, there was an error. */

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Improved-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

unbreak and eliminate NO_C99_FORMATJonathan Nieder Wed, 16 Mar 2011 05:15:31 +0000 (00:15 -0500)

unbreak and eliminate NO_C99_FORMAT

In the spirit of v1.5.0.2~21 (Check for PRIuMAX rather than
NO_C99_FORMAT in fast-import.c, 2007-02-20), use PRIuMAX from
git-compat-util.h on all platforms instead of C99-specific formats
like %zu with dangerous fallbacks to %u or %lu.

So now C99-challenged platforms can build git without provoking
warnings or errors from printf, even if pointers do not have the same
size as an int or long.

The need for a fallback PRIuMAX is detected in git-compat-util.h with
"#ifndef PRIuMAX". So while at it, simplify the Makefile and configure
script by eliminating the NO_C99_FORMAT knob altogether.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

mktag: avoid %td in format stringJonathan Nieder Wed, 16 Mar 2011 05:14:22 +0000 (00:14 -0500)

mktag: avoid %td in format string

Since v1.7.0-rc0~34 (make "mktag" a built-in, 2010-01-22), git mktag
uses the C99-style %td format to print ptrdiff_t values. It falls
back to %d when NO_C99_FORMAT is set, on the assumption that pre-C99
systems probably are using 32-bit pointers.

But many modern systems are 64-bit and

* sometimes one wants to test the NO_C99_FORMAT fallbacks using a
modern development platform;
* some platforms (I'm looking at you, msvc) have not gotten with the
program and are still C89-only.

These ptrdiff_t values are offsets from the beginning of a buffer, so
a size_t or uintmax_t would work about as well. Use the latter so we
can take advantage of the PRIuMAX fallback in git-compat-util.h, even
on C99-challenged systems with 64-bit pointers.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

stash: copy the index using --index-output instead... Johannes Sixt Wed, 16 Mar 2011 08:18:49 +0000 (09:18 +0100)

stash: copy the index using --index-output instead of cp -p

'git stash create' must operate with a temporary index. For this purpose,
it used 'cp -p' to create a copy. -p is needed to preserve the timestamp
of the index file. Now Jakob Pfender reported a certain combination of
a Linux NFS client, OpenBSD NFS server, and cp implementation where this
operation failed.

Luckily, the first operation in git-stash after copying the index is to
call 'git read-tree'. Therefore, use --index-output instead of 'cp -p'
to write the copy of the index.

--index-output requires that the specified file is on the same volume as
the source index, so that the lock file can be rename()d. For this reason,
the name of the temporary index is constructed in a way different from the
other temporary files. The code path of 'stash -p' also needs a temporary
index, but we do not use the new name because it does not depend on the
same precondition as --index-output.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

stash: fix incorrect quoting in cleanup of temporary... Johannes Sixt Wed, 16 Mar 2011 08:14:33 +0000 (09:14 +0100)

stash: fix incorrect quoting in cleanup of temporary files

The * was inside the quotes, so that the pattern was never expanded and the
temporary files were never removed. As a consequence, 'stash -p' left a
.git-stash-*-patch file in $GIT_DIR. Other code paths did not leave files
behind because they removed the temporary file themselves, at least in
non-error paths.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

RelNotes/1.7.5.txt: typo and language fixesMichael J Gruber Wed, 16 Mar 2011 09:23:23 +0000 (10:23 +0100)

RelNotes/1.7.5.txt: typo and language fixes

Also remove entries for fixes that are already present in the
maintenance track.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Wed, 16 Mar 2011 23:59:30 +0000 (16:59 -0700)

Merge branch 'maint'

* maint:
Prepare draft release notes to 1.7.4.2
gitweb: highlight: replace tabs with spaces
make_absolute_path: return the input path if it points to our buffer
valgrind: ignore SSE-based strlen invalid reads
diff --submodule: split into bite-sized pieces
cherry: split off function to print output lines
branch: split off function that writes tracking info and commit subject
standardize brace placement in struct definitions
compat: make gcc bswap an inline function
enums: omit trailing comma for portability

Conflicts:
RelNotes

Prepare draft release notes to 1.7.4.2Junio C Hamano Wed, 16 Mar 2011 23:29:03 +0000 (16:29 -0700)

Prepare draft release notes to 1.7.4.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jn/maint-commit-missing-template' into... Junio C Hamano Wed, 16 Mar 2011 23:47:26 +0000 (16:47 -0700)

Merge branch 'jn/maint-commit-missing-template' into maint

* jn/maint-commit-missing-template:
commit: error out for missing commit message template

Merge branch 'lt/rename-no-extra-copy-detection' into... Junio C Hamano Wed, 16 Mar 2011 23:47:26 +0000 (16:47 -0700)

Merge branch 'lt/rename-no-extra-copy-detection' into maint

* lt/rename-no-extra-copy-detection:
diffcore-rename: improve estimate_similarity() heuristics
diffcore-rename: properly honor the difference between -M and -C
for_each_hash: allow passing a 'void *data' pointer to callback

Merge branch 'jk/diffstat-binary' into maintJunio C Hamano Wed, 16 Mar 2011 23:47:26 +0000 (16:47 -0700)

Merge branch 'jk/diffstat-binary' into maint

* jk/diffstat-binary:
diff: don't retrieve binary blobs for diffstat
diff: handle diffstat of rewritten binary files

Merge branch 'mg/maint-difftool-vim-readonly' into... Junio C Hamano Wed, 16 Mar 2011 23:47:26 +0000 (16:47 -0700)

Merge branch 'mg/maint-difftool-vim-readonly' into maint

* mg/maint-difftool-vim-readonly:
mergetool-lib: call vim in readonly mode for diffs

Merge branch 'jn/test-terminal-punt-on-osx-breakage... Junio C Hamano Wed, 16 Mar 2011 23:47:26 +0000 (16:47 -0700)

Merge branch 'jn/test-terminal-punt-on-osx-breakage' into maint

* jn/test-terminal-punt-on-osx-breakage:
tests: skip terminal output tests on OS X

Merge branch 'jk/fail-null-clone' into maintJunio C Hamano Wed, 16 Mar 2011 23:47:26 +0000 (16:47 -0700)

Merge branch 'jk/fail-null-clone' into maint

* jk/fail-null-clone:
clone: die when trying to clone missing local path

Merge branch 'jh/push-default-upstream-configname'... Junio C Hamano Wed, 16 Mar 2011 23:47:26 +0000 (16:47 -0700)

Merge branch 'jh/push-default-upstream-configname' into maint

* jh/push-default-upstream-configname:
push.default: Rename 'tracking' to 'upstream'

Merge branch 'mg/placeholders-are-lowercase' into maintJunio C Hamano Wed, 16 Mar 2011 23:47:25 +0000 (16:47 -0700)

Merge branch 'mg/placeholders-are-lowercase' into maint

* mg/placeholders-are-lowercase:
Make <identifier> lowercase in Documentation
Make <identifier> lowercase as per CodingGuidelines
Make <identifier> lowercase as per CodingGuidelines
Make <identifier> lowercase as per CodingGuidelines
CodingGuidelines: downcase placeholders in usage messages

Merge branch 'mg/patch-id' into maintJunio C Hamano Wed, 16 Mar 2011 23:47:25 +0000 (16:47 -0700)

Merge branch 'mg/patch-id' into maint

* mg/patch-id:
git-patch-id: do not trip over "no newline" markers
git-patch-id: test for "no newline" markers

Merge branch 'js/maint-merge-use-prepare-commit-msg... Junio C Hamano Wed, 16 Mar 2011 23:47:25 +0000 (16:47 -0700)

Merge branch 'js/maint-merge-use-prepare-commit-msg-hook' into maint

* js/maint-merge-use-prepare-commit-msg-hook:
merge: honor prepare-commit-msg hook