git.git
12 years agoMerge branch 'jk/mediawiki-credential'
Junio C Hamano [Tue, 24 Jul 2012 03:55:33 +0000 (20:55 -0700)]
Merge branch 'jk/mediawiki-credential'

* jk/mediawiki-credential:
  mw-to-git: use git-credential's URL parser
  credential: convert "url" attribute into its parsed subparts
  mw-to-git: check blank credential attributes via length
  docs/credential: minor clarity fixups

12 years agoMerge branch 'mm/mediawiki-usability'
Junio C Hamano [Tue, 24 Jul 2012 03:55:25 +0000 (20:55 -0700)]
Merge branch 'mm/mediawiki-usability'

* mm/mediawiki-usability:
  git-remote-mediawiki: allow page names with a ':'
  git-remote-mediawiki: fix incorrect test usage in test
  git-remote-mediawiki: properly deal with invalid remote revisions
  git-remote-mediawiki: show progress information when getting last remote revision
  git-remote-mediawiki: show progress information when listing pages
  git-remote-mediawiki: use --force when adding notes
  git-remote-mediawiki: get rid of O(N^2) loop
  git-remote-mediawiki: make mediafiles export optional
  git-remote-mediawiki: actually send empty comment when they're empty
  git-remote-mediawiki: don't split namespaces with spaces

12 years agoMerge branch 'sn/doc-typofix'
Junio C Hamano [Tue, 24 Jul 2012 03:55:21 +0000 (20:55 -0700)]
Merge branch 'sn/doc-typofix'

* sn/doc-typofix:
  doc: A few minor copy edits.

12 years agoMerge branch 'tg/ce-namelen-field'
Junio C Hamano [Tue, 24 Jul 2012 03:55:16 +0000 (20:55 -0700)]
Merge branch 'tg/ce-namelen-field'

Split lower bits of ce_flags field and creates a new ce_namelen
field in the in-core index structure.

* tg/ce-namelen-field:
  Strip namelen out of ce_flags into a ce_namelen field

12 years agoMerge branch 'nk/maint-gitweb-log-by-lines'
Junio C Hamano [Tue, 24 Jul 2012 03:55:07 +0000 (20:55 -0700)]
Merge branch 'nk/maint-gitweb-log-by-lines'

Teach gitweb to pay attention to various forms of credits that are
similar to "Signed-off-by:" lines.

* nk/maint-gitweb-log-by-lines:
  gitweb: Add support to Link: tag
  gitweb: Handle other types of tag in git_print_log
  gitweb: Cleanup git_print_log()

12 years agoUpdate draft release notes to 1.7.12
Junio C Hamano [Sun, 22 Jul 2012 20:20:24 +0000 (13:20 -0700)]
Update draft release notes to 1.7.12

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoSync with 1.7.11.3
Junio C Hamano [Sun, 22 Jul 2012 20:08:22 +0000 (13:08 -0700)]
Sync with 1.7.11.3

12 years agoGit 1.7.11.3 v1.7.11.3
Junio C Hamano [Sun, 22 Jul 2012 20:07:40 +0000 (13:07 -0700)]
Git 1.7.11.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jk/push-delete-ref-error-message' into maint
Junio C Hamano [Sun, 22 Jul 2012 20:04:25 +0000 (13:04 -0700)]
Merge branch 'jk/push-delete-ref-error-message' into maint

The error message from "git push $there :bogo" (and its equivalent
"git push $there --delete bogo") mentioned that we tried and failed
to guess what ref is being deleted based on the LHS of the refspec,
which we don't.

* jk/push-delete-ref-error-message:
  push: don't guess at qualifying remote refs on deletion

12 years agoMerge branch 'ar/clone-honor-umask-at-top' into maint
Junio C Hamano [Sun, 22 Jul 2012 20:04:05 +0000 (13:04 -0700)]
Merge branch 'ar/clone-honor-umask-at-top' into maint

A handful of files and directories we create had tighter than
necessary permission bits when the user wanted to have group
writability (e.g. by setting "umask 002").

* ar/clone-honor-umask-at-top:
  add: create ADD_EDIT.patch with mode 0666
  rerere: make rr-cache fanout directory honor umask
  Restore umasks influence on the permissions of work tree created by clone

12 years agoMerge branch 'cw/amend-commit-without-message' into maint
Junio C Hamano [Sun, 22 Jul 2012 20:03:52 +0000 (13:03 -0700)]
Merge branch 'cw/amend-commit-without-message' into maint

"commit --amend" used to refuse amending a commit with an empty log
message, with or without "--allow-empty-message".

* cw/amend-commit-without-message:
  Allow edit of empty message with commit --amend

12 years agoMerge branch 'jk/maint-commit-amend-only-no-paths' into maint
Junio C Hamano [Sun, 22 Jul 2012 20:03:29 +0000 (13:03 -0700)]
Merge branch 'jk/maint-commit-amend-only-no-paths' into maint

"git commit --amend --only --" was meant to allow "Clever" people to
rewrite the commit message without making any change even when they
have already changes for the next commit added to their index, but
it never worked as advertised since it was introduced in 1.3.0 era.

* jk/maint-commit-amend-only-no-paths:
  commit: fix "--amend --only" with no pathspec

12 years agoMerge branch 'tg/maint-cache-name-compare' into maint
Junio C Hamano [Sun, 22 Jul 2012 20:01:56 +0000 (13:01 -0700)]
Merge branch 'tg/maint-cache-name-compare' into maint

Even though the index can record pathnames longer than 1<<12 bytes,
in some places we were not comparing them in full, potentially
replacing index entries instead of adding.

* tg/maint-cache-name-compare:
  cache_name_compare(): do not truncate while comparing paths

12 years agoMerge branch 'tr/maint-show-walk' into maint
Junio C Hamano [Sun, 22 Jul 2012 20:01:40 +0000 (13:01 -0700)]
Merge branch 'tr/maint-show-walk' into maint

"git show"'s auto-walking behaviour was an unreliable and
unpredictable hack; it now behaves just like "git log" does when it
walks.

* tr/maint-show-walk:
  show: fix "range implies walking"
  Demonstrate git-show is broken with ranges

