Code

git.git
14 years agohttp.c: Don't store destination name in request structures
Shawn O. Pearce [Sat, 17 Apr 2010 20:07:38 +0000 (13:07 -0700)]
http.c: Don't store destination name in request structures

The destination name within the object store is easily computed
on demand, reusing a static buffer held by sha1_file.c.  We don't
need to copy the entire path into the request structure for safe
keeping, when it can be easily reformatted after the download has
been completed.

This reduces the size of the per-request structure, and removes
yet another PATH_MAX based limit.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agohttp.c: Drop useless != NULL test in finish_http_pack_request
Shawn O. Pearce [Sat, 17 Apr 2010 20:07:37 +0000 (13:07 -0700)]
http.c: Drop useless != NULL test in finish_http_pack_request

The test preq->packfile != NULL is always true.  If packfile was
actually NULL when entering this function the ftell() above would
crash out with a SIGSEGV, resulting in never reaching this point.

Simplify the code by just removing the conditional.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agohttp.c: Tiny refactoring of finish_http_pack_request
Shawn O. Pearce [Sat, 17 Apr 2010 20:07:36 +0000 (13:07 -0700)]
http.c: Tiny refactoring of finish_http_pack_request

Always remove the struct packed_git from the active list, even
if the rename of the temporary file fails.

While we are here, simplify the code a bit by using a common
local variable name ("p") to hold the relevant packed_git.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot5550-http-fetch: Use subshell for repository operations
Shawn O. Pearce [Sat, 17 Apr 2010 20:07:35 +0000 (13:07 -0700)]
t5550-http-fetch: Use subshell for repository operations

Change into the server repository's directory using a subshell,
so we can return back to the top of the trash directory before
doing anything more in the test script.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agohttp.c: Remove bad free of static block
Shawn O. Pearce [Sat, 17 Apr 2010 20:07:34 +0000 (13:07 -0700)]
http.c: Remove bad free of static block

The filename variable here is pointing to a block of memory that
was allocated by sha1_file.c and is also held in a static variable
scoped within the sha1_pack_name() function.  Doing a free() here is
returning that memory to the allocator while we might still try to
reuse it on a subsequent sha1_pack_name() invocation.  That's not
acceptable, so don't free it.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Sat, 17 Apr 2010 19:40:45 +0000 (12:40 -0700)]
Merge branch 'maint'

* maint:
  t1010-mktree: Adjust expected result to code and documentation
  combined diff: correctly handle truncated file
  Document new "already-merged" rule for branch -d

14 years agot6006: do not write to /tmp
Matthew Ogilvie [Sat, 17 Apr 2010 02:29:18 +0000 (20:29 -0600)]
t6006: do not write to /tmp

Signed-off-by: Matthew Ogilvie <mmogilvi_git@miniinfo.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-instaweb: pass through invoking user's path to gitweb CGI scripts
Chris Webb [Thu, 15 Apr 2010 13:29:45 +0000 (14:29 +0100)]
git-instaweb: pass through invoking user's path to gitweb CGI scripts

When used with lighttpd or mongoose, git-instaweb previously passed a
hard-coded, default value of PATH to the gitweb CGI script. Use the invoking
user's value for PATH for this instead. (This is already implicitly the
behaviour for other web servers supported by git-instaweb.)

Signed-off-by: Chris Webb <chris@arachsys.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
14 years agogitweb: simplify gitweb.min.* generation and clean-up rules
Junio C Hamano [Thu, 15 Apr 2010 12:57:18 +0000 (08:57 -0400)]
gitweb: simplify gitweb.min.* generation and clean-up rules

GITWEB_CSS and GITWEB_JS are meant to be "what URI should the installed
cgi script use to refer to the stylesheet and JavaScript", never "this
is the name of the file we are building".  Don't use them to decide what
file to build minified versions in.

While we are at it, lose FILES that is used only for "clean" target in a
misguided way.  "make clean" should try to remove all the potential
build artifacts regardless of a minor configuration change. Instead of
trying to remove only the build product "make clean" would have created
if it were run without "clean", explicitly list the three potential build
products for removal.

Tested-by: Mark Rada <marada@uwaterloo.co>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotag -v: use RUN_GIT_CMD to run verify-tag
Jonathan Nieder [Thu, 15 Apr 2010 09:36:25 +0000 (04:36 -0500)]
tag -v: use RUN_GIT_CMD to run verify-tag

This is the preferred way to run a git command.

The only obvious observable effects I can think of are that the exec
is properly reported in GIT_TRACE output and that verifying signed
tags will still work if the git-verify-tag hard link in gitexecdir
goes missing.

Helped-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodocumentation: clarify direction of core.autocrlf
Will Palmer [Sat, 17 Apr 2010 16:55:26 +0000 (17:55 +0100)]
documentation: clarify direction of core.autocrlf

The description for core.autocrlf refers to reads from / writes to
"the filesystem", the only use of this rather ambiguous term, which
technically could be referring to the git object database. (All other
mentions are part of phrases such as "..filesystems (like NFS)..").

Other sections, including the section on core.safecrlf, use the term
"work tree" for the same purpose as the term "the filesystem" is used in
the core.autocrlf section, so that seems like a good alternative, which
makes it clearer what direction the addition/removal of CR characters
occurs in.

Signed-off-by: Will Palmer <wmpalmer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodiff: use large integers for diffstat calculations
Jeff King [Sat, 17 Apr 2010 17:41:08 +0000 (13:41 -0400)]
diff: use large integers for diffstat calculations

