git
12 years agoMerge branch 'jk/config-warn-on-inaccessible-paths'
Junio C Hamano [Mon, 17 Sep 2012 22:55:41 +0000 (15:55 -0700)] 
Merge branch 'jk/config-warn-on-inaccessible-paths'

The attribute system may be asked for a path that itself or its
leading directories no longer exists in the working tree.  Failure
to open per-directory .gitattributes with error status other than
ENOENT and ENOTDIR are diagnosed.

* jk/config-warn-on-inaccessible-paths:
  attr: failure to open a .gitattributes file is OK with ENOTDIR

12 years agoMerge branch 'jw/doc-commit-title'
Junio C Hamano [Mon, 17 Sep 2012 22:53:39 +0000 (15:53 -0700)] 
Merge branch 'jw/doc-commit-title'

Update parts of document that talked about "first line of commit
log" to say "title of commit" with definition of what that "title"
is.

* jw/doc-commit-title:
  Documentation: describe subject more precisely

12 years agoMerge branch 'mh/string-list'
Junio C Hamano [Mon, 17 Sep 2012 22:53:31 +0000 (15:53 -0700)] 
Merge branch 'mh/string-list'

* mh/string-list:
  api-string-list.txt: initialize the string_list the easy way
  string_list: add a function string_list_longest_prefix()
  string_list: add a new function, string_list_remove_duplicates()
  string_list: add a new function, filter_string_list()
  string_list: add two new functions for splitting strings
  string_list: add function string_list_append_nodup()

12 years agoMerge branch 'jc/maint-blame-no-such-path'
Junio C Hamano [Mon, 17 Sep 2012 22:52:32 +0000 (15:52 -0700)] 
Merge branch 'jc/maint-blame-no-such-path'

"git blame MAKEFILE" run in a history that has "Makefile" but not
"MAKEFILE" should say "No such file MAKEFILE in HEAD", but got
confused on a case insensitive filesystem and failed to do so.

Even during a conflicted merge, "git blame $path" always meant to
blame uncommitted changes to the "working tree" version; make it
more useful by showing cleanly merged parts as coming from the other
branch that is being merged.

* jc/maint-blame-no-such-path:
  blame: allow "blame file" in the middle of a conflicted merge
  blame $path: avoid getting fooled by case insensitive filesystems

12 years agoDraft release notes to 1.8.0
Junio C Hamano [Sat, 15 Sep 2012 04:44:37 +0000 (21:44 -0700)] 
Draft release notes to 1.8.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jc/ll-merge-binary-ours'
Junio C Hamano [Sat, 15 Sep 2012 04:39:56 +0000 (21:39 -0700)] 
Merge branch 'jc/ll-merge-binary-ours'

"git merge -Xtheirs" did not help content-level merge of binary
files; it should just take their version.  Also "*.jpg binary" in
the attributes did not imply they should use the binary ll-merge
driver.

* jc/ll-merge-binary-ours:
  ll-merge: warn about inability to merge binary files only when we can't
  attr: "binary" attribute should choose built-in "binary" merge driver
  merge: teach -Xours/-Xtheirs to binary ll-merge driver

12 years agoMerge branch 'cn/branch-set-upstream-to'
Junio C Hamano [Sat, 15 Sep 2012 04:39:47 +0000 (21:39 -0700)] 
Merge branch 'cn/branch-set-upstream-to'

Finishing touches to the recently graduated topic to introduce
"git branch --set-upstream-to" option.

* cn/branch-set-upstream-to:
  completion: complete branch name for "branch --set-upstream-to="
  completion: add --set-upstream-to and --unset-upstream

12 years agoMerge branch 'sl/autoconf'
Junio C Hamano [Sat, 15 Sep 2012 04:39:42 +0000 (21:39 -0700)] 
Merge branch 'sl/autoconf'

Reduces repetition in configure.ac.

* sl/autoconf:
  build: don't duplicate substitution of make variables
  build: improve GIT_CONF_SUBST signature

12 years agoMerge branch 'dg/run-command-child-cleanup'
Junio C Hamano [Sat, 15 Sep 2012 04:39:37 +0000 (21:39 -0700)] 
Merge branch 'dg/run-command-child-cleanup'

The code to wait for subprocess and remove it from our internal queue
wasn't quite right.

* dg/run-command-child-cleanup:
  run-command.c: fix broken list iteration in clear_child_for_cleanup

12 years agoMerge branch 'jc/mailinfo-RE'
Junio C Hamano [Sat, 15 Sep 2012 04:39:27 +0000 (21:39 -0700)] 
Merge branch 'jc/mailinfo-RE'

We strip the prefix from "Re: subject" and also from a less common
"re: subject", but left even less common "RE: subject" intact.

* jc/mailinfo-RE:
  mailinfo: strip "RE: " prefix

12 years agoMerge branch 'maint'
Junio C Hamano [Sat, 15 Sep 2012 04:38:20 +0000 (21:38 -0700)] 
Merge branch 'maint'

12 years agoDraft release notes to 1.7.12.1
Junio C Hamano [Sat, 15 Sep 2012 04:37:51 +0000 (21:37 -0700)] 
Draft release notes to 1.7.12.1