12 years agoMerge branch 'jc/refactor-diff-stdin' into maint
Junio C Hamano [Sun, 22 Jul 2012 20:01:22 +0000 (13:01 -0700)]
Merge branch 'jc/refactor-diff-stdin' into maint

"git diff", "git status" and anything that internally uses the
comparison machinery was utterly broken when the difference
involved a file with "-" as its name.  This was due to the way "git
diff --no-index" was incorrectly bolted on to the system, making
any comparison that involves a file "-" at the root level
incorrectly read from the standard input.

* jc/refactor-diff-stdin:
  diff-index.c: "git diff" has no need to read blob from the standard input
  diff-index.c: unify handling of command line paths
  diff-index.c: do not pretend paths are pathspecs

12 years agoMerge branch 'mz/empty-rebase-test' into maint
Junio C Hamano [Sun, 22 Jul 2012 20:00:55 +0000 (13:00 -0700)]
Merge branch 'mz/empty-rebase-test' into maint

We did not have test to make sure "git rebase" without extra options
filters out an empty commit in the original history.

* mz/empty-rebase-test:
  add test case for rebase of empty commit

12 years agoMerge branch 'js/fast-export-paths-with-spaces' into maint
Junio C Hamano [Sun, 22 Jul 2012 20:00:45 +0000 (13:00 -0700)]
Merge branch 'js/fast-export-paths-with-spaces' into maint

"git fast-export" produced an input stream for fast-import without
properly quoting pathnames when they contain SPs in them.

* js/fast-export-paths-with-spaces:
  fast-export: quote paths with spaces

12 years agoMerge branch 'cw/no-detaching-an-unborn' into maint
Junio C Hamano [Sun, 22 Jul 2012 20:00:31 +0000 (13:00 -0700)]
Merge branch 'cw/no-detaching-an-unborn' into maint

"git checkout --detach", when you are still on an unborn branch,
should be forbidden, but it wasn't.

* cw/no-detaching-an-unborn:
  git-checkout: disallow --detach on unborn branch

12 years agoMerge branch 'vr/use-our-perl-in-tests' into maint
Junio C Hamano [Sun, 22 Jul 2012 19:59:56 +0000 (12:59 -0700)]
Merge branch 'vr/use-our-perl-in-tests' into maint

Some implementations of Perl terminates "lines" with CRLF even when
the script is operating on just a sequence of bytes.  Make sure to
use "$PERL_PATH", the version of Perl the user told Git to use, in
our tests to avoid unnecessary breakages in tests.

* vr/use-our-perl-in-tests:
  t/README: add a bit more Don'ts
  tests: enclose $PERL_PATH in double quotes
  t/test-lib.sh: export PERL_PATH for use in scripts
  t: Replace 'perl' by $PERL_PATH

12 years agoMerge git://bogomips.org/git-svn
Junio C Hamano [Sun, 22 Jul 2012 19:56:49 +0000 (12:56 -0700)]
Merge git://bogomips.org/git-svn

* git://bogomips.org/git-svn:
  git-svn: don't create master if another head exists

12 years agoMerge branch 'jk/revision-walk-stop-at-max-count'
Junio C Hamano [Sun, 22 Jul 2012 19:56:30 +0000 (12:56 -0700)]
Merge branch 'jk/revision-walk-stop-at-max-count'

"git log -n 1 -- rarely-touched-path" was spending unnecessary
cycles after showing the first change to find the next one, only to
discard it.

* jk/revision-walk-stop-at-max-count:
  revision: avoid work after --max-count is reached

12 years agoMerge branch 'mm/config-xdg'
Junio C Hamano [Sun, 22 Jul 2012 19:56:27 +0000 (12:56 -0700)]
Merge branch 'mm/config-xdg'

* mm/config-xdg:
  config: fix several access(NULL) calls

12 years agoMerge branch 'as/t4012-style-updates'
Junio C Hamano [Sun, 22 Jul 2012 19:56:24 +0000 (12:56 -0700)]
Merge branch 'as/t4012-style-updates'

* as/t4012-style-updates:
  t4012: Use test_must_fail instead of if-else
  t4012: use 'printf' instead of 'dd' to generate a binary file
  t4012: Re-indent test snippets
  t4012: Make --shortstat test more robust
  t4012: Break up pipe into serial redirections
  t4012: Actually quote the sed script
  t4012: Unquote git command fragment in test title
  t4012: modernize style for quoting

12 years agoMerge branch 'pg/maint-1.7.9-am-where-is-patch'
Junio C Hamano [Sun, 22 Jul 2012 19:56:02 +0000 (12:56 -0700)]
Merge branch 'pg/maint-1.7.9-am-where-is-patch'

When "git am" failed, old timers knew to check .git/rebase-apply/patch
to see what went wrong, but we never told the users about it.

* pg/maint-1.7.9-am-where-is-patch:
  am: indicate where a failed patch is to be found

12 years agoMerge branch 'jl/maint-1.7.10-recurse-submodules-with-symlink'
Junio C Hamano [Sun, 22 Jul 2012 19:55:47 +0000 (12:55 -0700)]
Merge branch 'jl/maint-1.7.10-recurse-submodules-with-symlink'

When "git submodule add" clones a submodule repository, it can get
confused where to store the resulting submodule repository in the
superproject's .git/ directory when there is a symbolic link in the
path to the current directory.

* jl/maint-1.7.10-recurse-submodules-with-symlink:
  submodules: don't stumble over symbolic links when cloning recursively

12 years agoMerge branch 'ms/daemon-doc-typo'
Junio C Hamano [Sun, 22 Jul 2012 19:55:40 +0000 (12:55 -0700)]
Merge branch 'ms/daemon-doc-typo'

* ms/daemon-doc-typo:
  Documentation/git-daemon: add missing word

12 years agoMerge branch 'lk/more-helpful-status-hints'
Junio C Hamano [Sun, 22 Jul 2012 19:55:33 +0000 (12:55 -0700)]
Merge branch 'lk/more-helpful-status-hints'

* lk/more-helpful-status-hints:
  status: color in-progress message like other header messages