The diffstat "added" and "changed" fields generally store
line counts; however, for binary files, they store file
sizes. Since we store and print these values as ints, a
diffstat on a file larger than 2G can show a negative size.
Instead, let's use uintmax_t, which should be at least 64
bits on modern platforms.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot1010-mktree: Adjust expected result to code and documentation
Michael J Gruber [Thu, 15 Apr 2010 09:34:07 +0000 (11:34 +0200)]
t1010-mktree: Adjust expected result to code and documentation

The last two tests here were always supposed to fail in the sense
that, according to code and documentation, mktree should read non-recursive
ls-tree output, but not recursive one, and therefore explicitely refuses
to deal with slashes.

Adjust the test (must_fail) so that it succeeds when mktree dies on
slashes.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agocombined diff: correctly handle truncated file
Thomas Rast [Thu, 15 Apr 2010 12:59:37 +0000 (14:59 +0200)]
combined diff: correctly handle truncated file

Consider an evil merge of two commits A and B, both of which have a
file 'foo', but the merge result does not have that file.

The combined-diff code learned in 4462731 (combine-diff: do not punt
on removed or added files., 2006-02-06) to concisely show only the
removal, since that is the evil part and the previous contents are
presumably uninteresting.

However, to diagnose an empty merge result, it overloaded the variable
that holds the file's length.  This means that the check also triggers
for truncated files.  Consequently, such files were not shown in the
diff at all despite the merge being clearly evil.

Fix this by adding a new variable that distinguishes whether the file
was deleted (which is the case 4462731 handled) or truncated.  In the
truncated case, we show the full combined diff again, which is rather
spammy but at least does not hide the evilness.

Reported-by: David Martínez Martí <desarrollo@gestiweb.com>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogitk: Display dirty submodules correctly
Jens Lehmann [Fri, 9 Apr 2010 20:16:42 +0000 (22:16 +0200)]
gitk: Display dirty submodules correctly

Since recently "git diff --submodule" prints out extra lines when the
submodule contains untracked or modified files. Show all those lines of
one submodule under the same header.

Also for newly added or removed submodules the submodule name contained
trailing garbage because the extraction of the name was not done right.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
14 years agoDocument new "already-merged" rule for branch -d
Jonathan Nieder [Thu, 15 Apr 2010 07:25:38 +0000 (02:25 -0500)]
Document new "already-merged" rule for branch -d

v1.7.0-rc0~18^2 (branch -d: base the "already-merged" safety on the
branch it merges with, 2009-12-29) taught ‘git branch’ a new heuristic
for when it is safe to delete a branch without forcing the issue.  It
is safe to delete a branch "topic" without second thought if:

 - the branch "topic" is set up to pull from a (remote-tracking,
   usually) branch and is fully merged in that "upstream" branch, or

 - there is no branch.topic.merge configuration and branch "topic" is
   fully merged in the current HEAD.

Update the man page to acknowledge the new rules.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAdd .depend directories to .gitignore
Jonathan Nieder [Thu, 15 Apr 2010 07:35:20 +0000 (02:35 -0500)]
Add .depend directories to .gitignore

The makefile snippets that would land in these directories are already
being ignored.  Ignore the directories instead so they don’t show up
in ‘git clean -n’ output.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoam -3: recover the diagnostic messages for corrupt patches
Junio C Hamano [Fri, 9 Apr 2010 23:58:28 +0000 (16:58 -0700)]
am -3: recover the diagnostic messages for corrupt patches

"git am -3" first tries to apply the patch without any extra trick, and
applies it to a synthesized tree for 3-way merge after the first attempt
fails.  "git apply" exits with status 1 for a patch that is well-formed
but is not applicable (and it dies on other errors with non-zereo, non-1
status) and has an optimization to fall back to the 3-way merge only in
the case.

An earlier patch 3ddd170 (am: suppress apply errors when using 3-way,
2009-06-16) squelched diagnostic messages from the first attempt, not to
be shown to the end user.  This worked reasonably well if the reason the
first application failed was because the patch was made against a wrong
version.

When the patch is corrupt (e.g. line-wrapped or leading whitespaces got
dropped), however, because the second patch application is not even
attempted, the error message from the first application is never shown
and is forever lost.  This message is necessary to locate where the patch
is corrupt and fix it up.

We could fix this issue by reverting 3dd170, or keeping the error message
to somewhere and showing it, but because this is an error codepath, the
easiest is to disable the optimization.  The second patch application is
attempted even when the input is corrupt, and it will notice, diagnose,
and stop with an error message.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Wed, 14 Apr 2010 01:21:29 +0000 (18:21 -0700)]
Merge branch 'maint'

* maint:
  Documentation/config.txt: default gc.aggressiveWindow is 250, not 10
  Docs: Add -X option to git-merge's synopsis.

Conflicts:
Documentation/merge-options.txt

14 years agopretty: Initialize notes if %N is used
Johannes Gilger [Tue, 13 Apr 2010 20:31:12 +0000 (22:31 +0200)]
pretty: Initialize notes if %N is used

When using git log --pretty='%N' without an explicit --show-notes, git
would segfault. This patches fixes this behaviour by loading the needed
notes datastructures if --pretty is used and the format contains %N.
When --pretty='%N' is used together with --no-notes, %N won't be
expanded.

