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
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()
Junio 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
Jonathan 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
David 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>
David 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>
David 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>
David 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>
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
David 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>
Jonathan 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>
Jonathan 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>
Jonathan 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>
Jonathan 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>
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>
Stephen 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>
Jeff 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>
Junio 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>
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
Junio 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>
Junio 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
Junio 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
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
Junio 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
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
Ben 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>
Carlos 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>
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
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
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
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
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
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
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
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
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
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
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
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>
Jakub 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>
Junio 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>
Junio C Hamano [Fri, 18 Mar 2011 23:20:49 +0000 (16:20 -0700)]
Merge branch 'maint'
* maint:
docs: fix grammar in gitattributes.txt
Alexei 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>
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>
Junio 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>
Carlos 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>
Michael 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>
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
Junio 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>
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
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
Junio 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
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
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
Junio 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
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'
Junio 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
Junio 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
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
Kevin Cernekee [Wed, 16 Mar 2011 22:34:13 +0000 (15:34 -0700)]
gitweb: highlight: replace tabs with spaces
Consider the following code fragment:
/*
* test
*/
vim ":set list" mode shows that the first character on each line is a
tab:
^I/*$
^I * test$
^I */$
By default, the "highlight" program will retain the tabs in the HTML
output:
$ highlight --fragment --syntax c test.c
<span class="hl com">/*</span>
<span class="hl com"> * test</span>
<span class="hl com"> */</span>
vim list mode:
^I<span class="hl com">/*</span>$
<span class="hl com">^I * test</span>$
<span class="hl com">^I */</span>$
In gitweb, this winds up looking something like:
1 /*
2 * test
3 */
I tried both Firefox and Opera and saw the same behavior.
The desired output is:
1 /*
2 * test
3 */
This can be accomplished by specifying "--replace-tabs=8" on the
highlight command line.
Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Acked-by: John 'Warthog9' Hawley <warthog9@eaglescrag.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Carlos Martín Nieto [Wed, 16 Mar 2011 16:06:17 +0000 (17:06 +0100)]
make_absolute_path: return the input path if it points to our buffer
Some codepaths call make_absolute_path with its own return value as
input. In such a cases, return the path immediately.
This fixes a valgrind-discovered error, whereby we tried to copy a
string onto itself.
Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Carlos Martín Nieto [Wed, 16 Mar 2011 11:46:01 +0000 (12:46 +0100)]
valgrind: ignore SSE-based strlen invalid reads
Some versions of strlen use SSE to speed up the calculation and load 4
bytes at a time, even if it means reading past the end of the
allocated memory. This read is safe and when the strlen function is
inlined, it is not replaced by valgrind, which reports a
false-possitive.
Tell valgrind to ignore this particular error, as the read is, in
fact, safe. Current upstream-released version 3.6.1 is affected. Some
distributions have this fixed in their latest versions.
Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Wed, 16 Mar 2011 07:02:42 +0000 (02:02 -0500)]
vcs-svn: remove spurious semicolons
trp_gen is not a statement or function call, so it should not be
followed with a semicolon. Noticed by gcc -pedantic.
vcs-svn/repo_tree.c:41:81: warning: ISO C does not allow extra ';'
outside of a function [-pedantic]
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Wed, 16 Mar 2011 07:14:11 +0000 (02:14 -0500)]
diff --submodule: split into bite-sized pieces
Introduce two functions:
- prepare_submodule_summary prepares the revision walker
to list changes in a submodule. That is, it:
* finds merge bases between the commits pointed to this
path from before ("left") and after ("right") the change;
* checks whether this is a fast-forward or fast-backward;
* prepares a revision walk to list commits in the symmetric
difference between the commits at each endpoint.
It returns nonzero on error.
- print_submodule_summary runs the revision walk and saves
the result to a strbuf in --left-right format.
The goal is just readability. No functional change intended.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Wed, 16 Mar 2011 07:12:48 +0000 (02:12 -0500)]
cherry: split off function to print output lines
Readers uninterested in the details of "git cherry"'s output format
can see
print_commit('-', commit, verbose, abbrev);
and ignore the details.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Wed, 16 Mar 2011 07:10:14 +0000 (02:10 -0500)]
branch: split off function that writes tracking info and commit subject
Introduce a add_verbose_info function that takes care of adding
- an abbreviated object name;
- a summary of the form [ahead x, behind y] of the relationship
to the corresponding upstream branch;
- a one line commit subject
for the tip commit of a branch, for use in "git branch -v" output.
No functional change intended. This just unindents the code a little
and makes it easier to skip on first reading.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Wed, 16 Mar 2011 07:08:34 +0000 (02:08 -0500)]
standardize brace placement in struct definitions
In a struct definitions, unlike functions, the prevailing style is for
the opening brace to go on the same line as the struct name, like so:
struct foo {
int bar;
char *baz;
};
Indeed, grepping for 'struct [a-z_]* {$' yields about 5 times as many
matches as 'struct [a-z_]*$'.
Linus sayeth:
Heretic people all over the world have claimed that this inconsistency
is ... well ... inconsistent, but all right-thinking people know that
(a) K&R are _right_ and (b) K&R are right.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Wed, 16 Mar 2011 07:00:49 +0000 (02:00 -0500)]
compat: make gcc bswap an inline function
Without this change, gcc -pedantic warns:
cache.h: In function 'ce_to_dtype':
cache.h:270:21: warning: ISO C forbids braced-groups within expressions [-pedantic]
An inline function is more readable anyway.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Wed, 16 Mar 2011 06:59:10 +0000 (01:59 -0500)]
enums: omit trailing comma for portability
Since v1.7.2-rc0~23^2~2 (Add per-repository eol normalization,
2010-05-19), building with gcc -std=gnu89 -pedantic produces warnings
like the following:
convert.c:21:11: warning: comma at end of enumerator list [-pedantic]
gcc is right to complain --- these commas are not permitted in C89.
In the spirit of v1.7.2-rc0~32^2~16 (2010-05-14), remove them.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 16 Mar 2011 07:17:05 +0000 (00:17 -0700)]
Merge branch 'nd/struct-pathspec'
* nd/struct-pathspec:
declare 1-bit bitfields to be unsigned
Jonathan Nieder [Wed, 16 Mar 2011 03:42:32 +0000 (22:42 -0500)]
declare 1-bit bitfields to be unsigned
As "gcc -pedantic" notices, a two's complement 1-bit signed integer
cannot represent the value '1'.
dir.c: In function 'init_pathspec':
dir.c:1291:4: warning: overflow in implicit constant conversion [-Woverflow]
In the spirit of v1.7.1-rc1~10 (2010-04-06), 'unsigned' is what was
intended, so let's make the flags unsigned.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 15 Mar 2011 22:17:54 +0000 (15:17 -0700)]
Update draft release notes to 1.7.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 15 Mar 2011 21:23:04 +0000 (14:23 -0700)]
Merge branch 'jk/strbuf-vaddf'
* jk/strbuf-vaddf:
compat: fall back on __va_copy if available
strbuf: add strbuf_vaddf
compat: provide a fallback va_copy definition
Junio C Hamano [Tue, 15 Mar 2011 21:22:55 +0000 (14:22 -0700)]
Merge branch 'mm/push-default-advice'
* mm/push-default-advice:
push: better error message when no remote configured
push: better error messages when push.default = tracking
Junio C Hamano [Tue, 15 Mar 2011 21:22:37 +0000 (14:22 -0700)]
Merge branch 'jn/maint-instaweb-plack-fix'
* jn/maint-instaweb-plack-fix:
git-instaweb: Change how gitweb.psgi is made runnable as standalone app
Junio C Hamano [Tue, 15 Mar 2011 21:22:23 +0000 (14:22 -0700)]
Merge branch 'sp/maint-fd-limit'
* 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
Junio C Hamano [Tue, 15 Mar 2011 21:22:16 +0000 (14:22 -0700)]
Merge branch 'jc/checkout-orphan-warning'
* jc/checkout-orphan-warning:
commit: give final warning when reattaching HEAD to leave commits behind
Junio C Hamano [Tue, 15 Mar 2011 21:22:13 +0000 (14:22 -0700)]
Merge branch 'jh/maint-do-not-track-non-branches'
* jh/maint-do-not-track-non-branches:
branch/checkout --track: Ensure that upstream branch is indeed a branch
Junio C Hamano [Tue, 15 Mar 2011 21:22:09 +0000 (14:22 -0700)]
Merge branch 'fk/maint-cvsimport-early-failure'
* fk/maint-cvsimport-early-failure:
git-cvsimport.perl: Bail out right away when reading from the server fails
Junio C Hamano [Tue, 15 Mar 2011 21:22:02 +0000 (14:22 -0700)]
Merge branch 'jc/maint-apply-report-offset'
* jc/maint-apply-report-offset:
apply -v: show offset count when patch did not apply exactly
Junio C Hamano [Tue, 15 Mar 2011 21:22:00 +0000 (14:22 -0700)]
Merge branch 'jc/maint-apply-no-double-patch'
* jc/maint-apply-no-double-patch:
apply: do not patch lines that were already patched
Junio C Hamano [Tue, 15 Mar 2011 21:21:47 +0000 (14:21 -0700)]
Merge branch 'mr/hpux'
* mr/hpux:
git-compat-util.h: Honor HP C's noreturn attribute
Makefile: add NO_FNMATCH_CASEFOLD to HP-UX section
Piotr Krukowiecki [Tue, 15 Mar 2011 19:58:14 +0000 (20:58 +0100)]
Documentation: running test with --debug keeps "trash" directory
Signed-off-by: Piotr Krukowiecki <piotr.krukowiecki@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 15 Mar 2011 20:32:09 +0000 (13:32 -0700)]
Merge branch 'jk/doc-credits' of git://github.com/peff/git
* 'jk/doc-credits' of git://github.com/peff/git:
docs: point git.txt author credits to git-scm.com
doc: add missing git footers
doc: drop author/documentation sections from most pages
Junio C Hamano [Mon, 14 Mar 2011 18:59:10 +0000 (11:59 -0700)]
Merge branch 'sp/maint-smart-http-sans-100-continue'
* sp/maint-smart-http-sans-100-continue:
smart-http: Really never use Expect: 100-continue
Shawn O. Pearce [Mon, 14 Mar 2011 18:28:17 +0000 (11:28 -0700)]
smart-http: Really never use Expect: 100-continue
libcurl may choose to try and use Expect: 100-continue for
any type of POST, not just a Transfer: chunked-encoding type.
Force it to disable this feature, as not all proxy servers support
100-continue and leaving it enabled can cause 1 second stalls during
the negotiation phase of fetch-pack/upload-pack.
In ("
206b099d26 smart-http: Don't use Expect: 100-Continue") we
tried to disable this for only large POST bodies, but it should be
disabled for every POST body.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Drew Northup [Mon, 14 Mar 2011 15:47:37 +0000 (11:47 -0400)]
Documentation: "rebase <onto> <that>" stays on <that> branch upon exit
This change makes it clearer that the change to the history effected by
executing 'git rebase master' while on 'topic' branch, and by executing
'git rebase master topic' on any branch, will be the same; the implicit
checkout of the second form will remain after the rebase exits.
Signed-off-by: Drew Northup <drew.northup@maine.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jakob Pfender [Mon, 14 Mar 2011 16:23:52 +0000 (17:23 +0100)]
object.h: Remove obsolete struct object_refs
7914053 (Remove unused object-ref code, 2008-02-25) removed all uses of
the structure from the code, but forgot to remove the type definition
itself.
Signed-off-by: Jakob Pfender <jpfender@elegosoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 13 Mar 2011 08:10:06 +0000 (00:10 -0800)]
Merge branch 'pw/p4'
* pw/p4:
git-p4: test clone @all
git-p4: fix clone @all regression
Pete Wyckoff [Sat, 12 Mar 2011 16:24:49 +0000 (11:24 -0500)]
git-p4: test clone @all
Cloning a p4 depot by default generates a single commit. The use
of the "@all" revision specifier instead tells git-p4 to import
all commits. Check to make sure both these invocations work as
expected.
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Pete Wyckoff [Sat, 12 Mar 2011 16:23:23 +0000 (11:23 -0500)]
git-p4: fix clone @all regression
e32e00d (git-p4: better message for "git-p4 sync" when not cloned,
2011-02-19) broke the use of the "@all" revision specifier, e.g.,
git-p4 clone //depot/xxx@all
Fix it as per Tor Arvid's quick patch.
Signed-off-by: Pete Wyckoff <pw@padd.com>
Reported-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Based-on-patch-by: Tor Arvid Lund <torarvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Sun, 13 Mar 2011 03:00:38 +0000 (22:00 -0500)]
docs: point git.txt author credits to git-scm.com
There is a nice shortlog-ish output of the authors there. We
also point people directly to shortlog, but of course they
might be reading the documentation online or from a binary
package of git.
Jeff King [Fri, 11 Mar 2011 06:08:48 +0000 (01:08 -0500)]
doc: add missing git footers
Almost every page has a footer that links back to the main
git(1) page. Let's add it on the few that are missing it.
Jeff King [Fri, 11 Mar 2011 05:52:08 +0000 (00:52 -0500)]
doc: drop author/documentation sections from most pages
The point of these sections is generally to:
1. Give credit where it is due.
2. Give the reader an idea of where to ask questions or
file bug reports.
But they don't do a good job of either case. For (1), they
are out of date and incomplete. A much more accurate answer
can be gotten through shortlog or blame. For (2), the
correct contact point is generally git@vger, and even if you
wanted to cc the contact point, the out-of-date and
incomplete fields mean you're likely sending to somebody
useless.
So let's drop the fields entirely from all manpages except
git(1) itself. We already point people to the mailing list
for bug reports there, and we can update the Authors section
to give credit to the major contributors and point to
shortlog and blame for more information.
Each page has a "This is part of git" footer, so people can
follow that to the main git manpage.
Junio C Hamano [Fri, 11 Mar 2011 06:45:49 +0000 (22:45 -0800)]
Merge branch 'maint'
* maint:
Revert "core.abbrevguard: Ensure short object names stay unique a bit longer"
Junio C Hamano [Fri, 11 Mar 2011 06:41:14 +0000 (22:41 -0800)]
Revert "core.abbrevguard: Ensure short object names stay unique a bit longer"
This reverts commit
72a5b561fc1c4286bc7c5b0693afc076af261e1f, as adding
fixed number of hexdigits more than necessary to make one object name
locally unique does not help in futureproofing the uniqueness of names
we generate today.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
SZEDER Gábor [Thu, 10 Mar 2011 18:12:29 +0000 (19:12 +0100)]
bash: complete 'git diff ...branc<TAB>'
While doing a final sanity check before merging a topic Bsomething, it
is a good idea to review what damage Bsomething branch would make, by
running:
$ git diff ...Bsomething
Unfortunately, our completion script for 'git diff' doesn't offer
anything after '...'. This is because 'git diff's completion function
invokes __git_complete_file() for non-option arguments to complete the
'<tree>:<path>' extended SHA-1 notation, but this helper function
doesn't support refs after '...' or '..'. Completion of refs after
'...' or '..' is supported by the __git_complete_revlist() helper
function, but that doesn't support '<tree>:<path>'.
To support both '...<ref>' and '<tree>:<path>' notations for 'git
diff', this patch, instead of adding yet another helper function,
joins __git_complete_file() and __git_complete_revlist() into the new
common function __git_complete_revlist_file(). The old helper
functions __git_complete_file() and __git_complete_revlist() are
changed to be a direct wrapper around the new
__git_complete_revlist_file(), because they might be used in
user-supplied completion scripts and we don't want to break them.
This change will cause some wrong suggestions for other commands which
use __git_complete_file() ('git diff' and friends) or
__git_complete_revlist() ('git log' and friends), e.g. 'git diff
...master:Doc<TAB>' and 'git log master:Doc<TAB>' will complete the
path to 'Documentation/', although neither commands make any sense.
However, both of these were actively wrong to begin with as soon as
the user entered the ':', so there is no real harm done.
Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
SZEDER Gábor [Thu, 10 Mar 2011 18:12:28 +0000 (19:12 +0100)]
bash: fix misindented esac statement in __git_complete_file()
Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Fri, 25 Feb 2011 07:22:12 +0000 (01:22 -0600)]
i18n: "make distclean" should clean up after "make pot"
This is in "make distclean" and not "make clean" to avoid needlessly
changing the POT-Creation-Date in the following scenario:
make clean; # cleaning up after an old build
git pull
make pot; # regenerate po template if necessary
msgmerge po/my_language.po po/git.pot
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Ævar Arnfjörð Bjarmason [Tue, 22 Feb 2011 23:41:23 +0000 (23:41 +0000)]
i18n: Makefile: "pot" target to extract messages marked for translation
Add rules to generate a template (po/git.pot) listing messages marked
for translation in the C portion of git.
To get started translating, just run "make pot".
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>