git.git
14 years agomerge-recursive: Avoid excessive output for and reprocessing of renames
Elijah Newren [Fri, 20 Aug 2010 12:55:40 +0000 (06:55 -0600)]
merge-recursive: Avoid excessive output for and reprocessing of renames

In 5a2580d (merge_recursive: Fix renames across paths below D/F conflicts
2010-07-09) and ae74548 (merge-recursive: Fix multiple file rename across
D/F conflict 2010-08-17), renames across D/F conflicts were fixed by
making process_renames() consider as unprocessed renames whose dst_entry
"still" had higher stage entries.  The assumption was that those higher
stage entries would have been cleared out of dst_entry by that point in
cases where the conflict could be resolved (normal renames with no D/F
conflicts).  That is not the case -- higher stage entries will remain in
all cases.

Fix this by checking for higher stage entries corresponding to D/F
conflicts, namely that stages 2 and 3 have exactly one nonzero mode between
them.  The nonzero mode stage corresponds to a file at the path, while the
stage with a zero mode will correspond to a directory at that path (since
rename/delete conflicts will have already been handled before this codepath
is reached.)

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agomerge-recursive: Fix multiple file rename across D/F conflict
Elijah Newren [Tue, 17 Aug 2010 23:53:19 +0000 (17:53 -0600)]
merge-recursive: Fix multiple file rename across D/F conflict

In 5a2580d (merge_recursive: Fix renames across paths below D/F conflicts
2010-07-09), detection was added for renames across paths involved in a
directory<->file conflict.  However, the change accidentally involved
reusing an outer loop index ('i') in an inner loop, changing its values
and causing a slightly different type of breakage for cases where there are
multiple renames across the D/F conflict.  Fix by creating a new temporary
variable 'i'.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot6031: Add a testcase covering multiple renames across a D/F conflict
Elijah Newren [Tue, 17 Aug 2010 23:53:18 +0000 (17:53 -0600)]
t6031: Add a testcase covering multiple renames across a D/F conflict

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agomerge-recursive: Fix typo
Elijah Newren [Tue, 17 Aug 2010 23:52:27 +0000 (17:52 -0600)]
merge-recursive: Fix typo

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMark tests that use symlinks as needing SYMLINKS prerequisite
Elijah Newren [Fri, 13 Aug 2010 02:09:12 +0000 (20:09 -0600)]
Mark tests that use symlinks as needing SYMLINKS prerequisite

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/t6035-merge-dir-to-symlink.sh: Remove TODO on passing test
Ævar Arnfjörð Bjarmason [Tue, 27 Jul 2010 16:54:58 +0000 (16:54 +0000)]
t/t6035-merge-dir-to-symlink.sh: Remove TODO on passing test

Various merge-recursive cases were fixed in "merge-recursive: Fix D/F
conflicts" by Elijah Newren. Some tests were changed from
test_expect_failure to test_expect_success, but one fell through the
cracks.

Change that test to use test_expect_success.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofast-import: Improve robustness when D->F changes provided in wrong order
Elijah Newren [Fri, 9 Jul 2010 13:10:56 +0000 (07:10 -0600)]
fast-import: Improve robustness when D->F changes provided in wrong order

When older versions of fast-export came across a directory changing to a
symlink (or regular file), it would output the changes in the form
  M 120000 :239821 dir-changing-to-symlink
  D dir-changing-to-symlink/filename1
When fast-import sees the first line, it deletes the directory named
dir-changing-to-symlink (and any files below it) and creates a symlink in
its place.  When fast-import came across the second line, it was previously
trying to remove the file and relevant leading directories in
tree_content_remove(), and as a side effect it would delete the symlink
that was just created.  This resulted in the symlink silently missing from
the resulting repository.

To improve robustness, we ignore file deletions underneath directory names
that correspond to non-directories.  This can also be viewed as a minor
optimization: since there cannot be a file and a directory with the same
name in the same directory, the file clearly can't exist so nothing needs
to be done to delete it.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofast-export: Fix output order of D/F changes
Elijah Newren [Fri, 9 Jul 2010 13:10:55 +0000 (07:10 -0600)]
fast-export: Fix output order of D/F changes