12 years agoMerge branch 'jc/sha1-name-more'
Junio C Hamano [Sun, 22 Jul 2012 19:55:07 +0000 (12:55 -0700)]
Merge branch 'jc/sha1-name-more'

Teaches the object name parser things like a "git describe" output
is always a commit object, "A" in "git log A" must be a committish,
and "A" and "B" in "git log A...B" both must be committish, etc., to
prolong the lifetime of abbreviated object names.

* jc/sha1-name-more: (27 commits)
  t1512: match the "other" object names
  t1512: ignore whitespaces in wc -l output
  rev-parse --disambiguate=<prefix>
  rev-parse: A and B in "rev-parse A..B" refer to committish
  reset: the command takes committish
  commit-tree: the command wants a tree and commits
  apply: --build-fake-ancestor expects blobs
  sha1_name.c: add support for disambiguating other types
  revision.c: the "log" family, except for "show", takes committish
  revision.c: allow handle_revision_arg() to take other flags
  sha1_name.c: introduce get_sha1_committish()
  sha1_name.c: teach lookup context to get_sha1_with_context()
  sha1_name.c: many short names can only be committish
  sha1_name.c: get_sha1_1() takes lookup flags
  sha1_name.c: get_describe_name() by definition groks only commits
  sha1_name.c: teach get_short_sha1() a commit-only option
  sha1_name.c: allow get_short_sha1() to take other flags
  get_sha1(): fix error status regression
  sha1_name.c: restructure disambiguation of short names
  sha1_name.c: correct misnamed "canonical" and "res"
  ...

12 years agoMerge branch 'jc/maint-filter-branch-epoch-date'
Junio C Hamano [Sun, 22 Jul 2012 19:54:08 +0000 (12:54 -0700)]
Merge branch 'jc/maint-filter-branch-epoch-date'

In 1.7.9 era, we taught "git rebase" about the raw timestamp format
but we did not teach the same trick to "filter-branch", which rolled
a similar logic on its own.  Because of this, "filter-branch" failed
to rewrite commits with ancient timestamps.

* jc/maint-filter-branch-epoch-date:
  t7003: add test to filter a branch with a commit at epoch
  date.c: Fix off by one error in object-header date parsing
  filter-branch: do not forget the '@' prefix to force git-timestamp

12 years agogit-svn: don't create master if another head exists
Marcin Owsiany [Sun, 24 Jun 2012 21:40:05 +0000 (22:40 +0100)]
git-svn: don't create master if another head exists

git-svn insists on creating the "master" head (unless it exists) on every
"fetch". It is useful that it gets created initially, when no head exists
- users expect this git convention of having a "master" branch on initial
clone.

However creating it when there already is another head does not provide any
value - the ref is never updated, so it just gets stale after a while.  Also,
some users find it annoying that it gets recreated, especially when they would
like the git branch names to follow SVN repository branch names. More
background in http://thread.gmane.org/gmane.comp.version-control.git/115030

Make git-svn skip the "master" creation if HEAD already points at a valid head.
This means "master" does get created on initial "clone" but does not get
recreated once a user deletes it.

Also, make post_fetch_checkout work with any head that is pointed to by HEAD,
not just "master".

Also, use fatal error handling consistent with the rest of the program for
post_fetch_checkout.

Signed-off-by: Marcin Owsiany <marcin@owsiany.pl>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
12 years agomw-to-git: use git-credential's URL parser
Jeff King [Wed, 18 Jul 2012 13:03:08 +0000 (09:03 -0400)]
mw-to-git: use git-credential's URL parser

We can just feed our URL straight to git-credential and it
will parse it for us, saving us some code.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agocredential: convert "url" attribute into its parsed subparts
Jeff King [Wed, 18 Jul 2012 12:06:26 +0000 (08:06 -0400)]
credential: convert "url" attribute into its parsed subparts

The git-credential command requires that you feed it a
broken-down credential, which means that the client needs to
parse a URL itself. Since we have our own URL-parsing
routines, we can easily allow the caller to just give us the
URL as-is, saving them some code.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agomw-to-git: check blank credential attributes via length
Jeff King [Wed, 18 Jul 2012 12:04:30 +0000 (08:04 -0400)]
mw-to-git: check blank credential attributes via length

When writing a credential to git-credential, we omit fields
that do not have a true value. This will skip empty or
undefined fields (which we want), but will also accidentally
skip usernames or passwords which happen to have a non-true
value (e.g., "0"). Be more careful by checking for non-zero
length.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agodocs/credential: minor clarity fixups
Jeff King [Wed, 18 Jul 2012 12:04:02 +0000 (08:04 -0400)]
docs/credential: minor clarity fixups

The text in git-credential(1) was copied from
technical/api-credentials, so it still talks about the
input/output format as coming from git to the helper. Since
the surrounding text already indicates that this format is
used for reading and writing with git credential, we can
just remove the extraneous confusing bits.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki: allow page names with a ':'
Matthieu Moy [Tue, 17 Jul 2012 14:06:00 +0000 (16:06 +0200)]
git-remote-mediawiki: allow page names with a ':'

Traditionnally, pages named Foo:Bar are page 'Bar' in namespace 'Foo'.
However, it is also possible to call a page Foo:Bar if 'Foo' is not a
namespace. In this case, the actual name of the page is 'Foo:Bar', in the
main namespace. Since we can't tell with only the filename, query the
wiki for a namespace 'Foo' in these cases, but deal with the case where
no such namespace is found.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki: fix incorrect test usage in test
Matthieu Moy [Tue, 17 Jul 2012 14:05:59 +0000 (16:05 +0200)]
git-remote-mediawiki: fix incorrect test usage in test

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot4012: Use test_must_fail instead of if-else
Alexander Strasser [Mon, 16 Jul 2012 20:47:22 +0000 (22:47 +0200)]
t4012: Use test_must_fail instead of if-else

Make the code less bulky and easier to read. Also do not overlook
failures like e.g. git failing because of unexpected signals.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot4012: use 'printf' instead of 'dd' to generate a binary file
Johannes Sixt [Mon, 16 Jul 2012 20:46:56 +0000 (22:46 +0200)]
t4012: use 'printf' instead of 'dd' to generate a binary file