We are almost there...

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'sb/send-email-reconfirm-fix' into maint
Junio C Hamano [Sat, 15 Sep 2012 04:32:07 +0000 (21:32 -0700)] 
Merge branch 'sb/send-email-reconfirm-fix' into maint

* sb/send-email-reconfirm-fix:
  send-email: initial_to and initial_reply_to are both optional

12 years agoMerge branch 'jc/send-email-reconfirm' into maint
Junio C Hamano [Sat, 15 Sep 2012 04:32:01 +0000 (21:32 -0700)] 
Merge branch 'jc/send-email-reconfirm' into maint

* jc/send-email-reconfirm:
  send-email: validate & reconfirm interactive responses

12 years agoMerge branch 'mz/cherry-pick-cmdline-order' into maint
Junio C Hamano [Sat, 15 Sep 2012 04:24:18 +0000 (21:24 -0700)] 
Merge branch 'mz/cherry-pick-cmdline-order' into maint

* mz/cherry-pick-cmdline-order:
  cherry-pick/revert: respect order of revisions to pick
  demonstrate broken 'git cherry-pick three one two'
  teach log --no-walk=unsorted, which avoids sorting

12 years agoSync with 1.7.11.7
Junio C Hamano [Sat, 15 Sep 2012 04:20:40 +0000 (21:20 -0700)] 
Sync with 1.7.11.7

12 years agoGit 1.7.11.7 v1.7.11.7
Junio C Hamano [Sat, 15 Sep 2012 03:57:23 +0000 (20:57 -0700)] 
Git 1.7.11.7

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jk/maint-quiet-is-synonym-to-s-in-log' into maint-1.7.11
Junio C Hamano [Sat, 15 Sep 2012 03:48:31 +0000 (20:48 -0700)] 
Merge branch 'jk/maint-quiet-is-synonym-to-s-in-log' into maint-1.7.11

* jk/maint-quiet-is-synonym-to-s-in-log:
  log: fix --quiet synonym for -s

12 years agoMerge branch 'jc/maint-ident-missing-human-name' into maint-1.7.11
Junio C Hamano [Sat, 15 Sep 2012 03:48:22 +0000 (20:48 -0700)] 
Merge branch 'jc/maint-ident-missing-human-name' into maint-1.7.11

* jc/maint-ident-missing-human-name:
  split_ident_line(): make best effort when parsing author/committer line

12 years agoMerge branch 'rj/test-regex' into maint-1.7.11
Junio C Hamano [Sat, 15 Sep 2012 03:46:39 +0000 (20:46 -0700)] 
Merge branch 'rj/test-regex' into maint-1.7.11

* rj/test-regex:
  test-regex: Add a test to check for a bug in the regex routines

12 years agoMerge branch 'da/gitk-reload-tag-contents' into maint-1.7.11
Junio C Hamano [Sat, 15 Sep 2012 03:45:55 +0000 (20:45 -0700)] 
Merge branch 'da/gitk-reload-tag-contents' into maint-1.7.11

* da/gitk-reload-tag-contents:
  gitk: Rename 'tagcontents' to 'cached_tagcontent'
  gitk: Teach "Reread references" to reload tags
  gitk: Avoid Meta1-F5

12 years agoMerge branch 'jc/maint-checkout-fileglob-doc' into maint-1.7.11
Junio C Hamano [Sat, 15 Sep 2012 03:45:03 +0000 (20:45 -0700)] 
Merge branch 'jc/maint-checkout-fileglob-doc' into maint-1.7.11

* jc/maint-checkout-fileglob-doc:
  gitcli: contrast wildcard given to shell and to git
  gitcli: formatting fix
  Document file-glob for "git checkout -- '*.c'"

12 years agoThe sixth batch for 1.8.0
Junio C Hamano [Fri, 14 Sep 2012 19:34:11 +0000 (12:34 -0700)] 
The sixth batch for 1.8.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'nd/checkout-option-parsing-fix'
Junio C Hamano [Fri, 14 Sep 2012 18:54:34 +0000 (11:54 -0700)] 
Merge branch 'nd/checkout-option-parsing-fix'

The option parsing of "git checkout" had error checking, dwim and
defaulting missing options, all mixed in the code, and issuing an
appropriate error message with useful context was getting harder.
Reorganize the code and allow giving a proper diagnosis when the
user says "git checkout -b -t foo bar" (e.g. "-t" is not a good name
for a branch).

* nd/checkout-option-parsing-fix:
  checkout: reorder option handling
  checkout: move more parameters to struct checkout_opts
  checkout: pass "struct checkout_opts *" as const pointer

12 years agoMerge branch 'mh/abspath'
Junio C Hamano [Fri, 14 Sep 2012 18:54:28 +0000 (11:54 -0700)] 
Merge branch 'mh/abspath'

* mh/abspath:
  t0060: split absolute path test in two to exercise some of it on Windows
  t0060: verify that real_path() removes extra slashes
  real_path(): properly handle nonexistent top-level paths
  t0060: verify that real_path() works correctly with absolute paths
  real_path(): reject the empty string
  t0060: verify that real_path() fails if passed the empty string
  absolute_path(): reject the empty string
  t0060: verify that absolute_path() fails if passed the empty string
  t0060: move tests of real_path() from t0000 to here