The fast-import stream format requires incremental changes which take place
immediately, meaning that for D->F conversions all files below the relevant
directory must be deleted before the resulting file of the same name is
created.  Reversing the order can result in fast-import silently deleting
the file right after creating it, resulting in the file missing from the
resulting repository.

We correct this by first sorting the diff_queue_struct in depth-first
order.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agomerge_recursive: Fix renames across paths below D/F conflicts
Elijah Newren [Fri, 9 Jul 2010 13:10:54 +0000 (07:10 -0600)]
merge_recursive: Fix renames across paths below D/F conflicts

The rename logic in process_renames() handles renames and merging of file
contents and then marks files as processed.  However, there may be higher
stage entries left in the index for other reasons (e.g., due to D/F
conflicts).  By checking for such cases and marking the entry as not
processed, it allows process_entry() later to look at it and handle those
higher stages.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agomerge-recursive: Fix D/F conflicts
Elijah Newren [Fri, 9 Jul 2010 13:10:53 +0000 (07:10 -0600)]
merge-recursive: Fix D/F conflicts

The D/F conflicts that can be automatically resolved (file or directory
unmodified on one side of history), have the nice property that
process_entry() can correctly handle all subpaths of the D/F conflict.  In
the case of D->F conversions, it will correctly delete all non-conflicting
files below the relevant directory and the directory itself (note that both
untracked and conflicting files below the directory will prevent its
removal).  So if we handle D/F conflicts after all other conflicts, they
become fairly simple to handle -- we just need to check for whether or not
a path (file/directory) is in the way of creating the new content.  We do
this by having process_entry() defer handling such entries to a subsequent
process_df_entry() step.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAdd a rename + D/F conflict testcase
Alexander Gladysh [Fri, 9 Jul 2010 13:10:52 +0000 (07:10 -0600)]
Add a rename + D/F conflict testcase

This is a simple testcase where both sides of the rename are paths involved
in (separate) D/F merge conflicts

Signed-off-by: Alexander Gladysh <agladysh@gmail.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAdd additional testcases for D/F conflicts
Elijah Newren [Fri, 9 Jul 2010 13:10:51 +0000 (07:10 -0600)]
Add additional testcases for D/F conflicts

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoGit 1.7.1 v1.7.1
Junio C Hamano [Sat, 24 Apr 2010 01:27:17 +0000 (18:27 -0700)]
Git 1.7.1

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

* maint:
  Documentation improvements for the description of short format.

14 years agoDocumentation improvements for the description of short format.
Eric Raymond [Fri, 23 Apr 2010 17:40:15 +0000 (13:40 -0400)]
Documentation improvements for the description of short format.

Incorporates the detailed explanation from Jeff King in
<20100410040959.GA11977@coredump.intra.peff.net> and fixes
the bug noted by Junio C Hamano in
<7vmxxc1i8g.fsf@alter.siamese.dyndns.org>.

Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoSync with 1.7.0.6
Junio C Hamano [Fri, 23 Apr 2010 06:05:49 +0000 (23:05 -0700)]
Sync with 1.7.0.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoGit 1.7.0.6 v1.7.0.6
Junio C Hamano [Fri, 23 Apr 2010 05:46:24 +0000 (22:46 -0700)]
Git 1.7.0.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'mg/use-default-abbrev-length-in-rev-list' into maint
Junio C Hamano [Fri, 23 Apr 2010 05:39:26 +0000 (22:39 -0700)]
Merge branch 'mg/use-default-abbrev-length-in-rev-list' into maint

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

14 years agoMerge branch 'wp/doc-filter-direction' into maint
Junio C Hamano [Fri, 23 Apr 2010 05:29:50 +0000 (22:29 -0700)]
Merge branch 'wp/doc-filter-direction' into maint

* wp/doc-filter-direction:
  documentation: clarify direction of core.autocrlf

14 years agoMerge branch 'jk/maint-diffstat-overflow' into maint
Junio C Hamano [Fri, 23 Apr 2010 05:29:13 +0000 (22:29 -0700)]
Merge branch 'jk/maint-diffstat-overflow' into maint

* jk/maint-diffstat-overflow:
  diff: use large integers for diffstat calculations

14 years agoMerge branch 'da/maint-python-startup' into maint
Junio C Hamano [Fri, 23 Apr 2010 05:29:07 +0000 (22:29 -0700)]
Merge branch 'da/maint-python-startup' into maint

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

