Tay Ray Chuan [Wed, 2 Nov 2011 16:17:12 +0000 (00:17 +0800)]
branch -m: handle no arg properly
Modify the option parsing heuristic to handle all -m (rename) cases,
including the no-arg case.
Previously, this "fell through" to the (argc <= 2) case and caused
segfault.
Reported-by: Stefan Näwe <redacted>
Signed-off-by: Tay Ray Chuan <redacted>
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 1 Nov 2011 23:37:33 +0000 (16:37 -0700)]
Update draft release notes to 1.7.8
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 1 Nov 2011 23:20:42 +0000 (16:20 -0700)]
Sync with 1.7.7.2
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 1 Nov 2011 23:16:36 +0000 (16:16 -0700)]
Git 1.7.7.2
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 1 Nov 2011 23:41:41 +0000 (16:41 -0700)]
Merge branch 'rs/maint-estimate-cache-size' into maint
* rs/maint-estimate-cache-size:
t7511: avoid use of reserved filename on Windows.
Junio C Hamano [Tue, 1 Nov 2011 23:12:19 +0000 (16:12 -0700)]
Merge branch 'md/smtp-tls-hello-again' into maint
* md/smtp-tls-hello-again:
send-email: Honour SMTP domain when using TLS
Junio C Hamano [Tue, 1 Nov 2011 23:11:00 +0000 (16:11 -0700)]
Merge branch 'jk/pull-rebase-with-work-tree' into maint
* jk/pull-rebase-with-work-tree:
pull,rebase: handle GIT_WORK_TREE better
Conflicts:
git-pull.sh
Junio C Hamano [Tue, 1 Nov 2011 23:10:56 +0000 (16:10 -0700)]
Merge branch 'jc/maint-diffstat-numstat-context' into maint
* jc/maint-diffstat-numstat-context:
diff: teach --stat/--numstat to honor -U$num
Junio C Hamano [Tue, 1 Nov 2011 23:03:35 +0000 (16:03 -0700)]
Merge branch 'js/bisect-no-checkout' into maint
* js/bisect-no-checkout:
bisect: fix exiting when checkout failed in bisect_start()
Junio C Hamano [Tue, 1 Nov 2011 22:54:45 +0000 (15:54 -0700)]
Merge branch 'bc/attr-ignore-case' into maint
* bc/attr-ignore-case:
attr.c: respect core.ignorecase when matching attribute patterns
attr: read core.attributesfile from git_default_core_config
builtin/mv.c: plug miniscule memory leak
cleanup: use internal memory allocation wrapper functions everywhere
attr.c: avoid inappropriate access to strbuf "buf" member
Conflicts:
remote.c
Junio C Hamano [Tue, 1 Nov 2011 22:51:01 +0000 (15:51 -0700)]
Merge branch 'cn/fetch-prune' into maint
* cn/fetch-prune:
fetch: treat --tags like refs/tags/*:refs/tags/* when pruning
fetch: honor the user-provided refspecs when pruning refs
remote: separate out the remote_find_tracking logic into query_refspecs
t5510: add tests for fetch --prune
fetch: free all the additional refspecs
Junio C Hamano [Tue, 1 Nov 2011 22:45:16 +0000 (15:45 -0700)]
Merge branch 'sp/smart-http-failure' into maint
* sp/smart-http-failure:
remote-curl: Fix warning after HTTP failure
Junio C Hamano [Tue, 1 Nov 2011 22:42:25 +0000 (15:42 -0700)]
Merge jn/maint-http-error-message
* commit '
be22d92eac809ad2bfa2b7c83ad7cad5a15f1c43':
http: avoid empty error messages for some curl errors
http: remove extra newline in error message
Junio C Hamano [Tue, 1 Nov 2011 22:31:12 +0000 (15:31 -0700)]
Merge branch 'jk/name-hash-dirent'
* jk/name-hash-dirent:
name-hash.c: always initialize dir_next pointer
Johannes Sixt [Tue, 1 Nov 2011 22:21:06 +0000 (23:21 +0100)]
name-hash.c: always initialize dir_next pointer
Test t2021-checkout-overwrite.sh reveals a segfault in 'git add' on a
case-insensitive file system when git is compiled with XMALLOC_POISON
defined. The reason is that
2548183b (fix phantom untracked files when
core.ignorecase is set) added a new member dir_next to struct cache_entry,
but forgot to initialize it in all cases.
Signed-off-by: Johannes Sixt <redacted>
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 1 Nov 2011 22:20:28 +0000 (15:20 -0700)]
Merge branch 'ss/blame-textconv-fake-working-tree'
* ss/blame-textconv-fake-working-tree:
(squash) test for previous
blame.c: Properly initialize strbuf after calling, textconv_object()
Conflicts:
t/t8006-blame-textconv.sh
Junio C Hamano [Tue, 1 Nov 2011 22:20:22 +0000 (15:20 -0700)]
Merge branch 'ef/mingw-upload-archive'
* ef/mingw-upload-archive:
mingw: poll.h is no longer in sys/
upload-archive: use start_command instead of fork
compat/win32/poll.c: upgrade from upstream
mingw: move poll out of sys-folder
Junio C Hamano [Tue, 1 Nov 2011 22:20:07 +0000 (15:20 -0700)]
Merge branch 'dm/pack-objects-update'
* dm/pack-objects-update:
pack-objects: don't traverse objects unnecessarily
pack-objects: rewrite add_descendants_to_write_order() iteratively
pack-objects: use unsigned int for counter and offset values
pack-objects: mark add_to_write_order() as inline
Junio C Hamano [Tue, 1 Nov 2011 22:20:03 +0000 (15:20 -0700)]
Merge branch 'nd/pretty-commit-log-message'
* nd/pretty-commit-log-message:
pretty.c: use original commit message if reencoding fails
pretty.c: free get_header() return value
Ted Percival [Mon, 31 Oct 2011 22:37:12 +0000 (16:37 -0600)]
svn: Quote repository root in regex match
Fixes a problem matching repository URLs, especially those with a '+' in
the URL, such as svn+ssh:// URLs. Parts of the URL were interpreted as
special characters by the regex matching.
Signed-off-by: Ted Percival <redacted>
Acked-by: Eric Wong <redacted>
Erik Faye-Lund [Tue, 1 Nov 2011 11:56:21 +0000 (12:56 +0100)]
mingw: poll.h is no longer in sys/
Earlier we moved this header file in the code but forgot to
update the Makefile that refers to it.
Signed-off-by: Erik Faye-Lund <redacted>
Signed-off-by: Junio C Hamano <redacted>
Vincent van Ravesteijn [Mon, 31 Oct 2011 19:12:44 +0000 (20:12 +0100)]
MSVC: Remove unneeded header stubs
These headers are no longer needed since they are no longer
unnecessarily included in git-compat-util.h.
Signed-off-by: Vincent van Ravesteijn <redacted>
Acked-by: Erik Faye-Lund <redacted>
Signed-off-by: Junio C Hamano <redacted>
Vincent van Ravesteijn [Mon, 31 Oct 2011 19:12:43 +0000 (20:12 +0100)]
Compile fix for MSVC: Include <io.h>
This include is needed for _commit(..) which is used in mingw.h.
Signed-off-by: Vincent van Ravesteijn <redacted>
Acked-by: Erik Faye-Lund <redacted>
Signed-off-by: Junio C Hamano <redacted>
Vincent van Ravesteijn [Mon, 31 Oct 2011 19:12:42 +0000 (20:12 +0100)]
Compile fix for MSVC: Do not include sys/resources.h
Do not include header files when compiling with MSVC that do not
exist and which are also not included when compiling with MINGW.
A direct consequence is that git can be compiled again with MSVC
because the missing "sys/resources.h" is no longer included.
Instead of current
#ifndef mingw32 is the only one that is strange
... everything for systems that is not strange ...
#else
... include mingw specific tweaks ...
#endif
#ifdef msvc is also strange
... include msvc specific tweaks ...
#endif
it turns things around and says what it wants to achieve in a more direct
way, i.e.
#if mingw32
#include "compat/mingw.h"
#elif msvc
#include "compat/msvc.h"
#else
... all the others ...
#endif
which makes it a lot simpler.
Signed-off-by: Vincent van Ravesteijn <redacted>
Helped-by: Junio C Hamano <redacted>
Acked-by: Erik Faye-Lund <redacted>
Signed-off-by: Junio C Hamano <redacted>
Kato Kazuyoshi [Sun, 30 Oct 2011 23:36:27 +0000 (00:36 +0100)]
gitweb: Add navigation to select side-by-side diff
Add to the lower part of navigation bar (the action specific part)
links allowing to switch between 'inline' (ordinary) diff and
'side by side' style diff.
It is not shown for combined / compact combined diff.
Signed-off-by: Kato Kazuyoshi <redacted>
Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
Jakub Narebski [Sun, 30 Oct 2011 23:36:26 +0000 (00:36 +0100)]
gitweb: Use href(-replay=>1,...) for formats links in "commitdiff"
Use href(-replay->1,...) in (sub)navigation links (like changing style
of view, or going to parent commit) so that extra options are
preserved.
This is needed so clicking on such (sub)navigation link would preserve
style of diff; for example when using "side-by-side" diff style then
going to parent commit would now also use this style.
Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
Jakub Narebski [Sun, 30 Oct 2011 23:36:25 +0000 (00:36 +0100)]
t9500: Add basic sanity tests for side-by-side diff in gitweb
Test that side-by-side diff can deal with incomplete lines (and while
at it with pure addition, pure removal, and change), and with merge
commits, producing no errors or warnings.
Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
Jakub Narebski [Sun, 30 Oct 2011 23:36:24 +0000 (00:36 +0100)]
t9500: Add test for handling incomplete lines in diff by gitweb
Check that "commitdiff" action in gitweb can handle (without errors)
incomplete lines as added and removed lines, and as context lines.
Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
Jakub Narebski [Sun, 30 Oct 2011 23:36:23 +0000 (00:36 +0100)]
gitweb: Give side-by-side diff extra CSS styling
Use separate background colors for pure removal, pure addition and
change for side-by-side diff. This makes reading such diff easier,
allowing to easily distinguish empty lines in diff from vertical
whitespace used to align chunk blocks.
Note that if lines in diff were numbered, the absence of line numbers
[for one side] would help in distinguishing empty lines from vertical
align.
Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
Kato Kazuyoshi [Sun, 30 Oct 2011 23:36:22 +0000 (00:36 +0100)]
gitweb: Add a feature to show side-by-side diff
This commits adds to support for showing "side-by-side" style diff.
Currently you have to hand-craft the URL; navigation for selecting
diff style is to be added in the next commit.
The diff output in unified format from "git diff-tree" is reorganized to
side-by-side style chunk by chunk with format_sidebyside_diff_chunk().
This reorganization requires knowledge about diff line classification,
so format_diff_line() was renamed to process_diff_line(), and changed to
return tuple (list) consisting of class of diff line and of
HTML-formatted (but not wrapped in <div class="diff ...">...</div>) diff
line. Wrapping is now done by caller, i.e. git_patchset_body().
Gitweb uses float+margin CSS-based layout for "side by side" diff.
You can specify style of diff with "ds" ('diff_style') query
parameter. Currently supported values are 'inline' and 'sidebyside';
the default is 'inline'.
Another solution would be to use "opt" ('extra_options') for that...
though current use of it in gitweb seems to suggest that "opt" is more
about passing extra options to underlying git commands, and "git diff"
doesn't support '--side-by-side' like GNU diff does, (yet?).
Signed-off-by: Kato Kazuyoshi <redacted>
Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
Jakub Narebski [Sun, 30 Oct 2011 23:36:21 +0000 (00:36 +0100)]
gitweb: Extract formatting of diff chunk header
Refactor main parts of HTML-formatting for diff chunk headers
(formatting means here adding links and syntax hightlighting) into
separate subroutines:
* format_unidiff_chunk_header for ordinary diff,
* format_cc_diff_chunk_header for combined diff
(more than one parent)
This makes format_diff_line() subroutine easier to follow.
Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
Jakub Narebski [Sun, 30 Oct 2011 23:36:20 +0000 (00:36 +0100)]
gitweb: Refactor diff body line classification
Simplify classification of diff line body in format_diff_line(),
replacing two long if-elsif chains (one for ordinary diff and one for
combined diff of a merge commit) with a single regexp match. Refactor
this code into diff_line_class() function.
While at it:
* Fix an artifact in that $diff_class included leading space to be
able to compose classes like this "class=\"diff$diff_class\"', even
when $diff_class was an empty string. This made code unnecessary
ugly: $diff_class is now just class name or an empty string.
* Introduce "ctx" class for context lines ($diff_class was set to ""
in this case before this commit).
Idea and initial code by Junio C Hamano, polish and testing by Jakub
Narebski. Inspired by patch adding side-by-side diff by Kato Kazuyoshi,
which required $diff_class to be name of class without extra space.
Signed-off-by: Junio C Hamano <redacted>
Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
Pat Thoyts [Mon, 31 Oct 2011 14:07:27 +0000 (14:07 +0000)]
t7511: avoid use of reserved filename on Windows.
PRN is a special filename on Windows to send data to the printer. As
this is generated during test 3 substitute an alternate prefix to avoid this.
Signed-off-by: Pat Thoyts <redacted>
Signed-off-by: Junio C Hamano <redacted>
Dejan Ribič [Sun, 30 Oct 2011 17:18:44 +0000 (18:18 +0100)]
git-gui: fix spelling error in sshkey.tcl
Spelling error originally reported to Ubuntu as launchpad bug #879427.
Acked-by: Erik Faye-Lund <redacted>
Signed-off-by: Dejan Ribič <redacted>
Signed-off-by: Pat Thoyts <redacted>
Junio C Hamano [Mon, 31 Oct 2011 02:14:24 +0000 (19:14 -0700)]
Git 1.7.8-rc0
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Mon, 31 Oct 2011 02:13:13 +0000 (19:13 -0700)]
Merge branch 'jk/git-tricks'
* jk/git-tricks:
completion: match ctags symbol names in grep patterns
contrib: add git-jump script
contrib: add diff highlight script
Erik Faye-Lund [Mon, 24 Oct 2011 16:02:11 +0000 (18:02 +0200)]
upload-archive: use start_command instead of fork
The POSIX-function fork is not supported on Windows. Use our
start_command API instead.
As this is the last call-site that depends on the fork-stub in
compat/mingw.h, remove that as well.
Add an undocumented flag to git-archive that tells it that the
action originated from a remote, so features can be disabled.
Thanks to Jeff King for work on this part.
Remove the NOT_MINGW-prereq for t5000, as git-archive --remote
now works.
Signed-off-by: Erik Faye-Lund <redacted>
Helped-by: Jeff King <redacted>
Signed-off-by: Junio C Hamano <redacted>
Erik Faye-Lund [Mon, 24 Oct 2011 16:02:10 +0000 (18:02 +0200)]
compat/win32/poll.c: upgrade from upstream
poll.c is updated from revision
adc3a5b in
git://git.savannah.gnu.org/gnulib.git
The changes are applied with --whitespace=fix to reduce noise.
poll.h is not upgraded, because the most recent version now
contains template-stuff that breaks compilation for us.
Signed-off-by: Erik Faye-Lund <redacted>
Acked-by: Johannes Sixt <redacted>
Signed-off-by: Junio C Hamano <redacted>
Erik Faye-Lund [Mon, 24 Oct 2011 16:02:09 +0000 (18:02 +0200)]
mingw: move poll out of sys-folder
Both XSI and upstream Gnulib versions expects to find poll.h at
the root of some include path, not inside the sys-folder.
This helps us when upgrading Gnulib.
Signed-off-by: Erik Faye-Lund <redacted>
Acked-by: Johannes Sixt <redacted>
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Fri, 28 Oct 2011 19:34:09 +0000 (12:34 -0700)]
finish_tmp_packfile(): a helper function
Factor out a small logic out of the private write_pack_file() function
in builtin/pack-objects.c.
This changes the order of finishing multi-pack generation slightly. The
code used to
- adjust shared perm of temporary packfile
- rename temporary packfile to the final name
- update mtime of the packfile under the final name
- adjust shared perm of temporary idxfile
- rename temporary idxfile to the final name
but because the helper does not want to do the mtime thing, the updated
code does that step first and then all the rest.
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Fri, 28 Oct 2011 18:52:14 +0000 (11:52 -0700)]
create_tmp_packfile(): a helper function
Factor out a small logic out of the private write_pack_file() function
in builtin/pack-objects.c
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Fri, 28 Oct 2011 18:40:48 +0000 (11:40 -0700)]
write_pack_header(): a helper function
Factor out a small logic out of the private write_pack_file() function
in builtin/pack-objects.c
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Fri, 28 Oct 2011 16:36:55 +0000 (09:36 -0700)]
(squash) test for previous
Signed-off-by: Junio C Hamano <redacted>
Sebastian Schuberth [Fri, 28 Oct 2011 15:28:28 +0000 (17:28 +0200)]
blame.c: Properly initialize strbuf after calling, textconv_object()
For a plain string where only the length is known, strbuf.alloc needs to
be initialized to the length. Otherwise strbuf.alloc is 0 and a later
call to strbuf_setlen() will fail.
This bug surfaced when calling git blame under Windows on a *.doc file.
The *.doc file is converted to plain text by antiword via the textconv
mechanism. However, the plain text returned by antiword contains DOS line
endings instead of Unix line endings which triggered the strbuf_setlen()
which previous to this patch failed.
Signed-off-by: Sebastian Schuberth <redacted>
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Thu, 27 Oct 2011 19:06:44 +0000 (12:06 -0700)]
Update draft release notes to 1.7.8
Getting very close to -rc0
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Thu, 27 Oct 2011 19:04:28 +0000 (12:04 -0700)]
Merge branch 'sn/complete-bash-wo-process-subst'
* sn/complete-bash-wo-process-subst:
completion: fix issue with process substitution not working on Git for Windows
Junio C Hamano [Thu, 27 Oct 2011 19:04:21 +0000 (12:04 -0700)]
Merge branch 'rj/gitweb-clean-js'
* rj/gitweb-clean-js:
gitweb/Makefile: Remove static/gitweb.js in the clean target
Junio C Hamano [Thu, 27 Oct 2011 19:04:02 +0000 (12:04 -0700)]
Merge branch 'js/grep-mutex'
* js/grep-mutex:
builtin/grep: simplify lock_and_read_sha1_file()
builtin/grep: make lock/unlock into static inline functions
git grep: be careful to use mutexes only when they are initialized
Junio C Hamano [Thu, 27 Oct 2011 19:03:37 +0000 (12:03 -0700)]
Merge branch 'maint'
* maint:
clone: Quote user supplied path in a single quote pair
read-cache.c: fix index memory allocation
Junio C Hamano [Thu, 27 Oct 2011 19:03:16 +0000 (12:03 -0700)]
Merge branch 'rs/maint-estimate-cache-size' into maint
* rs/maint-estimate-cache-size:
read-cache.c: fix index memory allocation
Richard Hartmann [Thu, 27 Oct 2011 16:46:53 +0000 (18:46 +0200)]
clone: Quote user supplied path in a single quote pair
Without this patch,
$ git clone foo .
results in this:
Cloning into ....
done.
With it:
Cloning into '.'...
done.
Signed-off-by: Richard Hartmann <redacted>
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Thu, 27 Oct 2011 18:42:57 +0000 (11:42 -0700)]
unpack_object_header_buffer(): clear the size field upon error
The callers do not use the returned size when the function says
it did not use any bytes and sets the type to OBJ_BAD, so this
should not matter in practice, but it is a good code hygiene
anyway.
Signed-off-by: Junio C Hamano <redacted>
Nguyễn Thái Ngọc Duy [Mon, 24 Oct 2011 06:36:10 +0000 (17:36 +1100)]
tree_entry_interesting(): give meaningful names to return values
It is a basic code hygiene to avoid magic constants that are unnamed.
Besides, this helps extending the value later on for "interesting, but
cannot decide if the entry truely matches yet" (ie. prefix matches)
Signed-off-by: Nguyễn Thái Ngọc Duy <redacted>
Signed-off-by: Junio C Hamano <redacted>
Nguyễn Thái Ngọc Duy [Mon, 24 Oct 2011 06:36:12 +0000 (17:36 +1100)]
tree_entry_interesting: make use of local pointer "item"
Signed-off-by: Nguyễn Thái Ngọc Duy <redacted>
Signed-off-by: Junio C Hamano <redacted>
Nguyễn Thái Ngọc Duy [Mon, 24 Oct 2011 06:36:11 +0000 (17:36 +1100)]
read_directory_recursive: reduce one indentation level
Signed-off-by: Nguyễn Thái Ngọc Duy <redacted>
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Thu, 27 Oct 2011 18:18:40 +0000 (11:18 -0700)]
get_tree_entry(): do not call find_tree_entry() on an empty tree
We know we will find nothing.
This incidentally squelches false warning from gcc about potentially
uninitialized usage of t.entry fields. For an empty tree, it is true that
init_tree_desc() does not call decode_tree_entry() and the tree_desc is
left uninitialized, but find_tree_entry() only calls tree_entry_extract()
that uses the tree_desc while it has more things to read from the tree, so
the uninitialized t.entry fields are never used in such a case anyway.
Signed-off-by: Junio C Hamano <redacted>
Nguyễn Thái Ngọc Duy [Mon, 24 Oct 2011 06:36:09 +0000 (17:36 +1100)]
tree-walk.c: do not leak internal structure in tree_entry_len()
tree_entry_len() does not simply take two random arguments and return
a tree length. The two pointers must point to a tree item structure,
or struct name_entry. Passing random pointers will return incorrect
value.
Force callers to pass struct name_entry instead of two pointers (with
hope that they don't manually construct struct name_entry themselves)
Signed-off-by: Nguyễn Thái Ngọc Duy <redacted>
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Wed, 26 Oct 2011 23:24:55 +0000 (16:24 -0700)]
Merge branch 'maint'
* maint:
make the sample pre-commit hook script reject names with newlines, too
Junio C Hamano [Wed, 26 Oct 2011 23:23:26 +0000 (16:23 -0700)]
Update draft release notes to 1.7.8
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Wed, 26 Oct 2011 23:16:32 +0000 (16:16 -0700)]
Merge branch 'tc/submodule-clone-name-detection'
* tc/submodule-clone-name-detection:
submodule::module_clone(): silence die() message from module_name()
submodule: whitespace fix
Junio C Hamano [Wed, 26 Oct 2011 23:16:31 +0000 (16:16 -0700)]
Merge branch 'lh/gitweb-site-html-head'
* lh/gitweb-site-html-head:
gitweb: provide a way to customize html headers
Junio C Hamano [Wed, 26 Oct 2011 23:16:31 +0000 (16:16 -0700)]
Merge branch 'mm/mediawiki-author-fix'
* mm/mediawiki-author-fix:
git-remote-mediawiki: don't include HTTP login/password in author
Junio C Hamano [Wed, 26 Oct 2011 23:16:30 +0000 (16:16 -0700)]
Merge branch 'jn/libperl-git-config'
* jn/libperl-git-config:
Add simple test for Git::config_path() in t/t9700-perl-git.sh
libperl-git: refactor Git::config_*
Junio C Hamano [Wed, 26 Oct 2011 23:16:30 +0000 (16:16 -0700)]
Merge branch 'jm/maint-gitweb-filter-forks-fix'
* jm/maint-gitweb-filter-forks-fix:
gitweb: fix regression when filtering out forks
Junio C Hamano [Wed, 26 Oct 2011 23:16:29 +0000 (16:16 -0700)]
Merge branch 'cn/fetch-prune'
* cn/fetch-prune:
fetch: treat --tags like refs/tags/*:refs/tags/* when pruning
fetch: honor the user-provided refspecs when pruning refs
remote: separate out the remote_find_tracking logic into query_refspecs
t5510: add tests for fetch --prune
fetch: free all the additional refspecs
Conflicts:
remote.c
Junio C Hamano [Wed, 26 Oct 2011 23:13:31 +0000 (16:13 -0700)]
Merge branch 'jn/gitweb-highlite-sanitise' into maint
* jn/gitweb-highlite-sanitise:
gitweb: Strip non-printable characters from syntax highlighter output
Junio C Hamano [Wed, 26 Oct 2011 23:13:31 +0000 (16:13 -0700)]
Merge branch 'jk/argv-array' into maint
* jk/argv-array:
run_hook: use argv_array API
checkout: use argv_array API
bisect: use argv_array API
quote: provide sq_dequote_to_argv_array
refactor argv_array into generic code
quote.h: fix bogus comment
add sha1_array API docs
Junio C Hamano [Wed, 26 Oct 2011 23:13:31 +0000 (16:13 -0700)]
Merge branch 'jc/run-receive-hook-cleanup' into maint
* jc/run-receive-hook-cleanup:
refactor run_receive_hook()
Junio C Hamano [Wed, 26 Oct 2011 23:13:31 +0000 (16:13 -0700)]
Merge branch 'cn/eradicate-working-copy' into maint
* cn/eradicate-working-copy:
Remove 'working copy' from the documentation and C code
Junio C Hamano [Wed, 26 Oct 2011 23:13:27 +0000 (16:13 -0700)]
Merge branch 'maint-1.7.6' into maint
* maint-1.7.6:
notes_merge_commit(): do not pass temporary buffer to other function
gitweb: Fix links to lines in blobs when javascript-actions are enabled
mergetool: no longer need to save standard input
mergetool: Use args as pathspec to unmerged files
t9159-*.sh: skip for mergeinfo test for svn <= 1.4
date.c: Support iso8601 timezone formats
remote: only update remote-tracking branch if updating refspec
remote rename: warn when refspec was not updated
remote: "rename o foo" should not rename ref "origin/bar"
remote: write correct fetch spec when renaming remote 'remote'
Junio C Hamano [Wed, 26 Oct 2011 23:12:48 +0000 (16:12 -0700)]
Merge branch 'mh/maint-notes-merge-pathbuf-fix' into maint-1.7.6
* mh/maint-notes-merge-pathbuf-fix:
notes_merge_commit(): do not pass temporary buffer to other function
Junio C Hamano [Wed, 26 Oct 2011 23:12:35 +0000 (16:12 -0700)]
Merge branch 'ps/gitweb-js-with-lineno' into maint-1.7.6
* ps/gitweb-js-with-lineno:
gitweb: Fix links to lines in blobs when javascript-actions are enabled
Junio C Hamano [Wed, 26 Oct 2011 23:12:25 +0000 (16:12 -0700)]
Merge branch 'jm/mergetool-pathspec' into maint-1.7.6
* jm/mergetool-pathspec:
mergetool: no longer need to save standard input
mergetool: Use args as pathspec to unmerged files
Junio C Hamano [Wed, 26 Oct 2011 23:12:19 +0000 (16:12 -0700)]
Merge branch 'mz/remote-rename' into maint-1.7.6
* mz/remote-rename:
remote: only update remote-tracking branch if updating refspec
remote rename: warn when refspec was not updated
remote: "rename o foo" should not rename ref "origin/bar"
remote: write correct fetch spec when renaming remote 'remote'
Junio C Hamano [Wed, 26 Oct 2011 23:12:13 +0000 (16:12 -0700)]
Merge branch 'rj/maint-t9159-svn-rev-notation' into maint-1.7.6
* rj/maint-t9159-svn-rev-notation:
t9159-*.sh: skip for mergeinfo test for svn <= 1.4
Junio C Hamano [Wed, 26 Oct 2011 23:11:28 +0000 (16:11 -0700)]
Merge branch 'hl/iso8601-more-zone-formats' into maint-1.7.6
* hl/iso8601-more-zone-formats:
date.c: Support iso8601 timezone formats
Junio C Hamano [Wed, 26 Oct 2011 23:09:28 +0000 (16:09 -0700)]
Merge branch 'maint-1.7.6' into maint
* maint-1.7.6:
make the sample pre-commit hook script reject names with newlines, too
git-read-tree.txt: update sparse checkout examples
git-read-tree.txt: correct sparse-checkout and skip-worktree description
git-read-tree.txt: language and typography fixes
unpack-trees: print "Aborting" to stderr
Documentation/git-update-index: refer to 'ls-files'
Documentation: basic configuration of notes.rewriteRef
Junio C Hamano [Wed, 26 Oct 2011 23:09:04 +0000 (16:09 -0700)]
Merge branch 'tr/doc-note-rewrite' into maint-1.7.6
* tr/doc-note-rewrite:
Documentation: basic configuration of notes.rewriteRef
Junio C Hamano [Wed, 26 Oct 2011 23:09:04 +0000 (16:09 -0700)]
Merge branch 'nd/sparse-doc' into maint-1.7.6
* nd/sparse-doc:
git-read-tree.txt: update sparse checkout examples
Junio C Hamano [Wed, 26 Oct 2011 23:09:03 +0000 (16:09 -0700)]
Merge branch 'mg/maint-doc-sparse-checkout' into maint-1.7.6
* mg/maint-doc-sparse-checkout:
git-read-tree.txt: correct sparse-checkout and skip-worktree description
git-read-tree.txt: language and typography fixes
unpack-trees: print "Aborting" to stderr
Junio C Hamano [Wed, 26 Oct 2011 23:08:19 +0000 (16:08 -0700)]
Merge branch 'maint-1.7.5' into maint-1.7.6
* maint-1.7.5:
make the sample pre-commit hook script reject names with newlines, too
Reindent closing bracket using tab instead of spaces
Documentation/git-update-index: refer to 'ls-files'
Junio C Hamano [Wed, 26 Oct 2011 23:08:14 +0000 (16:08 -0700)]
Merge branch 'maint-1.7.4' into maint-1.7.5
* maint-1.7.4:
make the sample pre-commit hook script reject names with newlines, too
Reindent closing bracket using tab instead of spaces
Documentation/git-update-index: refer to 'ls-files'
Junio C Hamano [Wed, 26 Oct 2011 23:08:08 +0000 (16:08 -0700)]
Merge branch 'maint-1.7.3' into maint-1.7.4
* maint-1.7.3:
make the sample pre-commit hook script reject names with newlines, too
Reindent closing bracket using tab instead of spaces
Documentation/git-update-index: refer to 'ls-files'
Junio C Hamano [Wed, 26 Oct 2011 23:08:00 +0000 (16:08 -0700)]
Merge branch 'sn/doc-update-index-assume-unchanged' into maint-1.7.3
* sn/doc-update-index-assume-unchanged:
Documentation/git-update-index: refer to 'ls-files'
René Scharfe [Tue, 25 Oct 2011 18:00:04 +0000 (20:00 +0200)]
cache.h: put single NUL at end of struct cache_entry
Since in-memory index entries are allocated individually now, the
variable slack at the end meant to provide an eight byte alignment
is not needed anymore. Have a single NUL instead. This saves zero
to seven bytes for an entry, depending on its filename length.
Signed-off-by: Rene Scharfe <redacted>
Signed-off-by: Junio C Hamano <redacted>
René Scharfe [Mon, 24 Oct 2011 21:59:14 +0000 (23:59 +0200)]
read-cache.c: allocate index entries individually
The code to estimate the in-memory size of the index based on its on-disk
representation is subtly wrong for certain architecture-dependent struct
layouts. Instead of fixing it, replace the code to keep the index entries
in a single large block of memory and allocate each entry separately
instead. This is both simpler and more flexible, as individual entries
can now be freed. Actually using that added flexibility is left for a
later patch.
Suggested-by: Junio C Hamano <redacted>
Signed-off-by: Rene Scharfe <redacted>
Signed-off-by: Junio C Hamano <redacted>
René Scharfe [Mon, 24 Oct 2011 01:01:27 +0000 (03:01 +0200)]
read-cache.c: fix index memory allocation
estimate_cache_size() tries to guess how much memory is needed for the
in-memory representation of an index file. It does that by using the
file size, the number of entries and the difference of the sizes of the
on-disk and in-memory structs -- without having to check the length of
the name of each entry, which varies for each entry, but their sums are
the same no matter the representation.
Except there can be a difference. First of all, the size is really
calculated by ce_size and ondisk_ce_size based on offsetof(..., name),
not sizeof, which can be different. And entries are padded with 1 to 8
NULs at the end (after the variable name) to make their total length a
multiple of eight.
So in order to allocate enough memory to hold the index, change the
delta calculation to be based on offsetof(..., name) and round up to
the next multiple of eight.
On a 32-bit Linux, this delta was used before:
sizeof(struct cache_entry) == 72
sizeof(struct ondisk_cache_entry) == 64
---
8
The actual difference for an entry with a filename length of one was,
however (find the definitions are in cache.h):
offsetof(struct cache_entry, name) == 72
offsetof(struct ondisk_cache_entry, name) == 62
ce_size == (72 + 1 + 8) & ~7 == 80
ondisk_ce_size == (62 + 1 + 8) & ~7 == 64
---
16
So eight bytes less had been allocated for such entries. The new
formula yields the correct delta:
(72 - 62 + 7) & ~7 == 16
Reported-by: John Hsing <redacted>
Signed-off-by: Rene Scharfe <redacted>
Signed-off-by: Junio C Hamano <redacted>
Jim Meyering [Sat, 22 Oct 2011 17:44:40 +0000 (19:44 +0200)]
make the sample pre-commit hook script reject names with newlines, too
The sample pre-commit hook script would fail to reject a file name like
"a\nb" because of the way newlines are handled in "$(...)". Adjust the
test to count filtered bytes and require there be 0. Also print all
diagnostics to standard error, not stdout, so they will actually be seen.
Signed-off-by: Jim Meyering <redacted>
Signed-off-by: Junio C Hamano <redacted>
Stefan Naewe [Wed, 26 Oct 2011 19:13:09 +0000 (21:13 +0200)]
completion: fix issue with process substitution not working on Git for Windows
Git for Windows comes with a bash that doesn't support process substitution.
It issues the following error when using git-completion.bash with
GIT_PS1_SHOWUPSTREAM set:
$ export GIT_PS1_SHOWUPSTREAM=1
sh.exe": cannot make pipe for process substitution: Function not implemented
sh.exe": cannot make pipe for process substitution: Function not implemented
sh.exe": <(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n '): ambiguous redirect
Replace the process substitution with a 'here string'.
Signed-off-by: Stefan Naewe <redacted>
Signed-off-by: Junio C Hamano <redacted>
Ramsay Jones [Tue, 25 Oct 2011 17:15:20 +0000 (18:15 +0100)]
gitweb/Makefile: Remove static/gitweb.js in the clean target
Since
9a86dd5 (gitweb: Split JavaScript for maintability, combining on
build, 2011-04-28), static/gitweb.js has been a build product that should
be cleaned upon "make clean".
Signed-off-by: Ramsay Jones <redacted>
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Wed, 26 Oct 2011 19:15:51 +0000 (12:15 -0700)]
builtin/grep: simplify lock_and_read_sha1_file()
As read_sha1_lock/unlock have been made aware of use_threads,
this caller can be made a lot simpler.
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Wed, 26 Oct 2011 18:45:15 +0000 (11:45 -0700)]
builtin/grep: make lock/unlock into static inline functions
Signed-off-by: Junio C Hamano <redacted>
Johannes Schindelin [Tue, 25 Oct 2011 17:25:20 +0000 (12:25 -0500)]
git grep: be careful to use mutexes only when they are initialized
Rather nasty things happen when a mutex is not initialized but locked
nevertheless. Now, when we're not running in a threaded manner, the mutex
is not initialized, which is correct. But then we went and used the mutex
anyway, which -- at least on Windows -- leads to a hard crash (ordinarily
it would be called a segmentation fault, but in Windows speak it is an
access violation).
This problem was identified by our faithful tests when run in the msysGit
environment.
To avoid having to wrap the line due to the 80 column limit, we use
the name "WHEN_THREADED" instead of "IF_USE_THREADS" because it is one
character shorter. Which is all we need in this case.
Signed-off-by: Johannes Schindelin <redacted>
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Mon, 24 Oct 2011 06:55:28 +0000 (23:55 -0700)]
Merge branch 'maint'
* maint:
Reindent closing bracket using tab instead of spaces
Junio C Hamano [Mon, 24 Oct 2011 06:55:22 +0000 (23:55 -0700)]
Merge branch 'maint-1.7.3' into maint
* maint-1.7.3:
Reindent closing bracket using tab instead of spaces
Nguyễn Thái Ngọc Duy [Mon, 24 Oct 2011 04:24:51 +0000 (15:24 +1100)]
Reindent closing bracket using tab instead of spaces
Signed-off-by: Nguyễn Thái Ngọc Duy <redacted>
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Mon, 24 Oct 2011 04:49:14 +0000 (21:49 -0700)]
Merge branch 'maint'
* maint:
Git 1.7.7.1
RelNotes/1.7.7.1: setgid bit patch is about fixing "git init" via Makefile setting
Conflicts:
GIT-VERSION-GEN
Junio C Hamano [Mon, 24 Oct 2011 04:48:06 +0000 (21:48 -0700)]
Git 1.7.7.1
Signed-off-by: Junio C Hamano <redacted>
Nguyễn Thái Ngọc Duy [Sun, 23 Oct 2011 11:51:35 +0000 (22:51 +1100)]
pretty.c: use original commit message if reencoding fails
Signed-off-by: Nguyễn Thái Ngọc Duy <redacted>
Signed-off-by: Junio C Hamano <redacted>
Nguyễn Thái Ngọc Duy [Sun, 23 Oct 2011 11:51:34 +0000 (22:51 +1100)]
pretty.c: free get_header() return value
Signed-off-by: Nguyễn Thái Ngọc Duy <redacted>
Signed-off-by: Junio C Hamano <redacted>