For some reason, 'echo X | dd bs=1k seek=1' creates a file with 2050 bytes
on Windows instead of the expected 1026 bytes, so that a test fails. Since
the actual contents of the file are irrelevant as long as there is at
least one zero byte so that the diff machinery recognizes it as binary,
use printf to generate it.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot4012: Re-indent test snippets
Alexander Strasser [Mon, 16 Jul 2012 20:45:40 +0000 (22:45 +0200)]
t4012: Re-indent test snippets

Most one-level indents were 1 HT (horizontal tab) followed by 1 SP.
Remove the SP.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot4012: Make --shortstat test more robust
Alexander Strasser [Mon, 16 Jul 2012 20:45:10 +0000 (22:45 +0200)]
t4012: Make --shortstat test more robust

The --shortstat test depends on the same scenario as the --stat
test. Use the part of the same expected result for the --stat test
to avoid duplicating it manually.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot4012: Break up pipe into serial redirections
Alexander Strasser [Mon, 16 Jul 2012 20:44:30 +0000 (22:44 +0200)]
t4012: Break up pipe into serial redirections

Do not hide possible git errors by masking its process
exit status.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot4012: Actually quote the sed script
Alexander Strasser [Mon, 16 Jul 2012 20:43:58 +0000 (22:43 +0200)]
t4012: Actually quote the sed script

The nested quoting is not needed in this cases, thus the previous
version did work just fine. Nevertheless the usage is misleading,
so just achieve nested quoting by using double quotes instead. Lower
the probability of breakage in the future and make the code easier
to read.

NOTE: Just dropping the single quotes around the sed arguments would
      have also been possible.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki: properly deal with invalid remote revisions
Matthieu Moy [Mon, 16 Jul 2012 19:46:42 +0000 (21:46 +0200)]
git-remote-mediawiki: properly deal with invalid remote revisions

Some wiki, including https://git.wiki.kernel.org/ have invalid revision
numbers (i.e. the actual revision numbers are non-contiguous). Don't die
when encountering one.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki: show progress information when getting last remote revision
Matthieu Moy [Mon, 16 Jul 2012 19:46:41 +0000 (21:46 +0200)]
git-remote-mediawiki: show progress information when getting last remote revision

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki: show progress information when listing pages
Matthieu Moy [Mon, 16 Jul 2012 19:46:40 +0000 (21:46 +0200)]
git-remote-mediawiki: show progress information when listing pages

Initial phases of push and pull with git-remote-mediawiki can be long on
a large wiki. Let the user know what's going on.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki: use --force when adding notes
Matthieu Moy [Mon, 16 Jul 2012 19:46:39 +0000 (21:46 +0200)]
git-remote-mediawiki: use --force when adding notes

When notes are created to record a push, it normally doesn't exist yet.
However, when a push is interrupted and then restarted, it may happen
that a commit already has notes attached, and we want to reflect the newly
created remote revision, hence use 'git notes add -f' to override the
existing one

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki: get rid of O(N^2) loop
Matthieu Moy [Mon, 16 Jul 2012 19:46:38 +0000 (21:46 +0200)]
git-remote-mediawiki: get rid of O(N^2) loop

The algorithm to find a path from the local revision to the remote one
was calling "git rev-list" and parsing its output N times. Run rev-list
only once, and fill a hashtable with the result to optimize the body of
the loop.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki: make mediafiles export optional
Matthieu Moy [Mon, 16 Jul 2012 19:46:37 +0000 (21:46 +0200)]
git-remote-mediawiki: make mediafiles export optional

It is possible to use git-remote-mediawiki on a tree with both .mw files
and other files. Before git-remote-mediawiki learnt how to export
mediafiles, such mixed trees allowed the user to maintain both the wiki
and other files for the same project in the same repository. With the
newly added support for exporting mediafiles, pushing such mixed trees
would upload unrelated files as mediafiles, which may not be desired.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki: actually send empty comment when they're empty
Matthieu Moy [Mon, 16 Jul 2012 12:00:47 +0000 (14:00 +0200)]
git-remote-mediawiki: actually send empty comment when they're empty

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki: don't split namespaces with spaces
Matthieu Moy [Mon, 16 Jul 2012 12:00:46 +0000 (14:00 +0200)]
git-remote-mediawiki: don't split namespaces with spaces

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoconfig: fix several access(NULL) calls
Matthieu Moy [Thu, 12 Jul 2012 12:04:20 +0000 (14:04 +0200)]
config: fix several access(NULL) calls

When $HOME is unset, home_config_paths fails and returns NULL pointers
for user_config and xdg_config. Valgrind complains with Syscall param
access(pathname) points to unaddressable byte(s).

Don't call blindly access() on these variables, but test them for
NULL-ness before.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoDocumentation/git-daemon: add missing word
Michael Schubert [Mon, 16 Jul 2012 11:50:31 +0000 (13:50 +0200)]
Documentation/git-daemon: add missing word

Signed-off-by: Michael Schubert <mschub@elegosoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agostatus: color in-progress message like other header messages
Jeff King [Mon, 16 Jul 2012 11:39:54 +0000 (07:39 -0400)]
status: color in-progress message like other header messages

The "status" command recently learned to describe the
in-progress operation in its long output format (e.g.,
rebasing, am, etc). This message gets its own slot in the
color table, even though it is not configurable. As a
result, if the user has set color.status.header to a
non-default value, this message will not match (and cannot
be made to match, as there is no config option).

It is probably more sane to just color it like the rest of
the text (i.e., just use color.status.header). This would
not allow users to customize the color of this message
independently, but they cannot do that with the current code
anyway, and if somebody wants to build customizable
colorization later, this patch does not make it much harder
to do so.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoUpdate draft release notes for 7th batch
Junio C Hamano [Mon, 16 Jul 2012 04:46:26 +0000 (21:46 -0700)]
Update draft release notes for 7th batch

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'tg/maint-cache-name-compare'
Junio C Hamano [Mon, 16 Jul 2012 04:40:17 +0000 (21:40 -0700)]
Merge branch 'tg/maint-cache-name-compare'