14 years agoMerge branch 'maint'
Junio C Hamano [Thu, 22 Apr 2010 06:54:04 +0000 (23:54 -0700)]
Merge branch 'maint'

* maint:
  Documentation/Makefile: fix interrupted builds of user-manual.xml

14 years agoDocumentation/Makefile: fix interrupted builds of user-manual.xml
Jonathan Nieder [Thu, 22 Apr 2010 01:18:21 +0000 (20:18 -0500)]
Documentation/Makefile: fix interrupted builds of user-manual.xml

Unlike gcc, asciidoc does not atomically write its output file or
delete it when interrupted.  If it is interrupted in the middle of
writing an XML file, the result will be truncated input for xsltproc.

XSLTPROC user-manual.html
user-manual.xml:998: parser error : Premature end of data in t

Take care of this case by writing to a temporary and renaming it when
finished.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Tue, 20 Apr 2010 05:41:30 +0000 (22:41 -0700)]
Merge branch 'maint'

* maint:
  t7012: Mark missing tests as TODO
  reflog: remove 'show' from 'expire's usage string
  MSVC: Fix build by adding missing termios.h dummy

14 years agot7012: Mark missing tests as TODO
Michael J Gruber [Mon, 19 Apr 2010 08:14:32 +0000 (10:14 +0200)]
t7012: Mark missing tests as TODO

Currently, there are 6 tests which are not even written but are
'test_expect_failure message false'.
Do not abuse test_expect_failure as a to do marker, but mark them as
'#TODO' instead.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Acked-by: Nguyen Thai Ngoc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoreflog: remove 'show' from 'expire's usage string
SZEDER Gábor [Mon, 19 Apr 2010 09:52:30 +0000 (11:52 +0200)]
reflog: remove 'show' from 'expire's usage string

Most of 'expire's options are not recognized by the 'show' subcommand,
hence it errors out.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint-1.6.6' into maint
Junio C Hamano [Mon, 19 Apr 2010 08:28:27 +0000 (01:28 -0700)]
Merge branch 'maint-1.6.6' into maint

* maint-1.6.6:
  MSVC: Fix build by adding missing termios.h dummy

14 years agoMSVC: Fix build by adding missing termios.h dummy
Johannes Sixt [Mon, 19 Apr 2010 07:37:20 +0000 (09:37 +0200)]
MSVC: Fix build by adding missing termios.h dummy

A use of this header file was introduced in eb80042 (Add missing #include
to support TIOCGWINSZ on Solaris, 2010-01-11).

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoGit 1.7.1-rc2 v1.7.1-rc2
Junio C Hamano [Mon, 19 Apr 2010 05:19:04 +0000 (22:19 -0700)]
Git 1.7.1-rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'rr/remote-helper-doc'
Junio C Hamano [Mon, 19 Apr 2010 04:32:25 +0000 (21:32 -0700)]
Merge branch 'rr/remote-helper-doc'

* rr/remote-helper-doc:
  Documentation/remote-helpers: Fix typos and improve language
  Fixup: Second argument may be any arbitrary string
  Documentation/remote-helpers: Add invocation section
  Documentation/urls: Rewrite to accomodate <transport>::<address>
  Documentation/remote-helpers: Rewrite description

14 years agoMerge branch 'wp/doc-filter-direction'
Junio C Hamano [Mon, 19 Apr 2010 04:32:21 +0000 (21:32 -0700)]
Merge branch 'wp/doc-filter-direction'

* wp/doc-filter-direction:
  documentation: clarify direction of core.autocrlf

14 years agoMerge branch 'jk/maint-diffstat-overflow'
Junio C Hamano [Mon, 19 Apr 2010 04:31:50 +0000 (21:31 -0700)]
Merge branch 'jk/maint-diffstat-overflow'

* jk/maint-diffstat-overflow:
  diff: use large integers for diffstat calculations

14 years agoMerge branch 'jg/auto-initialize-notes-with-percent-n-in-format'
Junio C Hamano [Mon, 19 Apr 2010 04:31:29 +0000 (21:31 -0700)]
Merge branch 'jg/auto-initialize-notes-with-percent-n-in-format'