This is an extension to a proposed patch by Jeff King.

Signed-off-by: Johannes Gilger <heipei@hackvalue.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodescribe: Break annotated tag ties by tagger date
Shawn O. Pearce [Mon, 12 Apr 2010 23:25:29 +0000 (16:25 -0700)]
describe: Break annotated tag ties by tagger date

If more than one annotated tag points at the same commit, use the
tag whose tagger field has a more recent date stamp.  This resolves
non-deterministic cases where the maintainer has done:

  $ git tag -a -m "2.1-rc1" v2.1-rc1  deadbeef
  $ git tag -a -m "2.1"     v2.1      deadbeef

If the tag is an older-style annotated tag with no tagger date, we
assume a date stamp at the UNIX epoch. This will cause us to prefer
an annotated tag that has a valid date.

We could also try to consider the tag object chain, favoring a tag
that "includes" another one:

  $ git tag -a -m "2.1-rc0" v2.1-rc1  deadbeef
  $ git tag -a -m "2.1"     v2.1      v2.1-rc1

However traversing the tag's object chain looking for inclusion
is much more complicated.  Its already very likely that even in
these cases the v2.1 tag will have a more recent tagger date than
v2.1-rc1, so with this change describe should still resolve this
by selecting the more recent v2.1.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/config.txt: default gc.aggressiveWindow is 250, not 10
Jay Soffian [Tue, 13 Apr 2010 16:52:55 +0000 (12:52 -0400)]
Documentation/config.txt: default gc.aggressiveWindow is 250, not 10

The default for gc.aggressiveWindow has been 250 since 1c192f3
(gc --aggressive: make it really aggressive, 2007-12-06).

Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotag.c: Parse tagger date (if present)
Shawn O. Pearce [Mon, 12 Apr 2010 23:25:28 +0000 (16:25 -0700)]
tag.c: Parse tagger date (if present)

Just like with committer dates, we parse the tagger date into the
struct tag so its available for further downstream processing.
However since the tagger header was not introduced until Git 0.99.1
we must consider it optional.  For tags missing this header we use
the default date of 0.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotag.c: Refactor parse_tag_buffer to be saner to program
Shawn O. Pearce [Mon, 12 Apr 2010 23:25:27 +0000 (16:25 -0700)]
tag.c: Refactor parse_tag_buffer to be saner to program

This code was horribly ugly to follow.  The structure of the headers
in an annotated tag object must follow a prescribed order, and most
of these are required.  Simplify the entire parsing logic by going
through the headers in the order they are supposed to appear in,
acting on each header as its identified in the buffer.

This change has the same behavior as the older version, its just
easier to read and maintain.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotag.h: Remove unused signature field
Shawn O. Pearce [Mon, 12 Apr 2010 23:25:26 +0000 (16:25 -0700)]
tag.h: Remove unused signature field

Its documented as unused.  So lets just drop it from the structure
since we haven't ever used it.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotag.c: Correct indentation
Shawn O. Pearce [Mon, 12 Apr 2010 23:25:25 +0000 (16:25 -0700)]
tag.c: Correct indentation

These lines were incorrectly indented with spaces, violating our
coding style.  Its annoying to read with 4 position tab stops, so
fix the indentation to be correct.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoindex-pack: smarter memory usage when appending objects
Nicolas Pitre [Mon, 12 Apr 2010 20:50:35 +0000 (16:50 -0400)]
index-pack: smarter memory usage when appending objects

In the same spirit as commit 9892bebafe, let's avoid allocating the full
buffer for the deflated data in write_compressed() in order to write it.
Let's deflate and write the data in chunks instead to reduce memory
usage.

Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoindex-pack: rationalize unpack_entry_data()
Nicolas Pitre [Mon, 12 Apr 2010 16:12:06 +0000 (12:12 -0400)]
index-pack: rationalize unpack_entry_data()

Rework the loop to remove duplicated calls to use() and fill(), and
to make the code easier to read.

Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoindex-pack: smarter memory usage when resolving deltas
Nicolas Pitre [Mon, 12 Apr 2010 16:11:07 +0000 (12:11 -0400)]
index-pack: smarter memory usage when resolving deltas

In the same spirit as commit 9892bebafe, let's avoid allocating the full
buffer for the deflated data in get_data_from_pack() in order to inflate
it.  Let's read and inflate the data in chunks instead to reduce memory
usage.

Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocs: Add -X option to git-merge's synopsis.
Marc Branchaud [Mon, 12 Apr 2010 16:28:13 +0000 (12:28 -0400)]
Docs: Add -X option to git-merge's synopsis.

Also move -X's description next to -s's in merge-options.txt.

This makes it easier to learn how to specify merge strategy options.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'jl/maint-submodule-gitfile-awareness'
Junio C Hamano [Sun, 11 Apr 2010 20:54:28 +0000 (13:54 -0700)]
Merge branch 'jl/maint-submodule-gitfile-awareness'

* jl/maint-submodule-gitfile-awareness:
  Windows: start_command: Support non-NULL dir in struct child_process

14 years agoWindows: start_command: Support non-NULL dir in struct child_process
Johannes Sixt [Sun, 11 Apr 2010 20:40:12 +0000 (22:40 +0200)]
Windows: start_command: Support non-NULL dir in struct child_process

A caller of start_command can set the member 'dir' to a directory to
request that the child process starts with that directory as CWD. The first
user of this feature was added recently in eee49b6 (Teach diff --submodule
and status to handle .git files in submodules).