Even though the index can record pathnames longer than 1<<12 bytes,
in some places we were not comparing them in full, potentially
replacing index entries instead of adding.

* tg/maint-cache-name-compare:
  cache_name_compare(): do not truncate while comparing paths

12 years agoMerge branch 'jk/index-pack-streaming-fix'
Junio C Hamano [Mon, 16 Jul 2012 04:40:07 +0000 (21:40 -0700)]
Merge branch 'jk/index-pack-streaming-fix'

The streaming index-pack introduced in 1.7.11 had a data corruption
bug, and this should fix it.

* jk/index-pack-streaming-fix:
  index-pack: loop while inflating objects in unpack_data

12 years agoMerge branch 'jk/maint-commit-amend-only-no-paths'
Junio C Hamano [Mon, 16 Jul 2012 04:39:48 +0000 (21:39 -0700)]
Merge branch 'jk/maint-commit-amend-only-no-paths'

"git commit --amend --only --" was meant to allow "Clever" people to
rewrite the commit message without making any change even when they
have already changes for the next commit added to their index, but
it never worked as advertised since it was introduced in 1.3.0 era.

* jk/maint-commit-amend-only-no-paths:
  commit: fix "--amend --only" with no pathspec

12 years agoMerge branch 'cw/amend-commit-without-message'
Junio C Hamano [Mon, 16 Jul 2012 04:39:37 +0000 (21:39 -0700)]
Merge branch 'cw/amend-commit-without-message'

"commit --amend" used to refuse amending a commit with an empty log
message, with or without "--allow-empty-message".

* cw/amend-commit-without-message:
  Allow edit of empty message with commit --amend

12 years agoMerge branch 'jn/makefile-cleanup'
Junio C Hamano [Mon, 16 Jul 2012 04:39:17 +0000 (21:39 -0700)]
Merge branch 'jn/makefile-cleanup'

Tightens dependency rules to avoid unnecessary recompilation, and
cleans up our Makefile in general.

* jn/makefile-cleanup:
  Makefile: document ground rules for target-specific dependencies
  Makefile: move GIT-VERSION-FILE dependencies closer to use
  Makefile: build instaweb similar to other scripts
  Makefile: update scripts when build-time parameters change
  Makefile: do not replace @@GIT_VERSION@@ in shell scripts
  Makefile: split prefix flags from GIT-CFLAGS
  Makefile: be silent when only GIT_USER_AGENT changes
  Makefile: split GIT_USER_AGENT from GIT-CFLAGS
  Makefile: do not replace @@GIT_USER_AGENT@@ in scripts
  Makefile: apply dependencies consistently to sparse/asm targets
  Makefile: do not have git.o depend on common-cmds.h
  Makefile: fold XDIFF_H and VCSSVN_H into LIB_H
  Makefile: fold MISC_H into LIB_H
  Makefile: sort LIB_H list

12 years agoMerge branch 'ar/clone-honor-umask-at-top'
Junio C Hamano [Mon, 16 Jul 2012 04:39:03 +0000 (21:39 -0700)]
Merge branch 'ar/clone-honor-umask-at-top'

A handful of files and directories we create had tighter than
necessary permission bits when the user wanted to have group
writability (e.g. by setting "umask 002").

* ar/clone-honor-umask-at-top:
  add: create ADD_EDIT.patch with mode 0666
  rerere: make rr-cache fanout directory honor umask
  Restore umasks influence on the permissions of work tree created by clone

12 years agoMerge branch 'jc/apply-3way'
Junio C Hamano [Mon, 16 Jul 2012 04:38:51 +0000 (21:38 -0700)]
Merge branch 'jc/apply-3way'

"git apply" learned to wiggle the base version and perform three-way
merge when a patch does not exactly apply to the version you have.

* jc/apply-3way:
  apply: tests for the --3way option
  apply: document --3way option
  apply: allow rerere() to work on --3way results
  apply: register conflicted stages to the index
  apply: --3way with add/add conflict
  apply: move verify_index_match() higher
  apply: plug the three-way merge logic in
  apply: fall back on three-way merge
  apply: accept -3/--3way command line option
  apply: move "already exists" logic to check_to_create()
  apply: move check_to_create_blob() closer to its sole caller
  apply: further split load_preimage()
  apply: refactor "previous patch" logic
  apply: split load_preimage() helper function out
  apply: factor out checkout_target() helper function
  apply: refactor read_file_or_gitlink()
  apply: clear_image() clears things a bit more
  apply: a bit more comments on PATH_TO_BE_DELETED
  apply: fix an incomplete comment in check_patch()

12 years agoMerge branch 'cw/rebase-i-root'
Junio C Hamano [Mon, 16 Jul 2012 04:38:41 +0000 (21:38 -0700)]
Merge branch 'cw/rebase-i-root'

"git rebase [-i] --root $tip" can now be used to rewrite all the
history down to the root.

* cw/rebase-i-root:
  t3404: make test 57 work with dash and others
  Add tests for rebase -i --root without --onto
  rebase -i: support --root without --onto

12 years agoMerge branch 'pw/git-p4-move'
Junio C Hamano [Mon, 16 Jul 2012 04:38:32 +0000 (21:38 -0700)]
Merge branch 'pw/git-p4-move'

* pw/git-p4-move:
  git p4: add support for 'p4 move' in P4Submit
  git p4: refactor diffOpts calculation

12 years agodoc: A few minor copy edits.
Štěpán Němec [Sat, 14 Jul 2012 22:20:36 +0000 (00:20 +0200)]
doc: A few minor copy edits.

- (glossary) the quotes around the Wikipedia URL prevented its
  linkification in frontends that support it; remove them

- (manual) newer version (SHA-1) == following, older == preceding, not
  the other way around

- trivial typo and wording fixes

Signed-off-by: Štěpán Němec <stepnem@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'pw/git-p4-jobs'
Junio C Hamano [Sat, 14 Jul 2012 04:22:12 +0000 (21:22 -0700)]
Merge branch 'pw/git-p4-jobs'

Teach "git p4" to notice "Jobs:" in the log message and relay it to
Perforce to trigger its "jobs" support.