12 years agoMerge branch 'dj/fetch-all-tags'
Junio C Hamano [Fri, 14 Sep 2012 18:54:19 +0000 (11:54 -0700)] 
Merge branch 'dj/fetch-all-tags'

"git fetch --all", when passed "--no-tags", did not honor the
"--no-tags" option while fetching from individual remotes (the same
issue existed with "--tags", but combination "--all --tags" makes
much less sense than "--all --no-tags").

* dj/fetch-all-tags:
  fetch --all: pass --tags/--no-tags through to each remote

12 years agoMerge branch 'sn/ls-remote-get-url-doc'
Junio C Hamano [Fri, 14 Sep 2012 18:54:12 +0000 (11:54 -0700)] 
Merge branch 'sn/ls-remote-get-url-doc'

* sn/ls-remote-get-url-doc:
  ls-remote: document the '--get-url' option

12 years agoMerge branch 'nd/i18n-status'
Junio C Hamano [Fri, 14 Sep 2012 18:54:04 +0000 (11:54 -0700)] 
Merge branch 'nd/i18n-status'

* nd/i18n-status:
  status: remove i18n legos

12 years agoMerge branch 'rj/path-cleanup'
Junio C Hamano [Fri, 14 Sep 2012 18:53:53 +0000 (11:53 -0700)] 
Merge branch 'rj/path-cleanup'

* rj/path-cleanup:
  Call mkpathdup() rather than xstrdup(mkpath(...))
  Call git_pathdup() rather than xstrdup(git_path("..."))
  path.c: Use vsnpath() in the implementation of git_path()
  path.c: Don't discard the return value of vsnpath()
  path.c: Remove the 'git_' prefix from a file scope function

12 years agoMerge branch 'rj/tap-fix'
Junio C Hamano [Fri, 14 Sep 2012 18:53:45 +0000 (11:53 -0700)] 
Merge branch 'rj/tap-fix'

* rj/tap-fix:
  test-lib.sh: Suppress the "passed all ..." message if no tests run
  test-lib.sh: Add check for invalid use of 'skip_all' facility
  test-lib.sh: Fix some shell coding style violations
  t4016-*.sh: Skip all tests rather than each test
  t3902-*.sh: Skip all tests rather than each test
  t3300-*.sh: Fix a TAP parse error

12 years agoattr: failure to open a .gitattributes file is OK with ENOTDIR
Junio C Hamano [Thu, 13 Sep 2012 19:40:39 +0000 (12:40 -0700)] 
attr: failure to open a .gitattributes file is OK with ENOTDIR

Often we consult an in-tree .gitattributes file that exists per
directory.  Majority of directories do not usually have such a file,
and it is perfectly fine if we cannot open it because there is no
such file, but we do want to know when there is an I/O or permission
error.  Earlier, we made the codepath warn when we fail to open it
for reasons other than ENOENT for that reason.

We however sometimes have to attempt to open the .gitattributes file
from a directory that does not exist in the commit that is currently
checked out.  "git pack-objects" wants to know if a path is marked
with "-delta" attributes, and "git archive" wants to know about
export-ignore and export-subst attributes.  Both commands may and do
need to ask the attributes system about paths in an arbitrary
commit.  "git diff", after removing an entire directory, may want to
know textconv on paths that used to be in that directory.

Make sure we also ignore a failure to open per-directory attributes
file due to ENOTDIR.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoDocumentation: describe subject more precisely
Jeremy White [Thu, 13 Sep 2012 22:27:09 +0000 (17:27 -0500)] 
Documentation: describe subject more precisely

The discussion of email subject throughout the documentation is
misleading; it indicates that the first line will always become
the subject.  In fact, the subject is generally all lines up until
the first full blank line.

This patch refines that, and makes more use of the concept of a
commit title, with the title being all text up to the first blank line.

Signed-off-by: Jeremy White <jwhite@codeweavers.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge git://github.com/git-l10n/git-po
Junio C Hamano [Wed, 12 Sep 2012 23:14:14 +0000 (16:14 -0700)] 
Merge git://github.com/git-l10n/git-po

* git://github.com/git-l10n/git-po:
  l10n: Update Swedish translation (1166t0f0u)
  l10n: vi.po: update to v1.7.12-146-g16d26
  l10n: de.po: translate 2 new messages
  l10n: zh_CN.po: translate 2 new messages
  l10n: Update git.pot (2 new, 4 removed messages)
  l10n: vi.po & TEAMS: review Vietnamese translation