On Windows, we have been lazy and had not implemented support for this
feature, yet. This fixes the shortcoming.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoSync with 1.7.0.5
Junio C Hamano [Sun, 11 Apr 2010 20:44:17 +0000 (13:44 -0700)]
Sync with 1.7.0.5

14 years agoMerge branch 'jc/doc-submit-gmail'
Junio C Hamano [Sun, 11 Apr 2010 20:44:05 +0000 (13:44 -0700)]
Merge branch 'jc/doc-submit-gmail'

* jc/doc-submit-gmail:
  SubmittingPatches: update GMail section

14 years agoGit 1.7.0.5 v1.7.0.5
Junio C Hamano [Sun, 11 Apr 2010 20:41:43 +0000 (13:41 -0700)]
Git 1.7.0.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'rc/maint-reflog-msg-for-forced-branch' into maint
Junio C Hamano [Sun, 11 Apr 2010 20:39:47 +0000 (13:39 -0700)]
Merge branch 'rc/maint-reflog-msg-for-forced-branch' into maint

* rc/maint-reflog-msg-for-forced-branch:
  branch: say "Reset to" in reflog entries for 'git branch -f' operations

14 years agoblame documentation: -M/-C notice copied lines as well as moved ones
Junio C Hamano [Sun, 11 Apr 2010 19:17:42 +0000 (12:17 -0700)]
blame documentation: -M/-C notice copied lines as well as moved ones

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot3507: Make test executable
Stephen Boyd [Sun, 11 Apr 2010 08:43:46 +0000 (01:43 -0700)]
t3507: Make test executable

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoattr: Expand macros immediately when encountered.
Henrik Grubbström [Tue, 6 Apr 2010 12:46:44 +0000 (14:46 +0200)]
attr: Expand macros immediately when encountered.

When using macros it is otherwise hard to know whether an
attribute set by the macro should override an already set
attribute. Consider the following .gitattributes file:

[attr]mybinary binary -ident
* ident
foo.bin mybinary
bar.bin mybinary ident

Without this patch both foo.bin and bar.bin will have
the ident attribute set, which is probably not what
the user expects. With this patch foo.bin will have an
unset ident attribute, while bar.bin will have it set.

Signed-off-by: Henrik Grubbström <grubba@grubba.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoattr: Allow multiple changes to an attribute on the same line.
Henrik Grubbström [Tue, 6 Apr 2010 12:46:43 +0000 (14:46 +0200)]
attr: Allow multiple changes to an attribute on the same line.

When using macros it isn't inconceivable to have an attribute
being set by a macro, and then being reset explicitly.

Signed-off-by: Henrik Grubbström <grubba@grubba.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoattr: Fixed debug output for macro expansion.
Henrik Grubbström [Tue, 6 Apr 2010 12:46:42 +0000 (14:46 +0200)]
attr: Fixed debug output for macro expansion.

When debug_set() was called during macro expansion, it
received a pointer to a struct git_attr rather than a
string.

Signed-off-by: Henrik Grubbström <grubba@grubba.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoGit 1.7.1-rc1 v1.7.1-rc1
Junio C Hamano [Sat, 10 Apr 2010 20:05:16 +0000 (13:05 -0700)]
Git 1.7.1-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'mr/gitweb-jsmin'
Junio C Hamano [Sat, 10 Apr 2010 20:02:22 +0000 (13:02 -0700)]
Merge branch 'mr/gitweb-jsmin'

* mr/gitweb-jsmin:
  gitweb: update INSTALL to use shorter make target
  gitweb: add documentation to INSTALL regarding gitweb.js
  instaweb: add minification awareness
  Gitweb: add autoconfigure support for minifiers
  Gitweb: add support for minifying gitweb.css
  Gitweb: add ignore and clean rules for minified files

14 years agosend-email: Cleanup smtp-domain and add config
Brian Gernhardt [Sat, 10 Apr 2010 14:53:56 +0000 (10:53 -0400)]
send-email: Cleanup smtp-domain and add config

The way the code stored --smtp-domain was unlike its handling of other
similar options.  Bring it in line with the others by:

- Renaming $mail_domain to $smtp_domain to match the command line
  option. Also move its declaration from near the top of the file to
  near other option variables.

- Removing $mail_domain_default.  The variable was used once and only
  served to move the default away from where it gets used.

- Adding a sendemail.smtpdomain config option.  smtp-domain was the
  only SMTP configuration option that couldn't be set in the user's
  .gitconfig.

Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocument send-email --smtp-domain
Brian Gernhardt [Sat, 10 Apr 2010 14:53:55 +0000 (10:53 -0400)]
Document send-email --smtp-domain

Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agosend-email: Don't use FQDNs without a '.'
Brian Gernhardt [Sat, 10 Apr 2010 14:53:54 +0000 (10:53 -0400)]
send-email: Don't use FQDNs without a '.'

Although Net::Domain::domainname attempts to be very thorough, the
host's configuration can still refuse to give a FQDN.  Check to see if
what we receive contains a dot as a basic sanity check.