# By Pete Wyckoff
* pw/git-p4-jobs:
  git p4: notice Jobs lines in git commit messages
  git p4 test: refactor marshal_dump
  git p4: remove unused P4Submit interactive setting

12 years agoMerge branch 'jk/push-delete-ref-error-message'
Junio C Hamano [Sat, 14 Jul 2012 04:22:12 +0000 (21:22 -0700)]
Merge branch 'jk/push-delete-ref-error-message'

The error message from "git push $there :bogo" mentioned we tried
and failed to guess what ref is being deleted based on the LHS of
the refspec, which we don't.

# By Jeff King
* jk/push-delete-ref-error-message:
  push: don't guess at qualifying remote refs on deletion

12 years agoam: indicate where a failed patch is to be found
Paul Gortmaker [Fri, 13 Jul 2012 15:51:30 +0000 (11:51 -0400)]
am: indicate where a failed patch is to be found

If "git am" fails to apply something, the end user may need to know
where to find the patch that failed to apply, so that the user can
do other things (e.g. trying "GNU patch" on it, running "diffstat"
to see what it tried to change, etc.)  The input to "am" may have
contained more than one patch, or the message may have been MIME
encoded, and knowing what the user fed to "am" does not help very
much for this purpose.

Also introduce advice.amworkdir configuration to allow people who
learned where to look to squelch this message.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoSixth batch for 1.7.12
Junio C Hamano [Fri, 13 Jul 2012 22:48:50 +0000 (15:48 -0700)]
Sixth batch for 1.7.12

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jc/refactor-diff-stdin'
Junio C Hamano [Fri, 13 Jul 2012 22:38:05 +0000 (15:38 -0700)]
Merge branch 'jc/refactor-diff-stdin'

Due to the way "git diff --no-index" is bolted onto by touching the
low level code that is shared with the rest of the "git diff" code,
even though it has to work in a very different way, any comparison
that involves a file "-" at the root level incorrectly tried to read
from the standard input.  This cleans up the no-index codepath
further to remove code that reads from the standard input from the
core side, which is never necessary when git is running its usual
diff operation.

* jc/refactor-diff-stdin:
  diff-index.c: "git diff" has no need to read blob from the standard input
  diff-index.c: unify handling of command line paths
  diff-index.c: do not pretend paths are pathspecs

12 years agoMerge branch 'tg/ce-namelen'
Junio C Hamano [Fri, 13 Jul 2012 22:37:58 +0000 (15:37 -0700)]
Merge branch 'tg/ce-namelen'

Trivially correct clean-up and micro optimization.

* tg/ce-namelen:
  Replace strlen() with ce_namelen()

12 years agoMerge branch 'tb/sanitize-decomposed-utf-8-pathname'
Junio C Hamano [Fri, 13 Jul 2012 22:37:51 +0000 (15:37 -0700)]
Merge branch 'tb/sanitize-decomposed-utf-8-pathname'

Teaches git to normalize pathnames read from readdir(3) and all
arguments from the command line into precomposed UTF-8 (assuming
that they come as decomposed UTF-8) to work around issues on Mac OS.

I think there still are other places that need conversion
(e.g. paths that are read from stdin for some commands), but this
should be a good first step in the right direction.

* tb/sanitize-decomposed-utf-8-pathname:
  git on Mac OS and precomposed unicode

12 years agoMerge branch 'mm/mediawiki-tests'
Junio C Hamano [Fri, 13 Jul 2012 22:37:46 +0000 (15:37 -0700)]
Merge branch 'mm/mediawiki-tests'

* mm/mediawiki-tests:
  git-remote-mediawiki: be more defensive when requests fail
  git-remote-mediawiki: more efficient 'pull' in the best case
  git-remote-mediawiki: extract revision-importing loop to a function
  git-remote-mediawiki: refactor loop over revision ids
  git-remote-mediawiki: change return type of get_mw_pages
  git-remote-mediawiki (t9363): test 'File:' import and export
  git-remote-mediawiki: support for uploading file in test environment
  git-remote-mediawiki (t9362): test git-remote-mediawiki with UTF8 characters
  git-remote-mediawiki (t9361): test git-remote-mediawiki pull and push
  git-remote-mediawiki (t9360): test git-remote-mediawiki clone
  git-remote-mediawiki: test environment of git-remote-mediawiki
  git-remote-mediawiki: scripts to install, delete and clear a MediaWiki

12 years agoMerge branch 'jn/vcs-svn'
Junio C Hamano [Fri, 13 Jul 2012 22:37:04 +0000 (15:37 -0700)]
Merge branch 'jn/vcs-svn'

vcs-svn updates to clean-up compilation, lift 32-bit limitations, etc.

* jn/vcs-svn:
  vcs-svn: allow 64-bit Prop-Content-Length
  vcs-svn: suppress a signed/unsigned comparison warning
  vcs-svn: suppress a signed/unsigned comparison warning
  vcs-svn: suppress signed/unsigned comparison warnings
  vcs-svn: use strstr instead of memmem
  vcs-svn: use constcmp instead of prefixcmp
  vcs-svn: simplify cleanup in apply_one_window
  vcs-svn: avoid self-assignment in dummy initialization of pre_off
  vcs-svn: drop no-op reset methods
  vcs-svn: suppress -Wtype-limits warning
  vcs-svn: allow import of > 4GiB files
  vcs-svn: rename check_overflow and its arguments for clarity

12 years agoMerge branch 'mm/mediawiki-file-attachments'
Junio C Hamano [Fri, 13 Jul 2012 22:36:53 +0000 (15:36 -0700)]
Merge branch 'mm/mediawiki-file-attachments'

"mediawiki" remote helper (in contrib/) learned to handle file
attachments.

* mm/mediawiki-file-attachments:
  git-remote-mediawiki: improve support for non-English Wikis
  git-remote-mediawiki: import "File:" attachments
  git-remote-mediawiki: split get_mw_pages into smaller functions
  git-remote-mediawiki: send "File:" attachments to a remote wiki
  git-remote-mediawiki: don't "use encoding 'utf8';"
  git-remote-mediawiki: don't compute the diff when getting commit message