12 years agol10n: Update Swedish translation (1166t0f0u)
Peter Krefting [Fri, 7 Sep 2012 09:10:23 +0000 (10:10 +0100)] 
l10n: Update Swedish translation (1166t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
12 years agoMerge git://github.com/vnwildman/git
Jiang Xin [Wed, 12 Sep 2012 22:32:36 +0000 (06:32 +0800)] 
Merge git://github.com/vnwildman/git

* git://github.com/vnwildman/git:
  l10n: vi.po: update to v1.7.12-146-g16d26

12 years agoStart merging the sixth batch for 1.8.0
Junio C Hamano [Wed, 12 Sep 2012 21:33:50 +0000 (14:33 -0700)] 
Start merging the sixth batch for 1.8.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'maint'
Junio C Hamano [Wed, 12 Sep 2012 21:36:39 +0000 (14:36 -0700)] 
Merge branch 'maint'

12 years agoMerge branch 'jc/maint-checkout-fileglob-doc'
Junio C Hamano [Wed, 12 Sep 2012 21:22:08 +0000 (14:22 -0700)] 
Merge branch 'jc/maint-checkout-fileglob-doc'

Updated with help from Peff.

* jc/maint-checkout-fileglob-doc:
  gitcli: contrast wildcard given to shell and to git
  gitcli: formatting fix
  Document file-glob for "git checkout -- '*.c'"

12 years agoMerge branch 'sb/send-email-reconfirm-fix'
Junio C Hamano [Wed, 12 Sep 2012 21:22:03 +0000 (14:22 -0700)] 
Merge branch 'sb/send-email-reconfirm-fix'

* sb/send-email-reconfirm-fix:
  send-email: initial_to and initial_reply_to are both optional

12 years agoMerge branch 'nd/maint-remote-remove'
Junio C Hamano [Wed, 12 Sep 2012 21:21:58 +0000 (14:21 -0700)] 
Merge branch 'nd/maint-remote-remove'

* nd/maint-remote-remove:
  remote: prefer subcommand name 'remove' to 'rm'

12 years agoMerge branch 'nd/log-n-doc'
Junio C Hamano [Wed, 12 Sep 2012 21:21:55 +0000 (14:21 -0700)] 
Merge branch 'nd/log-n-doc'

* nd/log-n-doc:
  doc: move rev-list option -<n> from git-log.txt to rev-list-options.txt

12 years agoMerge branch 'kd/cvsimport-avoid-invalid-tag'
Junio C Hamano [Wed, 12 Sep 2012 21:21:50 +0000 (14:21 -0700)] 
Merge branch 'kd/cvsimport-avoid-invalid-tag'

"cvsimport" tried to create a tag taken from CVS without
sufficiently sanitizing it, causing the import to fail when an
invalid character in the tagname made underlying "git tag" to fail.

* kd/cvsimport-avoid-invalid-tag:
  cvsimport: strip all inappropriate tag strings

12 years agoMerge branch 'js/compat-itimer'
Junio C Hamano [Wed, 12 Sep 2012 21:21:44 +0000 (14:21 -0700)] 
Merge branch 'js/compat-itimer'

Pieces to support compilation on __TANDEM.

* js/compat-itimer:
  Add a no-op setitimer() wrapper

12 years agoMerge branch 'js/compat-mkdir'
Junio C Hamano [Wed, 12 Sep 2012 21:21:39 +0000 (14:21 -0700)] 
Merge branch 'js/compat-mkdir'

Finishing touches to recently added wrapper for mkdir() that do not
want to see trailing slashes.

* js/compat-mkdir:
  Document MKDIR_WO_TRAILING_SLASH in Makefile

12 years agoFurther merging in preparation for 1.7.12.1
Junio C Hamano [Wed, 12 Sep 2012 21:10:54 +0000 (14:10 -0700)] 
Further merging in preparation for 1.7.12.1

Describe the following in the draft release notes:

 . jc/apply-binary-p0
 . jc/dotdot-is-parent-directory
 . jc/maint-doc-checkout-b-always-takes-branch-name
 . jk/maint-http-half-auth-push
 . kk/maint-for-each-ref-multi-sort

Yet to be merged before 1.7.12.1 are:

 . jk/config-warn-on-inaccessible-paths
 . jk/maint-quiet-is-synonym-to-s-in-log
 . mz/cherry-pick-cmdline-order

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'maint-1.7.11' into maint
Junio C Hamano [Wed, 12 Sep 2012 21:08:05 +0000 (14:08 -0700)] 
Merge branch 'maint-1.7.11' into maint

12 years agoMerge branch 'jc/apply-binary-p0' into maint-1.7.11
Junio C Hamano [Wed, 12 Sep 2012 21:00:52 +0000 (14:00 -0700)] 
Merge branch 'jc/apply-binary-p0' into maint-1.7.11

"git apply -p0" did not parse pathnames on "diff --git" line
correctly.  This caused patches that had pathnames in no other
places to be mistakenly rejected (most notably, binary patch that
does not rename nor change mode).  Textual patches, renames or mode
changes have preimage and postimage pathnames in different places in
a form that can be parsed unambiguously and did not suffer from this
problem.

* jc/apply-binary-p0:
  apply: compute patch->def_name correctly under -p0

12 years agoMerge branch 'jc/dotdot-is-parent-directory' into maint-1.7.11
Junio C Hamano [Wed, 12 Sep 2012 21:00:34 +0000 (14:00 -0700)] 
Merge branch 'jc/dotdot-is-parent-directory' into maint-1.7.11

"git log .." errored out saying it is both rev range and a path when
there is no disambiguating "--" is on the command line.  Update the
command line parser to interpret ".." as a path in such a case.

* jc/dotdot-is-parent-directory:
  specifying ranges: we did not mean to make ".." an empty set

12 years agoMerge branch 'jc/maint-doc-checkout-b-always-takes-branch-name' into maint-1.7.11
Junio C Hamano [Wed, 12 Sep 2012 20:59:58 +0000 (13:59 -0700)] 
Merge branch 'jc/maint-doc-checkout-b-always-takes-branch-name' into maint-1.7.11

The synopsis said "checkout [-B branch]" to make it clear the
branch name is a parameter to the option, but the heading for the
option description was "-B::", not "-B branch::", making the
documentation misleading.

* jc/maint-doc-checkout-b-always-takes-branch-name:
  doc: "git checkout -b/-B/--orphan" always takes a branch name

12 years agoMerge branch 'jk/maint-http-half-auth-push' into maint-1.7.11
Junio C Hamano [Wed, 12 Sep 2012 20:58:22 +0000 (13:58 -0700)] 
Merge branch 'jk/maint-http-half-auth-push' into maint-1.7.11

Pushing to smart HTTP server with recent Git fails without having
the username in the URL to force authentication, if the server is
configured to allow GET anonymously, while requiring authentication
for POST.

* jk/maint-http-half-auth-push:
  http: prompt for credentials on failed POST
  http: factor out http error code handling
  t: test http access to "half-auth" repositories
  t: test basic smart-http authentication
  t/lib-httpd: recognize */smart/* repos as smart-http
  t/lib-httpd: only route auth/dumb to dumb repos
  t5550: factor out http auth setup
  t5550: put auth-required repo in auth/dumb

12 years agoMerge branch 'kk/maint-for-each-ref-multi-sort' into maint-1.7.11
Junio C Hamano [Wed, 12 Sep 2012 20:57:43 +0000 (13:57 -0700)] 
Merge branch 'kk/maint-for-each-ref-multi-sort' into maint-1.7.11

"git for-each-ref" did not honor multiple "--sort=<key>" arguments
correctly.

* kk/maint-for-each-ref-multi-sort:
  for-each-ref: Fix sort with multiple keys
  t6300: test sort with multiple keys

12 years agoapi-string-list.txt: initialize the string_list the easy way
Michael Haggerty [Wed, 12 Sep 2012 14:04:47 +0000 (16:04 +0200)] 
api-string-list.txt: initialize the string_list the easy way

In the demo code blurb, show how to initialize the string_list using
STRING_LIST_INIT_NODUP rather than memset().

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agostring_list: add a function string_list_longest_prefix()
Michael Haggerty [Wed, 12 Sep 2012 14:04:46 +0000 (16:04 +0200)] 
string_list: add a function string_list_longest_prefix()

Add a function that finds the longest string from a string_list that
is a prefix of a given string.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agostring_list: add a new function, string_list_remove_duplicates()
Michael Haggerty [Wed, 12 Sep 2012 14:04:45 +0000 (16:04 +0200)] 
string_list: add a new function, string_list_remove_duplicates()

Add a function that deletes duplicate entries from a sorted
string_list.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agostring_list: add a new function, filter_string_list()
Michael Haggerty [Wed, 12 Sep 2012 14:04:44 +0000 (16:04 +0200)] 
string_list: add a new function, filter_string_list()

This function allows entries that don't match a specified criterion to
be discarded from a string_list while preserving the order of the
remaining entries.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agostring_list: add two new functions for splitting strings
Michael Haggerty [Wed, 12 Sep 2012 14:04:43 +0000 (16:04 +0200)] 
string_list: add two new functions for splitting strings

Add two new functions, string_list_split() and
string_list_split_in_place().  These split a string into a string_list
on a separator character.  The first makes copies of the substrings
(leaving the input string untouched) and the second splits the
original string in place, overwriting the separator characters with
NULs and referring to the original string's memory.

These functions are similar to the strbuf_split_*() functions except
that they work with the more powerful string_list interface.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agostring_list: add function string_list_append_nodup()
Michael Haggerty [Wed, 12 Sep 2012 14:04:42 +0000 (16:04 +0200)] 
string_list: add function string_list_append_nodup()

Add a new function that appends a string to a string_list without
copying it.  This can be used to pass ownership of an already-copied
string to a string_list that has strdup_strings set.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge git://ozlabs.org/~paulus/gitk
Junio C Hamano [Wed, 12 Sep 2012 16:32:22 +0000 (09:32 -0700)] 
Merge git://ozlabs.org/~paulus/gitk

* git://ozlabs.org/~paulus/gitk:
  gitk: Fix GIT_TRACE issues

12 years agoMerge branch 'da/gitk-reload-tag-contents'
Junio C Hamano [Wed, 12 Sep 2012 16:32:03 +0000 (09:32 -0700)] 
Merge branch 'da/gitk-reload-tag-contents'

After overwriting a tag with a new tag, "Reread references" action
in "gitk" correctly moved the marker in the display, but it failed
to discard a cached contents of the tag (even "Reload" didn't).

* da/gitk-reload-tag-contents:
  gitk: Rename 'tagcontents' to 'cached_tagcontent'
  gitk: Teach "Reread references" to reload tags
  gitk: Avoid Meta1-F5

12 years agoMerge branch 'da/gitk-reload-tag-contents' of git://github.com/gitster/git
Paul Mackerras [Wed, 12 Sep 2012 12:34:24 +0000 (22:34 +1000)] 
Merge branch 'da/gitk-reload-tag-contents' of git://github.com/gitster/git
to get two commits from David Aguilar.

12 years agoll-merge: warn about inability to merge binary files only when we can't
Junio C Hamano [Wed, 12 Sep 2012 09:01:52 +0000 (02:01 -0700)] 
ll-merge: warn about inability to merge binary files only when we can't

When a path being merged is auto detected to be a binary file, we
warned "Cannot merge binary files" before switching to activate the
binary ll-merge driver.  When we are merging with the -Xours/theirs
option, however, we know what the "clean" merge result is, and the
warning is inappropriate.

In addition, when the path is explicitly marked as a binary file,
this warning was not issued, even though without -Xours/theirs, we
cannot cleanly automerge such a path, which was inconsistent.

Move the warning code from ll_xdl_merge() to ll_binary_merge(), and
issue the message only when we cannot cleanly automerge.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoblame: allow "blame file" in the middle of a conflicted merge
Junio C Hamano [Tue, 11 Sep 2012 21:30:03 +0000 (14:30 -0700)] 
blame: allow "blame file" in the middle of a conflicted merge

"git blame file" has always meant "find the origin of each line of
the file in the history leading to HEAD, oh by the way, blame the
lines that are modified locally to the working tree".

This teaches "git blame" that during a conflicted merge, some
uncommitted changes may have come from the other history that is
being merged.

The verify_working_tree_path() function introduced in the previous
patch to notice a typo in the filename (primarily on case insensitive
filesystems) has been updated to allow a filename that does not exist
in HEAD (i.e. the tip of our history) as long as it exists one of the
commits being merged, so that a "we deleted, the other side modified"
case tracks the history of the file in the history of the other side.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agocheckout: reorder option handling
Nguyễn Thái Ngọc Duy [Thu, 30 Aug 2012 12:45:50 +0000 (19:45 +0700)] 
checkout: reorder option handling

checkout operates in three different modes. On top of that it tries to
be smart by guessing the branch name for switching. This results in
messy option handling code. This patch reorders it so that

 - cmd_checkout() is responsible for parsing, preparing input and
   determining mode

 - Code of each mode is in checkout_paths() and checkout_branch(),
   where sanity checks are performed

Another slight improvement is always print branch name (or commit
name) when printing errors related ot them. This helps catch the case
where an option is mistaken as branch/commit.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoSecond half of the fifth batch for 1.8.0
Junio C Hamano [Tue, 11 Sep 2012 18:41:35 +0000 (11:41 -0700)] 
Second half of the fifth batch for 1.8.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'rj/test-regex'
Junio C Hamano [Tue, 11 Sep 2012 18:36:25 +0000 (11:36 -0700)] 
Merge branch 'rj/test-regex'

Git ships with a fall-back regexp implementation for platforms with
buggy regexp library; give people a tool to see if they should be
using it on their platform.

* rj/test-regex:
  test-regex: Add a test to check for a bug in the regex routines

12 years agoMerge branch 'jk/argv-array'
Junio C Hamano [Tue, 11 Sep 2012 18:36:18 +0000 (11:36 -0700)] 
Merge branch 'jk/argv-array'

Use argv-array API in "git fetch" implementation.

* jk/argv-array:
  submodule: use argv_array instead of hand-building arrays
  fetch: use argv_array instead of hand-building arrays
  argv-array: fix bogus cast when freeing array
  argv-array: add pop function

12 years agoMerge branch 'jc/merge-bases'
Junio C Hamano [Tue, 11 Sep 2012 18:35:26 +0000 (11:35 -0700)] 
Merge branch 'jc/merge-bases'

Optimise the "merge-base" computation a bit, and also update its
users that do not need the full merge-base information to call a
cheaper subset.

* jc/merge-bases:
  reduce_heads(): reimplement on top of remove_redundant()
  merge-base: "--is-ancestor A B"
  get_merge_bases_many(): walk from many tips in parallel
  in_merge_bases(): use paint_down_to_common()
  merge_bases_many(): split out the logic to paint history
  in_merge_bases(): omit unnecessary redundant common ancestor reduction
  http-push: use in_merge_bases() for fast-forward check
  receive-pack: use in_merge_bases() for fast-forward check
  in_merge_bases(): support only one "other" commit

12 years agoMerge branch 'nd/i18n-index-pack'
Junio C Hamano [Tue, 11 Sep 2012 18:35:22 +0000 (11:35 -0700)] 
Merge branch 'nd/i18n-index-pack'

* nd/i18n-index-pack:
  i18n: mark more index-pack strings for translation

12 years agoMerge branch 'jc/maint-ident-missing-human-name'
Junio C Hamano [Tue, 11 Sep 2012 18:35:15 +0000 (11:35 -0700)] 
Merge branch 'jc/maint-ident-missing-human-name'

"git show --format='%ci'" did not give timestamp correctly for
commits created without human readable name on "committer" line.

* jc/maint-ident-missing-human-name:
  split_ident_line(): make best effort when parsing author/committer line

12 years agoSync with maint
Junio C Hamano [Tue, 11 Sep 2012 18:31:26 +0000 (11:31 -0700)] 
Sync with maint

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoFurther merging down for 1.7.12.1
Junio C Hamano [Tue, 11 Sep 2012 18:27:35 +0000 (11:27 -0700)] 
Further merging down for 1.7.12.1

We will wait for a handful of other fixes that have graduated to the
'master' for 1.8.0 to be tested in the wild and then tag 1.7.12.1:

 . mz/cherry-pick-cmdline-order
 . jk/maint-quiet-is-synonym-to-s-in-log
 . jk/maint-http-half-auth-push
 . jc/apply-binary-p0
 . jk/config-warn-on-inaccessible-paths
 . kk/maint-for-each-ref-multi-sort

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoSync with 1.7.11.6
Junio C Hamano [Tue, 11 Sep 2012 18:23:45 +0000 (11:23 -0700)] 
Sync with 1.7.11.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'js/use-sc-open-max' into maint
Junio C Hamano [Tue, 11 Sep 2012 18:23:06 +0000 (11:23 -0700)] 
Merge branch 'js/use-sc-open-max' into maint

* js/use-sc-open-max:
  sha1_file.c: introduce get_max_fd_limit() helper

12 years agoMerge branch 'js/no-curl-easy-strerror-on-old-curl' into maint
Junio C Hamano [Tue, 11 Sep 2012 18:22:58 +0000 (11:22 -0700)] 
Merge branch 'js/no-curl-easy-strerror-on-old-curl' into maint

* js/no-curl-easy-strerror-on-old-curl:
  http.c: don't use curl_easy_strerror prior to curl-7.12.0

12 years agoGit 1.7.11.6 v1.7.11.6
Junio C Hamano [Tue, 11 Sep 2012 18:18:48 +0000 (11:18 -0700)] 
Git 1.7.11.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jc/maint-mergetool-style-fix' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 18:10:23 +0000 (11:10 -0700)] 
Merge branch 'jc/maint-mergetool-style-fix' into maint-1.7.11

* jc/maint-mergetool-style-fix:
  mergetool: style fixes

12 years agoMerge branch 'sz/submodule-force-update' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 18:10:17 +0000 (11:10 -0700)] 
Merge branch 'sz/submodule-force-update' into maint-1.7.11

* sz/submodule-force-update:
  Make 'git submodule update --force' always check out submodules.

12 years agoMerge branch 'ph/stash-rerere' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 18:10:12 +0000 (11:10 -0700)] 
Merge branch 'ph/stash-rerere' into maint-1.7.11

* ph/stash-rerere:
  stash: invoke rerere in case of conflict
  test: git-stash conflict sets up rerere

12 years agoMerge branch 'jc/maint-sane-execvp-notdir' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 18:09:19 +0000 (11:09 -0700)] 
Merge branch 'jc/maint-sane-execvp-notdir' into maint-1.7.11

* jc/maint-sane-execvp-notdir:
  sane_execvp(): ignore non-directory on $PATH

12 years agoMerge branch 'jc/maint-config-exit-status' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 18:09:09 +0000 (11:09 -0700)] 
Merge branch 'jc/maint-config-exit-status' into maint-1.7.11

* jc/maint-config-exit-status:
  config: "git config baa" should exit with status 1

12 years agoMerge branch 'mh/maint-config-doc-proxy-command' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 18:09:01 +0000 (11:09 -0700)] 
Merge branch 'mh/maint-config-doc-proxy-command' into maint-1.7.11

* mh/maint-config-doc-proxy-command:
  git-config doc: unconfuse an example
  git-config.txt: fix example

12 years agoMerge branch 'hv/submodule-path-unmatch' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 18:08:55 +0000 (11:08 -0700)] 
Merge branch 'hv/submodule-path-unmatch' into maint-1.7.11

* hv/submodule-path-unmatch:
  Let submodule command exit with error status if path does not exist

12 years agoMerge branch 'mz/empty-rebase-test' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 18:08:48 +0000 (11:08 -0700)] 
Merge branch 'mz/empty-rebase-test' into maint-1.7.11

* mz/empty-rebase-test:
  add tests for 'git rebase --keep-empty'

12 years agoMerge branch 'jk/docs-docbook-monospace-display' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 18:08:40 +0000 (11:08 -0700)] 
Merge branch 'jk/docs-docbook-monospace-display' into maint-1.7.11

* jk/docs-docbook-monospace-display:
  docs: monospace listings in docbook output

12 years agoMerge branch 'ab/diff-write-incomplete-line' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 18:08:30 +0000 (11:08 -0700)] 
Merge branch 'ab/diff-write-incomplete-line' into maint-1.7.11

* ab/diff-write-incomplete-line:
  Fix '\ No newline...' annotation in rewrite diffs

12 years agoMerge branch 'jc/maint-t7406-rev-parse-max-count-huh' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 18:08:18 +0000 (11:08 -0700)] 
Merge branch 'jc/maint-t7406-rev-parse-max-count-huh' into maint-1.7.11

* jc/maint-t7406-rev-parse-max-count-huh:
  t7406: fix misleading "rev-parse --max-count=1 HEAD"

12 years agoMerge branch 'rr/precompose-utf8-cleanup' into maint
Junio C Hamano [Tue, 11 Sep 2012 18:07:14 +0000 (11:07 -0700)] 
Merge branch 'rr/precompose-utf8-cleanup' into maint

* rr/precompose-utf8-cleanup:
  precompose-utf8: do not call checks for non-ascii "utf8"
  cleanup precompose_utf8

12 years agoMerge branch 'jc/capabilities' into maint
Junio C Hamano [Tue, 11 Sep 2012 18:06:45 +0000 (11:06 -0700)] 
Merge branch 'jc/capabilities' into maint

* jc/capabilities:
  fetch-pack: mention server version with verbose output
  parse_feature_request: make it easier to see feature values
  fetch-pack: do not ask for unadvertised capabilities
  do not send client agent unless server does first
  send-pack: fix capability-sending logic
  include agent identifier in capability string

12 years agoMerge branch 'jc/doc-git-updates' into maint
Junio C Hamano [Tue, 11 Sep 2012 18:06:19 +0000 (11:06 -0700)] 
Merge branch 'jc/doc-git-updates' into maint

* jc/doc-git-updates:
  Documentation: update the introductory section

12 years agoMerge branch 'jk/check-docs-update' into maint
Junio C Hamano [Tue, 11 Sep 2012 18:06:14 +0000 (11:06 -0700)] 
Merge branch 'jk/check-docs-update' into maint

* jk/check-docs-update:
  check-docs: get documented command list from Makefile
  check-docs: drop git-help special-case
  check-docs: list git-gui as a command
  check-docs: factor out command-list
  command-list: mention git-credential-* helpers
  command-list: add git-sh-i18n
  check-docs: update non-command documentation list
  check-docs: mention gitweb specially

12 years agoMerge branch 'tr/void-diff-setup-done' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 17:53:40 +0000 (10:53 -0700)] 
Merge branch 'tr/void-diff-setup-done' into maint-1.7.11

* tr/void-diff-setup-done:
  diff_setup_done(): return void

12 years agoMerge branch 'tr/merge-recursive-flush' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 17:53:31 +0000 (10:53 -0700)] 
Merge branch 'tr/merge-recursive-flush' into maint-1.7.11

* tr/merge-recursive-flush:
  merge-recursive: eliminate flush_buffer() in favor of write_in_full()

12 years agoMerge branch 'nd/index-errno' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 17:53:21 +0000 (10:53 -0700)] 
Merge branch 'nd/index-errno' into maint-1.7.11

* nd/index-errno:
  read_index_from: remove bogus errno assignments

12 years agoMerge branch 'pg/maint-apply-remove-unused-variable' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 17:53:11 +0000 (10:53 -0700)] 
Merge branch 'pg/maint-apply-remove-unused-variable' into maint-1.7.11

* pg/maint-apply-remove-unused-variable:
  apply: delete unused deflate_origlen from patch struct

12 years agoMerge branch 'jc/test-prereq' into maint
Junio C Hamano [Tue, 11 Sep 2012 17:51:58 +0000 (10:51 -0700)] 
Merge branch 'jc/test-prereq' into maint

* jc/test-prereq:
  t3910: use the UTF8_NFD_TO_NFC test prereq
  test-lib: provide UTF8 behaviour as a prerequisite
  t0050: use the SYMLINKS test prereq
  t0050: use the CASE_INSENSITIVE_FS test prereq
  test-lib: provide case insensitivity as a prerequisite
  test: allow prerequisite to be evaluated lazily
  test: rename $satisfied to $satisfied_prereq

12 years agorun-command.c: fix broken list iteration in clear_child_for_cleanup
David Gould [Tue, 11 Sep 2012 14:32:47 +0000 (15:32 +0100)] 
run-command.c: fix broken list iteration in clear_child_for_cleanup

Iterate through children_to_clean using 'next' fields but with an
extra level of indirection. This allows us to update the chain when
we remove a child and saves us managing several variables around
the loop mechanism.

Signed-off-by: David Gould <david@optimisefitness.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agobuild: don't duplicate substitution of make variables
Stefano Lattarini [Tue, 11 Sep 2012 15:45:30 +0000 (17:45 +0200)] 
build: don't duplicate substitution of make variables

Thanks to our 'GIT_CONF_SUBST' layer in configure.ac, a make variable 'VAR'
can be defined to a value 'VAL' at ./configure runtime in our build system
simply by using "GIT_CONF_SUBST([VAR], [VAL])" in configure.ac, rather than
having both to call "AC_SUBST([VAR], [VAL])" in configure.ac and adding the
'VAR = @VAR@' definition in config.mak.in.  Less duplication, less margin
for error, less possibility of confusion.

While at it, fix some formatting issues in configure.ac that unnecessarily
obscured the code flow.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agobuild: improve GIT_CONF_SUBST signature
Stefano Lattarini [Tue, 11 Sep 2012 15:45:29 +0000 (17:45 +0200)] 
build: improve GIT_CONF_SUBST signature

Now, in configure.ac, a call like:

    GIT_CONF_SUBST([FOO])

will be considered equivalent to:

    GIT_CONF_SUBST([FOO], [$FOO])

This is mostly a preparatory refactoring in view of future changes.
No semantic change to the generated configure or config.mak.auto is
intended.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agocompletion: complete branch name for "branch --set-upstream-to="
Michael J Gruber [Tue, 11 Sep 2012 11:58:30 +0000 (13:58 +0200)] 
completion: complete branch name for "branch --set-upstream-to="

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agocompletion: add --set-upstream-to and --unset-upstream
Carlos Martín Nieto [Sat, 1 Sep 2012 15:13:10 +0000 (17:13 +0200)] 
completion: add --set-upstream-to and --unset-upstream

Remove --set-upstream as it's deprecated now.

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