* jg/auto-initialize-notes-with-percent-n-in-format:
  t3301: add tests to use --format="%N"
  pretty: Initialize notes if %N is used

14 years agoMerge branch 'maint'
Junio C Hamano [Mon, 19 Apr 2010 04:31:20 +0000 (21:31 -0700)]
Merge branch 'maint'

* maint:
  Documentation: Describe other situations where -z affects git diff

14 years agoMerge git://git.kernel.org/pub/scm/gitk/gitk
Junio C Hamano [Mon, 19 Apr 2010 01:36:41 +0000 (18:36 -0700)]
Merge git://git.kernel.org/pub/scm/gitk/gitk

* git://git.kernel.org/pub/scm/gitk/gitk:
  gitk: Display dirty submodules correctly
  gitk: Fix display of copyright symbol
  gitk: Add emacs editor variable block
  gitk: Avoid calling tk_setPalette on Windows
  gitk: Don't clobber "Remember this view" setting
  gitk: Add comments to explain encode_view_opts and decode_view_opts
  gitk: Use consistent font for all text input fields
  gitk: Set the font for all listbox widgets
  gitk: Set the font for all spinbox widgets
  gitk: Remove forced use of sans-serif font
  gitk: Add Ctrl-W shortcut for closing the active window

14 years agoDocumentation/remote-helpers: Fix typos and improve language
Ramkumar Ramachandra [Sun, 18 Apr 2010 00:57:37 +0000 (06:27 +0530)]
Documentation/remote-helpers: Fix typos and improve language

Fix some typos and errors in grammar and tense.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoFixup: Second argument may be any arbitrary string
Ramkumar Ramachandra [Sun, 18 Apr 2010 00:56:37 +0000 (06:26 +0530)]
Fixup: Second argument may be any arbitrary string

This is intended to be a fixup for commit ad466d1 in pu. As Jonathan
Neider pointed out, the second argument may be any arbitrary string,
and need not conform to any URL-like shape.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/remote-helpers: Add invocation section
Ramkumar Ramachandra [Wed, 7 Apr 2010 05:44:41 +0000 (11:14 +0530)]
Documentation/remote-helpers: Add invocation section

Add an 'Invocation' section to specify what the command line arguments
mean. Also include a link to git-remote in the 'See Also' section.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/urls: Rewrite to accomodate <transport>::<address>
Ramkumar Ramachandra [Tue, 6 Apr 2010 08:38:19 +0000 (14:08 +0530)]
Documentation/urls: Rewrite to accomodate <transport>::<address>

Rewrite the first part of the document to explicitly show differences
between the URLs that can be used with different transport
protocols. Mention <transport>::<address> format to explicitly invoke
a remote helper.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/remote-helpers: Rewrite description
Ramkumar Ramachandra [Sun, 28 Mar 2010 18:03:50 +0000 (23:33 +0530)]
Documentation/remote-helpers: Rewrite description

Rewrite the description section to describe what exactly remote
helpers are and the need for them. Also mention the curl family of
remote helpers as an example.

[jc: with readability fixes from Jonathan squashed in]

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: Describe other situations where -z affects git diff
Charles Bailey [Sun, 18 Apr 2010 18:28:17 +0000 (19:28 +0100)]
Documentation: Describe other situations where -z affects git diff

-z also alters the behaviour of --name-only and --name-status.

Signed-off-by: Charles Bailey <charles@hashpling.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorebase-interactive: silence warning when no commits rewritten
Jeff King [Sun, 18 Apr 2010 12:01:45 +0000 (08:01 -0400)]
rebase-interactive: silence warning when no commits rewritten

If you do a "rebase -i" and don't change any commits,
nothing is rewritten, and we have no REWRITTEN_LIST. The
shell prints out an ugly message:

  $ GIT_EDITOR=true git rebase -i HEAD^
  /path/to/git-rebase--interactive: 1: cannot open
    /path/to/repo/.git/rebase-merge/rewritten-list: No such file
  Successfully rebased and updated refs/heads/master.

We can fix it by not running "notes copy" at all if nothing
was rewritten.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot3301: add tests to use --format="%N"
Junio C Hamano [Sun, 18 Apr 2010 18:19:39 +0000 (11:19 -0700)]
t3301: add tests to use --format="%N"

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