12 years agoMerge branch 'tr/maint-show-walk'
Junio C Hamano [Fri, 13 Jul 2012 22:36:44 +0000 (15:36 -0700)]
Merge branch 'tr/maint-show-walk'

Fixes "git show"'s auto-walking behaviour, and make it behave just
like "git log" does when it walks.

* tr/maint-show-walk:
  show: fix "range implies walking"
  Demonstrate git-show is broken with ranges

12 years agoMerge branch 'mz/rebase-no-mbox'
Junio C Hamano [Fri, 13 Jul 2012 22:36:31 +0000 (15:36 -0700)]
Merge branch 'mz/rebase-no-mbox'

Teach "am --rebasing" codepath to grab authorship, log message and
the patch text directly out of existing commits.  This will help
rebasing commits that have confusing "diff" output in their log
messages.

* mz/rebase-no-mbox:
  am: don't call mailinfo if $rebasing
  am --rebasing: get patch body from commit, not from mailbox
  rebase --root: print usage on too many args
  rebase: don't source git-sh-setup twice

12 years agorevision: avoid work after --max-count is reached
Jeff King [Fri, 13 Jul 2012 07:50:23 +0000 (03:50 -0400)]
revision: avoid work after --max-count is reached

During a revision traversal in which --max-count has been
specified, we decrement a counter for each revision returned
by get_revision. When it hits 0, we typically return NULL
(the exception being if we still have boundary commits to
show).

However, before we check the counter, we call get_revision_1
to get the next commit. This might involve looking at a
large number of commits if we have restricted the traversal
(e.g., we might traverse until we find the next commit whose
diff actually matches a pathspec).

There's no need to make this get_revision_1 call when our
counter runs out. If we are not in --boundary mode, we will
just throw away the result and immediately return NULL. If
we are in --boundary mode, then we will still throw away the
result, and then start showing the boundary commits.
However, as git_revision_1 does not impact the boundary
list, it should not have an impact.

In most cases, avoiding this work will not be especially
noticeable. However, in some cases, it can make a big
difference:

  [before]
  $ time git rev-list -1 origin Documentation/RelNotes/1.7.11.2.txt
  8d141a1d562abb31f27f599dbf6e10a6c06ed73e

  real    0m0.301s
  user    0m0.280s
  sys     0m0.016s

  [after]
  $ time git rev-list -1 origin Documentation/RelNotes/1.7.11.2.txt
  8d141a1d562abb31f27f599dbf6e10a6c06ed73e

  real    0m0.010s
  user    0m0.008s
  sys     0m0.000s

Note that the output is produced almost instantaneously in
the first case, and then git uselessly spends a long time
looking for the next commit to touch that file (but there
isn't one, and we traverse all the way down to the roots).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot1512: match the "other" object names
Junio C Hamano [Fri, 13 Jul 2012 19:43:43 +0000 (12:43 -0700)]
t1512: match the "other" object names

The test creates 16 objects that share the same prefix, and two other
objects that do not.  Tweak the test so that the other two share the
same prefix that is different from the one that is shared by the 16.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit p4: add support for 'p4 move' in P4Submit
Gary Gibbons [Thu, 12 Jul 2012 23:29:00 +0000 (19:29 -0400)]
git p4: add support for 'p4 move' in P4Submit

For -M option (detectRenames) in P4Submit, use 'p4 move' rather
than 'p4 integrate'.  Check Perforce server for exisitence of
'p4 move' and use it if present, otherwise revert to 'p4 integrate'.

[pw: wildcard-encode src/dest, add/update tests, tweak code]

Signed-off-by: Gary Gibbons <ggibbons@perforce.com>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot7003: add test to filter a branch with a commit at epoch
Junio C Hamano [Thu, 12 Jul 2012 20:51:37 +0000 (13:51 -0700)]
t7003: add test to filter a branch with a commit at epoch

Running filter-branch on a history that has a commit with timestamp
at epoch used to fail, but it should have been fixed.  Add test to
make sure it won't break again.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agodate.c: Fix off by one error in object-header date parsing
Junio C Hamano [Thu, 12 Jul 2012 20:46:49 +0000 (13:46 -0700)]
date.c: Fix off by one error in object-header date parsing

It is perfectly OK for a valid decimal integer to begin with '9' but
116eb3a (parse_date(): allow ancient git-timestamp, 2012-02-02) did
not express the range correctly.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agosubmodules: don't stumble over symbolic links when cloning recursively
Jens Lehmann [Thu, 12 Jul 2012 17:45:32 +0000 (19:45 +0200)]
submodules: don't stumble over symbolic links when cloning recursively

Since 69c3051 (submodules: refactor computation of relative gitdir path)
cloning a submodule recursively fails for nested submodules when a
symbolic link is part of the path to the work tree of the superproject.

This happens when module_clone() tries to find the relative paths between
the work tree and the git dir. When a symbolic link in current $PWD points
to a directory that is at a different level, then determining the number
of "../" needed to traverse to the superproject's work tree leads to a
wrong result.

As there is no portable way to say "pwd -P", use cd_to_toplevel to remove
the link from $PWD, which fixes this problem.

A test for this issue has been added to t7406.

Reported-by: Bob Halley <halley@play-bow.org>
Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot1512: ignore whitespaces in wc -l output
Junio C Hamano [Wed, 11 Jul 2012 23:30:28 +0000 (16:30 -0700)]
t1512: ignore whitespaces in wc -l output

Some implementations of sed (e.g. MacOS X) have whitespaces in the
output of "wc -l" that reads from the standard input.  Ignore these
whitespaces by not quoting the command substitution to be compared
with the constant "16".

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot4012: Unquote git command fragment in test title
Alexander Strasser [Wed, 11 Jul 2012 22:12:21 +0000 (00:12 +0200)]
t4012: Unquote git command fragment in test title

The command fragments are quoted nowhere else in title texts of
this file, thus make this one consistent with all other titles.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot4012: modernize style for quoting
Alexander Strasser [Wed, 11 Jul 2012 22:12:03 +0000 (00:12 +0200)]
t4012: modernize style for quoting

This quoting style is used by all newly added test code.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoReduce draft release notes to 1.7.12
Junio C Hamano [Wed, 11 Jul 2012 20:48:57 +0000 (13:48 -0700)]
Reduce draft release notes to 1.7.12

Many "fixes since 1.7.11" items are now in the maintenance track

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoSync with 1.7.11.2
Junio C Hamano [Wed, 11 Jul 2012 20:00:51 +0000 (13:00 -0700)]
Sync with 1.7.11.2

12 years agoGit 1.7.11.2 v1.7.11.2
Junio C Hamano [Wed, 11 Jul 2012 19:55:38 +0000 (12:55 -0700)]
Git 1.7.11.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jc/maint-blame-unique-abbrev' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:58:28 +0000 (12:58 -0700)]
Merge branch 'jc/maint-blame-unique-abbrev' into maint

"git blame" did not try to make sure that the abbreviated commit
object names in its output are unique.

* jc/maint-blame-unique-abbrev:
  blame: compute abbreviation width that ensures uniqueness

12 years agoMerge branch 'rj/platform-pread-may-be-thread-unsafe' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:57:28 +0000 (12:57 -0700)]
Merge branch 'rj/platform-pread-may-be-thread-unsafe' into maint