Since the same condition is used twice and getting complex, let's move
it to a new function.

Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agosend-email: Cleanup { style
Brian Gernhardt [Sat, 10 Apr 2010 14:53:53 +0000 (10:53 -0400)]
send-email: Cleanup { style

As Jakub Narebski pointed out on the list, Perl code usually prefers

  sub func {
  }

over

  sub func
  {
  }

git-send-email.perl is somewhat inconsistent in its style, with 23
subroutines using the first style and 6 using the second.  Convert the
few odd subroutines so that the code matches normal Perl style.

Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'jl/maint-submodule-gitfile-awareness'
Junio C Hamano [Sat, 10 Apr 2010 19:13:46 +0000 (12:13 -0700)]
Merge branch 'jl/maint-submodule-gitfile-awareness'

* jl/maint-submodule-gitfile-awareness:
  Teach diff --submodule and status to handle .git files in submodules

14 years agoTeach diff --submodule and status to handle .git files in submodules
Jens Lehmann [Sat, 10 Apr 2010 17:01:12 +0000 (19:01 +0200)]
Teach diff --submodule and status to handle .git files in submodules

The simple test for an existing .git directory gives an incorrect result
if .git is a file that records "gitdir: overthere". So for submodules that
use a .git file, "git status" and the diff family - when the "--submodule"
option is given - did assume the submodule was not populated at all when
a .git file was used, thus generating wrong output or no output at all.

This is fixed by using read_gitfile_gently() to get the correct location
of the .git directory. While at it, is_submodule_modified() was cleaned up
to use the "dir" member of "struct child_process" instead of setting the
GIT_WORK_TREE and GIT_DIR environment variables.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Sat, 10 Apr 2010 05:43:18 +0000 (22:43 -0700)]
Merge branch 'maint'

* maint:
  Let check_preimage() use memset() to initialize "struct checkout"
  fetch/push: fix usage strings

14 years agoLet check_preimage() use memset() to initialize "struct checkout"
Jens Lehmann [Fri, 9 Apr 2010 20:08:35 +0000 (22:08 +0200)]
Let check_preimage() use memset() to initialize "struct checkout"

Every code site except check_preimage() uses either memset() or declares
a static instance of "struct checkout" to achieve proper initialization.
Lets use memset() instead of explicit initialization of all members here
too to be on the safe side in case this structure is expanded someday.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'ef/maint-empty-commit-log' into maint
Junio C Hamano [Sat, 10 Apr 2010 05:38:53 +0000 (22:38 -0700)]
Merge branch 'ef/maint-empty-commit-log' into maint

* ef/maint-empty-commit-log:
  rev-list: fix --pretty=oneline with empty message

14 years agoMerge branch 'jc/conflict-marker-size' into maint
Junio C Hamano [Sat, 10 Apr 2010 05:38:34 +0000 (22:38 -0700)]
Merge branch 'jc/conflict-marker-size' into maint

* jc/conflict-marker-size:
  diff --check: honor conflict-marker-size attribute

14 years agoMerge branch 'sp/maint-http-backend-die-triggers-die-recursively' into maint
Junio C Hamano [Sat, 10 Apr 2010 05:38:16 +0000 (22:38 -0700)]
Merge branch 'sp/maint-http-backend-die-triggers-die-recursively' into maint

* sp/maint-http-backend-die-triggers-die-recursively:
  http-backend: Don't infinite loop during die()

14 years agoMerge branch 'mg/maint-send-email-lazy-editor' into maint
Junio C Hamano [Sat, 10 Apr 2010 05:23:04 +0000 (22:23 -0700)]
Merge branch 'mg/maint-send-email-lazy-editor' into maint

* mg/maint-send-email-lazy-editor:
  send-email: lazily assign editor variable

14 years agoMerge branch 'rr/imap-send-unconfuse-from-line' into maint
Junio C Hamano [Sat, 10 Apr 2010 05:22:44 +0000 (22:22 -0700)]
Merge branch 'rr/imap-send-unconfuse-from-line' into maint

* rr/imap-send-unconfuse-from-line:
  imap-send: Remove limitation on message body

14 years agoMerge branch 'rb/maint-python-path' into maint
Junio C Hamano [Sat, 10 Apr 2010 05:22:19 +0000 (22:22 -0700)]
Merge branch 'rb/maint-python-path' into maint

* rb/maint-python-path:
  Correct references to /usr/bin/python which does not exist on FreeBSD

14 years agoMerge branch 'gh/maint-stash-show-error-message' into maint
Junio C Hamano [Sat, 10 Apr 2010 05:22:14 +0000 (22:22 -0700)]
Merge branch 'gh/maint-stash-show-error-message' into maint

* gh/maint-stash-show-error-message:
  Improve error messages from 'git stash show'

14 years agoMerge branch 'mg/mailmap-update' into maint
Junio C Hamano [Sat, 10 Apr 2010 05:22:06 +0000 (22:22 -0700)]
Merge branch 'mg/mailmap-update' into maint

* mg/mailmap-update:
  .mailmap: Entries for Alex Bennée, Deskin Miller, Vitaly "_Vi" Shukela

14 years agoMerge branch 'bc/maint-daemon-sans-ss-family' into maint
Junio C Hamano [Sat, 10 Apr 2010 05:22:00 +0000 (22:22 -0700)]
Merge branch 'bc/maint-daemon-sans-ss-family' into maint

* bc/maint-daemon-sans-ss-family:
  daemon.c: avoid accessing ss_family member of struct sockaddr_storage

14 years agofetch/push: fix usage strings
Tay Ray Chuan [Sat, 10 Apr 2010 02:50:19 +0000 (10:50 +0800)]
fetch/push: fix usage strings

 - use "<options>" instead of just "options".
 - use "[<repository> [<refspec>...]]" to indicate that <repository> and
   <refspec> are optional, and that <refspec> cannot be specified
   without specifying <repository>.

Note that when called without specifying <repository> (eg. "git fetch
-f"), it is accurate to say that the "git fetch [<options>]
[<repository> ...]" case takes precedence over "git fetch [<options>]
<group>".

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoremote-curl: ensure that URLs have a trailing slash
Tay Ray Chuan [Thu, 8 Apr 2010 02:15:18 +0000 (10:15 +0800)]
remote-curl: ensure that URLs have a trailing slash

Previously, we blindly assumed that URLs passed to the remote-curl
helper did not end with a trailing slash.

Use the convenience function end_url_with_slash() from http.[ch] to
ensure that URLs have a trailing slash on invocation of the remote-curl
helper, and use the URL as one with a trailing slash throughout.

It is possible for users to pass a URL with a trailing slash to
remote-curl, by, say, setting it in remote.<name>.url in their git
config. The resulting requests have an empty path component (//) and may
break implementations of the http git protocol.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agohttp: make end_url_with_slash() public
Tay Ray Chuan [Thu, 8 Apr 2010 02:15:17 +0000 (10:15 +0800)]
http: make end_url_with_slash() public

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot5541-http-push: add test for URLs with trailing slash
Tay Ray Chuan [Thu, 8 Apr 2010 02:15:16 +0000 (10:15 +0800)]
t5541-http-push: add test for URLs with trailing slash

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'rc/maint-reflog-msg-for-forced-branch'
Junio C Hamano [Sat, 10 Apr 2010 03:42:10 +0000 (20:42 -0700)]
Merge branch 'rc/maint-reflog-msg-for-forced-branch'

* rc/maint-reflog-msg-for-forced-branch:
  branch: say "Reset to" in reflog entries for 'git branch -f' operations

Conflicts:
builtin-branch.c

14 years agobranch: say "Reset to" in reflog entries for 'git branch -f' operations
Tay Ray Chuan [Fri, 9 Apr 2010 12:38:18 +0000 (20:38 +0800)]
branch: say "Reset to" in reflog entries for 'git branch -f' operations

In 5f856dd (fix reflog entries for "git-branch"), it is mentioned that
'git branch -f' is intended to be equivalent to 'git reset'. Since we
usually say "reset to <commit>" in the git-reset Documentation and
elsewhere, it would make sense to say "Reset to" here as well, instead
of "Reset from" previously.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge early parts of jk/cached-textconv
Junio C Hamano [Fri, 9 Apr 2010 06:31:27 +0000 (23:31 -0700)]
Merge early parts of jk/cached-textconv

14 years agodiff.c: work around pointer constness warnings
Junio C Hamano [Fri, 9 Apr 2010 06:30:49 +0000 (23:30 -0700)]
diff.c: work around pointer constness warnings

The textconv leak fix introduced two invocations of free() to release
memory pointed by "const char *", which get annoying compiler warning.

14 years agoMerge branch 'maint'
Junio C Hamano [Fri, 9 Apr 2010 06:27:23 +0000 (23:27 -0700)]
Merge branch 'maint'

* maint:
  docs: clarify "branch -l"

14 years agoThread-safe xmalloc and xrealloc needs a recursive mutex
Johannes Sixt [Thu, 8 Apr 2010 07:15:39 +0000 (09:15 +0200)]
Thread-safe xmalloc and xrealloc needs a recursive mutex

The mutex used to protect object access (read_mutex) may need to be
acquired recursively.  Introduce init_recursive_mutex() helper function
in thread-utils.c that constructs a mutex with the PHREAD_MUTEX_RECURSIVE
attribute.

pthread_mutex_init() emulation on Win32 is already recursive as it is
implemented on top of the CRITICAL_SECTION type, which is recursive.

    http://msdn.microsoft.com/en-us/library/ms682530%28VS.85%29.aspx

Add do-nothing compatibility wrappers for pthread_mutexattr* functions.

Initial-version-by: Fredrik Kuivinen <frekui@gmail.com>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodocs: clarify "branch -l"
Jeff King [Thu, 8 Apr 2010 19:49:08 +0000 (15:49 -0400)]
docs: clarify "branch -l"

This option is mostly useless these days because we turn on
reflogs by default in non-bare repos.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoSubmittingPatches: update GMail section
Junio C Hamano [Wed, 7 Apr 2010 22:59:17 +0000 (15:59 -0700)]
SubmittingPatches: update GMail section

Even if you use imap-send to throw your drafts in the outbox, using their
web interface will mangle your patches.  Clarify that the imap-send is
meant to be used together with a real MUA that can use IMAP drafts, and
remove instructions related to the web interface, which is irrelevant.

Add description of send-email as an alternative.

Use --cover-letter, and do not use -C nor --no-color, on the example
command line for format-patch.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'mg/notes-reflog'
Junio C Hamano [Wed, 7 Apr 2010 22:34:09 +0000 (15:34 -0700)]
Merge branch 'mg/notes-reflog'

* mg/notes-reflog:
  refs.c: Write reflogs for notes just like for branch heads
  t3301-notes: Test the creation of reflog entries

14 years agoMerge branch 'jn/mailinfo-scissors'
Junio C Hamano [Wed, 7 Apr 2010 22:34:06 +0000 (15:34 -0700)]
Merge branch 'jn/mailinfo-scissors'

* jn/mailinfo-scissors:
  Teach mailinfo %< as an alternative scissors mark

14 years agofix typos and grammar in 1.7.1 draft release notes
Jeff King [Wed, 7 Apr 2010 20:57:11 +0000 (16:57 -0400)]
fix typos and grammar in 1.7.1 draft release notes

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agonotes.h: declare bit field as unsigned to silence compiler complaints
Brandon Casey [Tue, 6 Apr 2010 15:11:44 +0000 (10:11 -0500)]
notes.h: declare bit field as unsigned to silence compiler complaints

The IRIX MIPSPro compiler complains like this:

   cc-1107 c99: WARNING File = notes.h, Line = 215
     A signed bit field has a length of 1 bit.

           int suppress_default_notes:1;
               ^

'unsigned' is what was intended, so lets make it so.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoGit 1.7.1-rc0 v1.7.1-rc0
Junio C Hamano [Tue, 6 Apr 2010 22:00:01 +0000 (15:00 -0700)]
Git 1.7.1-rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'da/maint-python-startup'
Junio C Hamano [Tue, 6 Apr 2010 21:50:47 +0000 (14:50 -0700)]
Merge branch 'da/maint-python-startup'

* da/maint-python-startup:
  Makefile: Remove usage of deprecated Python "has_key" method

14 years agoMerge branch 'ic/bash-completion-rpm'
Junio C Hamano [Tue, 6 Apr 2010 21:50:47 +0000 (14:50 -0700)]
Merge branch 'ic/bash-completion-rpm'

* ic/bash-completion-rpm:
  RPM spec: include bash completion support

14 years agoMerge branch 'sb/fmt-merge-msg'
Junio C Hamano [Tue, 6 Apr 2010 21:50:46 +0000 (14:50 -0700)]
Merge branch 'sb/fmt-merge-msg'

* sb/fmt-merge-msg:
  fmt-merge-msg: hide summary option
  fmt-merge-msg: remove custom string_list implementation
  string-list: add unsorted_string_list_lookup()
  fmt-merge-msg: use pretty.c routines
  t6200: test fmt-merge-msg more
  t6200: modernize with test_tick
  fmt-merge-msg: be quiet if nothing to merge

14 years agoMerge branch 'jc/conflict-marker-size'
Junio C Hamano [Tue, 6 Apr 2010 21:50:46 +0000 (14:50 -0700)]
Merge branch 'jc/conflict-marker-size'

* jc/conflict-marker-size:
  diff --check: honor conflict-marker-size attribute

14 years agoMerge branch 'ef/maint-empty-commit-log'
Junio C Hamano [Tue, 6 Apr 2010 21:50:46 +0000 (14:50 -0700)]
Merge branch 'ef/maint-empty-commit-log'

* ef/maint-empty-commit-log:
  rev-list: fix --pretty=oneline with empty message

14 years agoMerge branch 'sg/bash-completion'
Junio C Hamano [Tue, 6 Apr 2010 21:50:45 +0000 (14:50 -0700)]
Merge branch 'sg/bash-completion'

* sg/bash-completion:
  bash: completion for gitk aliases
  bash: support user-supplied completion scripts for aliases
  bash: support user-supplied completion scripts for user's git commands
  bash: improve aliased command recognition

14 years agoRevert "Link against libiconv on IRIX"
Junio C Hamano [Mon, 5 Apr 2010 17:16:11 +0000 (10:16 -0700)]
Revert "Link against libiconv on IRIX"

Brandon Casey reports:

    Subject: Re: [PATCH] Link against libiconv on IRIX
    Date: Mon, 05 Apr 2010 11:45:32 -0500
    Message-Id: <1UypQMCHLT57SnjSQIM66RTkLalsvavG8xXoQJv4rEQ@cipher.nrlssc.navy.mil>

    This breaks compilation on IRIX 6.5.29m for me since there
    is no separate libiconv.so.

    What version of IRIX are you using?

    On my system, even the iconv utility doesn't link against
    a libiconv shared object.  It seems the iconv functionality is in libc.

       # ldd /usr/bin/iconv
       libc.so.1  =>    /usr/lib32/libc.so.1

    Could it be that you are using a third party iconv library?
    I've experienced this on another system and the problem was related
    to curl.  In that case, curl was linked against an external iconv and
    not the native library, so if I tried to build with curl support, I had
    to also build against the external iconv library.

While we wait for an improved solution, revert the regression caused by
21704227904b51197976c61c595b52d807677533.

14 years agoMerge branch 'maint'
Junio C Hamano [Sun, 4 Apr 2010 17:23:21 +0000 (10:23 -0700)]
Merge branch 'maint'

* maint:
  pack-protocol.txt: fix pkt-line lengths
  pack-protocol.txt: fix spelling

14 years agopack-protocol.txt: fix pkt-line lengths
Tay Ray Chuan [Sun, 4 Apr 2010 13:12:17 +0000 (21:12 +0800)]
pack-protocol.txt: fix pkt-line lengths

Previously, the lengths were 4-bytes short. Fix it such that the lengths
reflect the total length of the pkt-line, as per spec.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agopack-protocol.txt: fix spelling
Tay Ray Chuan [Sun, 4 Apr 2010 13:12:16 +0000 (21:12 +0800)]
pack-protocol.txt: fix spelling

s/paramater/parameter/.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoTeach mailinfo %< as an alternative scissors mark
Jonathan Nieder [Sat, 3 Apr 2010 19:52:17 +0000 (14:52 -0500)]
Teach mailinfo %< as an alternative scissors mark

Handle perforations found “in the wild” more robustly by recognizing
“%<” as an alternative scissors mark.

This feature is only meant to support old habits.  Discourage new use
of the percent-based version by only documenting the 8< symbol so new
users’ perforations can still be recognized by old versions of Git.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'mb/rebase-i-no-ff'
Junio C Hamano [Sat, 3 Apr 2010 19:28:44 +0000 (12:28 -0700)]
Merge branch 'mb/rebase-i-no-ff'

* mb/rebase-i-no-ff:
  Teach rebase the --no-ff option.

Conflicts:
git-rebase--interactive.sh
t/t3404-rebase-interactive.sh

14 years agoMerge branch 'sp/maint-http-backend-die-triggers-die-recursively'
Junio C Hamano [Sat, 3 Apr 2010 19:28:43 +0000 (12:28 -0700)]
Merge branch 'sp/maint-http-backend-die-triggers-die-recursively'

* sp/maint-http-backend-die-triggers-die-recursively:
  http-backend: Don't infinite loop during die()

14 years agoMerge branch 'rr/imap-send-unconfuse-from-line'
Junio C Hamano [Sat, 3 Apr 2010 19:28:42 +0000 (12:28 -0700)]
Merge branch 'rr/imap-send-unconfuse-from-line'

* rr/imap-send-unconfuse-from-line:
  imap-send: Remove limitation on message body

14 years agoMerge branch 'mg/use-default-abbrev-length-in-rev-list'
Junio C Hamano [Sat, 3 Apr 2010 19:28:42 +0000 (12:28 -0700)]
Merge branch 'mg/use-default-abbrev-length-in-rev-list'

* mg/use-default-abbrev-length-in-rev-list:
  rev-list: use default abbrev length when abbrev-commit is in effect

14 years agoMerge branch 'mg/maint-send-email-lazy-editor'
Junio C Hamano [Sat, 3 Apr 2010 19:28:42 +0000 (12:28 -0700)]
Merge branch 'mg/maint-send-email-lazy-editor'

* mg/maint-send-email-lazy-editor:
  send-email: lazily assign editor variable

14 years agoMerge branch 'rb/maint-python-path'
Junio C Hamano [Sat, 3 Apr 2010 19:28:41 +0000 (12:28 -0700)]
Merge branch 'rb/maint-python-path'

* rb/maint-python-path:
  Correct references to /usr/bin/python which does not exist on FreeBSD

14 years agoMerge branch 'jn/merge-diff3-label'
Junio C Hamano [Sat, 3 Apr 2010 19:28:41 +0000 (12:28 -0700)]
Merge branch 'jn/merge-diff3-label'

* jn/merge-diff3-label:
  merge-recursive: add a label for ancestor
  cherry-pick, revert: add a label for ancestor
  revert: clarify label on conflict hunks
  compat: add mempcpy()
  checkout -m --conflict=diff3: add a label for ancestor
  merge_trees(): add ancestor label parameter for diff3-style output
  merge_file(): add comment explaining behavior wrt conflict style
  checkout --conflict=diff3: add a label for ancestor
  ll_merge(): add ancestor label parameter for diff3-style output
  merge-file --diff3: add a label for ancestor
  xdl_merge(): move file1 and file2 labels to xmparam structure
  xdl_merge(): add optional ancestor label to diff3-style output
  tests: document cherry-pick behavior in face of conflicts
  tests: document format of conflicts from checkout -m

Conflicts:
builtin/revert.c

14 years agoMerge branch 'ef/cherry-abbrev'
Junio C Hamano [Sat, 3 Apr 2010 19:28:40 +0000 (12:28 -0700)]
Merge branch 'ef/cherry-abbrev'

* ef/cherry-abbrev:
  ls: remove redundant logic
  cherry: support --abbrev option

14 years agoMerge branch 'bw/template-tool-buildconfig'
Junio C Hamano [Sat, 3 Apr 2010 19:28:40 +0000 (12:28 -0700)]
Merge branch 'bw/template-tool-buildconfig'

* bw/template-tool-buildconfig:
  Modernize git calling conventions in hook templates
  Make templates honour SHELL_PATH and PERL_PATH

14 years agoMerge branch 'mg/mailmap-update'
Junio C Hamano [Sat, 3 Apr 2010 19:28:40 +0000 (12:28 -0700)]
Merge branch 'mg/mailmap-update'

* mg/mailmap-update:
  .mailmap: Entries for Alex Bennée, Deskin Miller, Vitaly "_Vi" Shukela

14 years agoMerge branch 'bc/t5505-fix'
Junio C Hamano [Sat, 3 Apr 2010 19:28:40 +0000 (12:28 -0700)]
Merge branch 'bc/t5505-fix'

* bc/t5505-fix:
  t/t5505-remote.sh: escape * to prevent interpretation by shell as glob
  t5505: add missing &&
  t5505: remove unnecessary subshell invocations

14 years agoMerge branch 'gh/maint-stash-show-error-message'
Junio C Hamano [Sat, 3 Apr 2010 19:28:40 +0000 (12:28 -0700)]
Merge branch 'gh/maint-stash-show-error-message'

* gh/maint-stash-show-error-message:
  Improve error messages from 'git stash show'