On Cygwin, the platform pread(2) is not thread safe, just like our own
compat/ emulation, and cannot be used in the index-pack program.
Makefile variable NO_THREAD_SAFE_PREAD can be defined to avoid use of
this function in a threaded program.

* rj/platform-pread-may-be-thread-unsafe:
  index-pack: Disable threading on cygwin

12 years agoMerge branch 'th/diff-no-index-fixes' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:48:44 +0000 (12:48 -0700)]
Merge branch 'th/diff-no-index-fixes' into maint

"git diff --no-index" did not correctly handle relative paths and
did not correctly give exit codes when run under "--quiet" option.

* th/diff-no-index-fixes:
  diff-no-index: exit(1) if 'diff --quiet <repo file> <external file>' finds changes
  diff: handle relative paths in no-index

12 years agoMerge branch 'nd/clone-single-fix' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:48:29 +0000 (12:48 -0700)]
Merge branch 'nd/clone-single-fix' into maint

"git clone --single-branch" to clone a single branch did not limit
the cloning to the specified branch.

* nd/clone-single-fix:
  clone: fix ref selection in --single-branch --branch=xxx

12 years agoMerge branch 'jc/rev-list-simplify-merges-first-parent' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:46:57 +0000 (12:46 -0700)]
Merge branch 'jc/rev-list-simplify-merges-first-parent' into maint

When "git log" gets "--simplify-merges/by-decoration" together with
"--first-parent", the combination of these options makes the
simplification logic to use in-core commit objects that haven't been
examined for relevance, either producing incorrect result or taking
too long to produce any output.  Teach the simplification logic to
ignore commits that the first-parent traversal logic ignored when
both are in effect to work around the issue.

* jc/rev-list-simplify-merges-first-parent:
  revision: ignore side parents while running simplify-merges
  revision: note the lack of free() in simplify_merges()
  revision: "simplify" options imply topo-order sort

12 years agoMerge branch 'hv/submodule-update-nuke-submodules' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:46:31 +0000 (12:46 -0700)]
Merge branch 'hv/submodule-update-nuke-submodules' into maint

"git add" allows adding a regular file to the path where a submodule
used to exist, but "git update-index" did not allow an equivalent
operation to Porcelain writers.

* hv/submodule-update-nuke-submodules:
  update-index: allow overwriting existing submodule index entries

12 years agoMerge branch 'jk/diff-no-index-pager' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:46:21 +0000 (12:46 -0700)]
Merge branch 'jk/diff-no-index-pager' into maint

"git diff --no-index" did not work with pagers correctly.

* jk/diff-no-index-pager:
  do not run pager with diff --no-index --quiet
  fix pager.diff with diff --no-index

12 years agoMerge branch 'mm/verify-filename-fix' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:45:49 +0000 (12:45 -0700)]
Merge branch 'mm/verify-filename-fix' into maint

"git diff COPYING HEAD:COPYING" gave a nonsense error message that
claimed that the treeish HEAD did not have COPYING in it.

* mm/verify-filename-fix:
  verify_filename(): ask the caller to chose the kind of diagnosis
  sha1_name: do not trigger detailed diagnosis for file arguments

12 years agoMerge branch 'cn/cherry-pick-range-docs' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:45:34 +0000 (12:45 -0700)]
Merge branch 'cn/cherry-pick-range-docs' into maint

The documentation for "git cherry-pick A B..C" was misleading.

* cn/cherry-pick-range-docs:
  git-cherry-pick.txt: clarify the use of revision range notation
  Documentation: --no-walk is no-op if range is specified

12 years agoMerge branch 'jc/ustar-checksum-is-unsigned' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:45:07 +0000 (12:45 -0700)]
Merge branch 'jc/ustar-checksum-is-unsigned' into maint

"git archive" incorrectly computed the header checksum; the symptom
was observed only when using pathnames with hi-bit set.

* jc/ustar-checksum-is-unsigned:
  archive: ustar header checksum is computed unsigned

12 years agoMerge branch 'jc/bundle-complete-notice' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:44:50 +0000 (12:44 -0700)]
Merge branch 'jc/bundle-complete-notice' into maint

Running "git bundle verify" on a bundle that records a complete
history said "it requires these 0 commits".

* jc/bundle-complete-notice:
  tweak "bundle verify" of a complete history

12 years agoMerge branch 'jc/ls-files-i-dir' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:44:34 +0000 (12:44 -0700)]
Merge branch 'jc/ls-files-i-dir' into maint

"git ls-files --exclude=t -i" did not consider anything under t/ as
excluded, as it did not pay attention to exclusion of leading paths
while walking the index.  Other two users of excluded() are also
updated.

* jc/ls-files-i-dir:
  dir.c: make excluded() file scope static
  unpack-trees.c: use path_excluded() in check_ok_to_remove()
  builtin/add.c: use path_excluded()
  path_excluded(): update API to less cache-entry centric
  ls-files -i: micro-optimize path_excluded()
  ls-files -i: pay attention to exclusion of leading paths