git
10 years agoMerge branch 'km/avoid-bs-in-shell-glob'
Junio C Hamano [Wed, 16 Apr 2014 20:38:52 +0000 (13:38 -0700)] 
Merge branch 'km/avoid-bs-in-shell-glob'

Portability fix.

* km/avoid-bs-in-shell-glob:
  test: fix t5560 on FreeBSD

10 years agotest: fix t5560 on FreeBSD
Kyle J. McKay [Fri, 11 Apr 2014 08:28:19 +0000 (01:28 -0700)] 
test: fix t5560 on FreeBSD

Since fd0a8c2e (first appearing in v1.7.0), the
t/t5560-http-backend-noserver.sh test has used a backslash escape
inside a ${} expansion in order to specify a literal '?' character.

Unfortunately the FreeBSD /bin/sh does not interpret this correctly.

In a POSIX compliant shell, the following:

x='one?two?three'
echo "${x#*\?}"

Would be expected to produce this:

two?three

When using the FreeBSD /bin/sh instead you get this:

one?two?three

In fact the FreeBSD /bin/sh treats the backslash as a literal
character to match so that this:

y='one\two\three'
echo "${y#*\?}"

Produces this unexpected value:

wo\three

In this case the backslash is not only treated literally, it also
fails to defeat the special meaning of the '?' character.

Instead, we can use the [...] construct to defeat the special meaning
of the '?' character and match it exactly in a way that works for the
FreeBSD /bin/sh as well as other POSIX /bin/sh implementations.

Changing the example like so:

x='one?two?three'
echo "${x#*[?]}"

Produces the expected output using the FreeBSD /bin/sh.

Therefore, change the use of \? to [?] in order to be compatible with
the FreeBSD /bin/sh which allows t/t5560-http-backend-noserver.sh to
pass on FreeBSD again.

Signed-off-by: Kyle J. McKay <mackyle@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoSync with 1.9.2
Junio C Hamano [Wed, 9 Apr 2014 19:06:14 +0000 (12:06 -0700)] 
Sync with 1.9.2

* maint:
  Git 1.9.2
  doc/http-backend: missing accent grave in literal mark-up

10 years agoGit 1.9.2 v1.9.2
Junio C Hamano [Wed, 9 Apr 2014 19:04:34 +0000 (12:04 -0700)] 
Git 1.9.2

The second maintenance release for Git 1.9; contains all the fixes
that are scheduled to appear in Git 2.0.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMerge branch 'jl/nor-or-nand-and' into maint
Junio C Hamano [Wed, 9 Apr 2014 19:03:26 +0000 (12:03 -0700)] 
Merge branch 'jl/nor-or-nand-and' into maint

* jl/nor-or-nand-and:
  code and test: fix misuses of "nor"
  comments: fix misuses of "nor"
  contrib: fix misuses of "nor"
  Documentation: fix misuses of "nor"

10 years agoMerge branch 'cn/fetch-prune-overlapping-destination' into maint
Junio C Hamano [Wed, 9 Apr 2014 19:02:41 +0000 (12:02 -0700)] 
Merge branch 'cn/fetch-prune-overlapping-destination' into maint

* cn/fetch-prune-overlapping-destination:
  fetch: handle overlaping refspecs on --prune
  fetch: add a failing test for prunning with overlapping refspecs

10 years agoMerge branch 'mh/update-ref-batch-create-fix' into maint
Junio C Hamano [Wed, 9 Apr 2014 19:01:28 +0000 (12:01 -0700)] 
Merge branch 'mh/update-ref-batch-create-fix' into maint

* mh/update-ref-batch-create-fix:
  update-ref: fail create operation over stdin if ref already exists

10 years agoMerge branch 'jk/commit-dates-parsing-fix' into maint
Junio C Hamano [Wed, 9 Apr 2014 18:59:38 +0000 (11:59 -0700)] 
Merge branch 'jk/commit-dates-parsing-fix' into maint

* jk/commit-dates-parsing-fix:
  t4212: loosen far-in-future test for AIX
  date: recognize bogus FreeBSD gmtime output

10 years agoMerge branch 'jc/fix-diff-no-index-diff-opt-parse' into maint
Junio C Hamano [Wed, 9 Apr 2014 18:59:16 +0000 (11:59 -0700)] 
Merge branch 'jc/fix-diff-no-index-diff-opt-parse' into maint

* jc/fix-diff-no-index-diff-opt-parse:
  diff-no-index: correctly diagnose error return from diff_opt_parse()

10 years agoMerge commit 'doc/http-backend: missing accent grave in literal mark-up'
Junio C Hamano [Wed, 9 Apr 2014 18:45:04 +0000 (11:45 -0700)] 
Merge commit 'doc/http-backend: missing accent grave in literal mark-up'

* commit '5df05146d5cb94628a3dfc53063c802ee1152cec':
  doc/http-backend: missing accent grave in literal mark-up

10 years agodoc/http-backend: missing accent grave in literal mark-up
Thomas Ackermann [Wed, 9 Apr 2014 18:17:38 +0000 (20:17 +0200)] 
doc/http-backend: missing accent grave in literal mark-up

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoUpdate draft release notes to 2.0
Junio C Hamano [Tue, 8 Apr 2014 19:11:17 +0000 (12:11 -0700)] 
Update draft release notes to 2.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMerge branch 'maint'
Junio C Hamano [Tue, 8 Apr 2014 19:08:59 +0000 (12:08 -0700)] 
Merge branch 'maint'

* maint:
  Update draft release notes to 1.9.2

10 years agoUpdate draft release notes to 1.9.2
Junio C Hamano [Tue, 8 Apr 2014 19:08:34 +0000 (12:08 -0700)] 
Update draft release notes to 1.9.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMerge branch 'mm/status-porcelain-format-i18n-fix' into maint
Junio C Hamano [Tue, 8 Apr 2014 19:07:06 +0000 (12:07 -0700)] 
Merge branch 'mm/status-porcelain-format-i18n-fix' into maint

* mm/status-porcelain-format-i18n-fix:
  status: disable translation when --porcelain is used

10 years agoMerge branch 'bp/commit-p-editor' into maint
Junio C Hamano [Tue, 8 Apr 2014 19:07:06 +0000 (12:07 -0700)] 
Merge branch 'bp/commit-p-editor' into maint

* bp/commit-p-editor:
  run-command: mark run_hook_with_custom_index as deprecated
  merge hook tests: fix and update tests
  merge: fix GIT_EDITOR override for commit hook
  commit: fix patch hunk editing with "commit -p -m"
  test patch hunk editing with "commit -p -m"
  merge hook tests: use 'test_must_fail' instead of '!'
  merge hook tests: fix missing '&&' in test

10 years agoMerge branch 'jk/pack-bitmap'
Junio C Hamano [Tue, 8 Apr 2014 19:00:32 +0000 (12:00 -0700)] 
Merge branch 'jk/pack-bitmap'

* jk/pack-bitmap:
  pack-objects: do not reuse packfiles without --delta-base-offset
  add `ignore_missing_links` mode to revwalk

10 years agoMerge branch 'jl/nor-or-nand-and'
Junio C Hamano [Tue, 8 Apr 2014 19:00:27 +0000 (12:00 -0700)] 
Merge branch 'jl/nor-or-nand-and'

Eradicate mistaken use of "nor" (that is, essentially "nor" used
not in "neither A nor B" ;-)) from in-code comments, command output
strings, and documentations.

* jl/nor-or-nand-and:
  code and test: fix misuses of "nor"
  comments: fix misuses of "nor"
  contrib: fix misuses of "nor"
  Documentation: fix misuses of "nor"

10 years agoMerge branch 'mh/update-ref-batch-create-fix'
Junio C Hamano [Tue, 8 Apr 2014 19:00:22 +0000 (12:00 -0700)] 
Merge branch 'mh/update-ref-batch-create-fix'

* mh/update-ref-batch-create-fix:
  update-ref: fail create operation over stdin if ref already exists

10 years agoMerge branch 'mr/opt-set-ptr'
Junio C Hamano [Tue, 8 Apr 2014 19:00:16 +0000 (12:00 -0700)] 
Merge branch 'mr/opt-set-ptr'

OPT_SET_PTR() implementation was broken on IL32P64 platforms;
it turns out that the macro is not used by any real user.

* mr/opt-set-ptr:
  parse-options: remove unused OPT_SET_PTR
  parse-options: add cast to correct pointer type to OPT_SET_PTR
  MSVC: fix t0040-parse-options crash

10 years agoMerge branch 'ib/rev-parse-parseopt-argh'
Junio C Hamano [Tue, 8 Apr 2014 19:00:08 +0000 (12:00 -0700)] 
Merge branch 'ib/rev-parse-parseopt-argh'

Finishing touch to a new topic scheduled for 2.0.

* ib/rev-parse-parseopt-argh:
  rev-parse: fix typo in example on manpage

10 years agoMerge branch 'mr/msvc-link-with-invalidcontinue'
Junio C Hamano [Tue, 8 Apr 2014 18:59:46 +0000 (11:59 -0700)] 
Merge branch 'mr/msvc-link-with-invalidcontinue'

* mr/msvc-link-with-invalidcontinue:
  MSVC: link in invalidcontinue.obj for better POSIX compatibility

10 years agoMerge branch 'jc/rev-parse-argh-dashed-multi-words'
Junio C Hamano [Tue, 8 Apr 2014 18:59:27 +0000 (11:59 -0700)] 
Merge branch 'jc/rev-parse-argh-dashed-multi-words'

Make sure that the help text given to describe the "<param>" part
of the "git cmd --option=<param>" does not contain SP or _,
e.g. "--gpg-sign=<key-id>" option for "git commit" is not spelled
as "--gpg-sign=<key id>".

* jc/rev-parse-argh-dashed-multi-words:
  parse-options: make sure argh string does not have SP or _
  update-index: teach --cacheinfo a new syntax "mode,sha1,path"
  parse-options: multi-word argh should use dash to separate words

10 years agoMerge branch 'jk/commit-dates-parsing-fix'
Junio C Hamano [Tue, 8 Apr 2014 18:59:05 +0000 (11:59 -0700)] 
Merge branch 'jk/commit-dates-parsing-fix'

Finishing touches for portability.

* jk/commit-dates-parsing-fix:
  t4212: loosen far-in-future test for AIX
  date: recognize bogus FreeBSD gmtime output

10 years agogit-p4: explicitly specify that HEAD is a revision
Vlad Dogaru [Mon, 7 Apr 2014 13:19:11 +0000 (16:19 +0300)] 
git-p4: explicitly specify that HEAD is a revision

'git p4 rebase' fails with the following message if there is a file
named HEAD in the current directory:

fatal: ambiguous argument 'HEAD': both revision and filename
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

Take the suggestion above and explicitly state that HEAD should be
treated as a revision.

Signed-off-by: Vlad Dogaru <vdogaru@ixiacom.com>
Acked-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agopack-objects: do not reuse packfiles without --delta-base-offset
Jeff King [Wed, 2 Apr 2014 06:39:17 +0000 (02:39 -0400)] 
pack-objects: do not reuse packfiles without --delta-base-offset

When we are sending a packfile to a remote, we currently try
to reuse a whole chunk of packfile without bothering to look
at the individual objects. This can make things like initial
clones much lighter on the server, as we can just dump the
packfile bytes.

However, it's possible that the other side cannot read our
packfile verbatim. For example, we may have objects stored
as OFS_DELTA, but the client is an antique version of git
that only understands REF_DELTA. We negotiate this
capability over the fetch protocol. A normal pack-objects
run will convert OFS_DELTA into REF_DELTA on the fly, but
the "reuse pack" code path never even looks at the objects.

This patch disables packfile reuse if the other side is
missing any capabilities that we might have used in the
on-disk pack. Right now the only one is OFS_DELTA, but we
may need to expand in the future (e.g., if packv4 introduces
new object types).

We could be more thorough and only disable reuse in this
case when we actually have an OFS_DELTA to send, but:

  1. We almost always will have one, since we prefer
     OFS_DELTA to REF_DELTA when possible. So this case
     would almost never come up.

  2. Looking through the objects defeats the purpose of the
     optimization, which is to do as little work as possible
     to get the bytes to the remote.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoadd `ignore_missing_links` mode to revwalk
Vicent Marti [Fri, 28 Mar 2014 10:00:43 +0000 (06:00 -0400)] 
add `ignore_missing_links` mode to revwalk

When pack-objects is computing the reachability bitmap to
serve a fetch request, it can erroneously die() if some of
the UNINTERESTING objects are not present. Upload-pack
throws away HAVE lines from the client for objects we do not
have, but we may have a tip object without all of its
ancestors (e.g., if the tip is no longer reachable and was
new enough to survive a `git prune`, but some of its
reachable objects did get pruned).

In the non-bitmap case, we do a revision walk with the HAVE
objects marked as UNINTERESTING. The revision walker
explicitly ignores errors in accessing UNINTERESTING commits
to handle this case (and we do not bother looking at
UNINTERESTING trees or blobs at all).

When we have bitmaps, however, the process is quite
different.  The bitmap index for a pack-objects run is
calculated in two separate steps:

First, we perform an extensive walk from all the HAVEs to
find the full set of objects reachable from them. This walk
is usually optimized away because we are expected to hit an
object with a bitmap during the traversal, which allows us
to terminate early.

Secondly, we perform an extensive walk from all the WANTs,
which usually also terminates early because we hit a commit
with an existing bitmap.

Once we have the resulting bitmaps from the two walks, we
AND-NOT them together to obtain the resulting set of objects
we need to pack.

When we are walking the HAVE objects, the revision walker
does not know that we are walking it only to mark the
results as uninteresting. We strip out the UNINTERESTING flag,
because those objects _are_ interesting to us during the
first walk. We want to keep going to get a complete set of
reachable objects if we can.

We need some way to tell the revision walker that it's OK to
silently truncate the HAVE walk, just like it does for the
UNINTERESTING case. This patch introduces a new
`ignore_missing_links` flag to the `rev_info` struct, which
we set only for the HAVE walk.

It also adds tests to cover UNINTERESTING objects missing
from several positions: a missing blob, a missing tree, and
a missing parent commit. The missing blob already worked (as
we do not care about its contents at all), but the other two
cases caused us to die().

Note that there are a few cases we do not need to test:

  1. We do not need to test a missing tree, with the blob
     still present. Without the tree that refers to it, we
     would not know that the blob is relevant to our walk.

  2. We do not need to test a tip commit that is missing.
     Upload-pack omits these for us (and in fact, we
     complain even in the non-bitmap case if it fails to do
     so).

Reported-by: Siddharth Agarwal <sid0@fb.com>
Signed-off-by: Vicent Marti <tanoku@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMSVC: allow using ExtUtils::MakeMaker
Marat Radchenko [Thu, 3 Apr 2014 07:34:03 +0000 (11:34 +0400)] 
MSVC: allow using ExtUtils::MakeMaker

Drop NO_PERL_MAKEMAKER from config.mak.uname for the MSVC platform.

MakeMaker is available on Windows Perl implementations and
installs modules to correct location, unlike NO_PERL_MAKEMAKER Makefile.

Signed-off-by: Marat Radchenko <marat@slonopotamus.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoUpdate draft release notes to 2.0
Junio C Hamano [Thu, 3 Apr 2014 20:40:59 +0000 (13:40 -0700)] 
Update draft release notes to 2.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMerge branch 'maint'
Junio C Hamano [Thu, 3 Apr 2014 20:40:31 +0000 (13:40 -0700)] 
Merge branch 'maint'

* maint:
  Start preparing for 1.9.1

10 years agoStart preparing for 1.9.1
Junio C Hamano [Thu, 3 Apr 2014 20:37:29 +0000 (13:37 -0700)] 
Start preparing for 1.9.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMerge branch 'jk/mv-submodules-fix' into maint
Junio C Hamano [Thu, 3 Apr 2014 20:39:06 +0000 (13:39 -0700)] 
Merge branch 'jk/mv-submodules-fix' into maint

* jk/mv-submodules-fix:
  mv: prevent mismatched data when ignoring errors.
  builtin/mv: fix out of bounds write

Conflicts:
t/t7001-mv.sh

10 years agoMerge branch 'mh/remove-subtree-long-pathname-fix' into maint
Junio C Hamano [Thu, 3 Apr 2014 20:39:05 +0000 (13:39 -0700)] 
Merge branch 'mh/remove-subtree-long-pathname-fix' into maint

* mh/remove-subtree-long-pathname-fix:
  entry.c: fix possible buffer overflow in remove_subtree()
  checkout_entry(): use the strbuf throughout the function

10 years agoMerge branch 'jk/lib-terminal-lazy' into maint
Junio C Hamano [Thu, 3 Apr 2014 20:39:04 +0000 (13:39 -0700)] 
Merge branch 'jk/lib-terminal-lazy' into maint

* jk/lib-terminal-lazy:
  t/lib-terminal: make TTY a lazy prerequisite

10 years agoMerge branch 'nd/index-pack-error-message' into maint
Junio C Hamano [Thu, 3 Apr 2014 20:39:04 +0000 (13:39 -0700)] 
Merge branch 'nd/index-pack-error-message' into maint

* nd/index-pack-error-message:
  index-pack: report error using the correct variable

10 years agoMerge branch 'us/printf-not-echo' into maint
Junio C Hamano [Thu, 3 Apr 2014 20:39:04 +0000 (13:39 -0700)] 
Merge branch 'us/printf-not-echo' into maint

* us/printf-not-echo:
  test-lib.sh: do not "echo" caller-supplied strings
  rebase -i: do not "echo" random user-supplied strings

10 years agoMerge branch 'rr/doc-merge-strategies' into maint
Junio C Hamano [Thu, 3 Apr 2014 20:39:03 +0000 (13:39 -0700)] 
Merge branch 'rr/doc-merge-strategies' into maint

* rr/doc-merge-strategies:
  Documentation/merge-strategies: avoid hyphenated commands

10 years agoMerge branch 'jk/shallow-update-fix' into maint
Junio C Hamano [Thu, 3 Apr 2014 20:39:03 +0000 (13:39 -0700)] 
Merge branch 'jk/shallow-update-fix' into maint

* jk/shallow-update-fix:
  shallow: verify shallow file after taking lock
  shallow: automatically clean up shallow tempfiles
  shallow: use stat_validity to check for up-to-date file

10 years agoMerge branch 'jc/stash-pop-not-popped' into maint
Junio C Hamano [Thu, 3 Apr 2014 20:39:03 +0000 (13:39 -0700)] 
Merge branch 'jc/stash-pop-not-popped' into maint

* jc/stash-pop-not-popped:
  stash pop: mention we did not drop the stash upon failing to apply

10 years agoMerge branch 'jn/wt-status' into maint
Junio C Hamano [Thu, 3 Apr 2014 20:39:02 +0000 (13:39 -0700)] 
Merge branch 'jn/wt-status' into maint

* jn/wt-status:
  wt-status: lift the artificual "at least 20 columns" floor
  wt-status: i18n of section labels
  wt-status: extract the code to compute width for labels
  wt-status: make full label string to be subject to l10n

10 years agoMerge branch 'nd/gc-aggressive'
Junio C Hamano [Thu, 3 Apr 2014 19:38:46 +0000 (12:38 -0700)] 
Merge branch 'nd/gc-aggressive'

Allow tweaking the maximum length of the delta-chain produced by
"gc --aggressive".

* nd/gc-aggressive:
  environment.c: fix constness for odb_pack_keep()
  gc --aggressive: make --depth configurable

10 years agoMerge branch 'jc/fix-diff-no-index-diff-opt-parse'
Junio C Hamano [Thu, 3 Apr 2014 19:38:42 +0000 (12:38 -0700)] 
Merge branch 'jc/fix-diff-no-index-diff-opt-parse'

"diff --no-index -Mq a b" fell into an infinite loop.

* jc/fix-diff-no-index-diff-opt-parse:
  diff-no-index: correctly diagnose error return from diff_opt_parse()

10 years agoMerge branch 'cb/aix'
Junio C Hamano [Thu, 3 Apr 2014 19:38:38 +0000 (12:38 -0700)] 
Merge branch 'cb/aix'

* cb/aix:
  tests: don't rely on strerror text when testing rmdir failure
  dir.c: make git_fnmatch() not inline

10 years agoMerge branch 'cn/fetch-prune-overlapping-destination'
Junio C Hamano [Thu, 3 Apr 2014 19:38:18 +0000 (12:38 -0700)] 
Merge branch 'cn/fetch-prune-overlapping-destination'

Protect refs in a hierarchy that can come from more than one remote
hierarcies from incorrect removal by "git fetch --prune".

* cn/fetch-prune-overlapping-destination:
  fetch: handle overlaping refspecs on --prune
  fetch: add a failing test for prunning with overlapping refspecs

10 years agoMerge branch 'nd/log-show-linear-break'
Junio C Hamano [Thu, 3 Apr 2014 19:38:11 +0000 (12:38 -0700)] 
Merge branch 'nd/log-show-linear-break'

Attempts to show where a single-strand-of-pearls break in "git log"
output.

* nd/log-show-linear-break:
  log: add --show-linear-break to help see non-linear history
  object.h: centralize object flag allocation

10 years agoMerge branch 'ep/shell-command-substitution'
Junio C Hamano [Thu, 3 Apr 2014 19:38:04 +0000 (12:38 -0700)] 
Merge branch 'ep/shell-command-substitution'

* ep/shell-command-substitution:
  git-am.sh: use the $(...) construct for command substitution
  check-builtins.sh: use the $(...) construct for command substitution

10 years agoMerge branch 'ap/remote-hg-skip-null-bookmarks'
Junio C Hamano [Wed, 2 Apr 2014 21:18:23 +0000 (14:18 -0700)] 
Merge branch 'ap/remote-hg-skip-null-bookmarks'

* ap/remote-hg-skip-null-bookmarks:
  remote-hg: do not fail on invalid bookmarks

10 years agoMerge branch 'rs/pickaxe-i'
Junio C Hamano [Wed, 2 Apr 2014 21:18:19 +0000 (14:18 -0700)] 
Merge branch 'rs/pickaxe-i'

Allow the options -i/--regexp-ignore-case, --pickaxe-regex, and -S
to be used together and work as expected to perform a pickaxe
search using case-insensitive regular expression matching.

* rs/pickaxe-i:
  pickaxe: simplify kwset loop in contains()
  pickaxe: call strlen only when necessary in diffcore_pickaxe_count()
  pickaxe: move pickaxe() after pickaxe_match()
  pickaxe: merge diffcore_pickaxe_grep() and diffcore_pickaxe_count() into diffcore_pickaxe()
  pickaxe: honor -i when used with -S and --pickaxe-regex
  t4209: use helper functions to test --author
  t4209: use helper functions to test --grep
  t4209: factor out helper function test_log_icase()
  t4209: factor out helper function test_log()
  t4209: set up expectations up front

10 years agoRevert part of 384364b (Start preparing for Git 2.0, 2014-03-07)
Junio C Hamano [Tue, 1 Apr 2014 18:55:56 +0000 (11:55 -0700)] 
Revert part of 384364b (Start preparing for Git 2.0, 2014-03-07)

As we are not shipping with the submodule change, remove the
entry for it.

10 years agoRevert "submodule: explicit local branch creation in module_clone"
Junio C Hamano [Wed, 2 Apr 2014 21:15:36 +0000 (14:15 -0700)] 
Revert "submodule: explicit local branch creation in module_clone"

This reverts commit 23d25e48f5ead73c9ce233986f90791abec9f1e8, as it is
broken for users who haven't opted into the new feature of checking
out submodule.*.branch with update mode set to checkout.

10 years agoupdate-ref: fail create operation over stdin if ref already exists
Aman Gupta [Wed, 2 Apr 2014 08:09:54 +0000 (10:09 +0200)] 
update-ref: fail create operation over stdin if ref already exists

Signed-off-by: Aman Gupta <aman@tmm1.net>
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Acked-by: Brad King <brad.king@kitware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agot4212: loosen far-in-future test for AIX
Jeff King [Tue, 1 Apr 2014 07:43:06 +0000 (03:43 -0400)] 
t4212: loosen far-in-future test for AIX

One of the tests in t4212 checks our behavior when we feed
gmtime a date so far in the future that it gives up and
returns NULL. Some implementations, like AIX, may actually
just provide us a bogus result instead.

It's not worth it for us to come up with heuristics that
guess whether the return value is sensible or not. On good
platforms where gmtime reports the problem to us with NULL,
we will print the epoch value. On bad platforms, we will
print garbage.  But our test should be written for the
lowest common denominator so that it passes everywhere.

Reported-by: Charles Bailey <cbailey32@bloomberg.net>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agodate: recognize bogus FreeBSD gmtime output
Jeff King [Tue, 1 Apr 2014 21:28:42 +0000 (17:28 -0400)] 
date: recognize bogus FreeBSD gmtime output

Most gmtime implementations return a NULL value when they
encounter an error (and this behavior is specified by ANSI C
and POSIX).  FreeBSD's implementation, however, will simply
leave the "struct tm" untouched.  Let's also recognize this
and convert it to a NULL (with this patch, t4212 should pass
on FreeBSD).

Reported-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agorev-parse: fix typo in example on manpage
René Scharfe [Tue, 1 Apr 2014 19:27:23 +0000 (21:27 +0200)] 
rev-parse: fix typo in example on manpage

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoRevert "Merge branch 'wt/doc-submodule-name-path-confusion-2'"
Junio C Hamano [Tue, 1 Apr 2014 18:52:37 +0000 (11:52 -0700)] 
Revert "Merge branch 'wt/doc-submodule-name-path-confusion-2'"

This reverts commit 00d4ff1a69883e24b095f45251d99143b5bc0320, reversing
changes made to d3badc6eb0961382788c2670129d5ee133d079fd.

10 years agoUpdate draft release notes to 2.0
Junio C Hamano [Mon, 31 Mar 2014 23:41:23 +0000 (16:41 -0700)] 
Update draft release notes to 2.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMerge branch 'mm/status-porcelain-format-i18n-fix'
Junio C Hamano [Mon, 31 Mar 2014 23:31:25 +0000 (16:31 -0700)] 
Merge branch 'mm/status-porcelain-format-i18n-fix'

* mm/status-porcelain-format-i18n-fix:
  status: disable translation when --porcelain is used

10 years agoMerge branch 'an/branch-config-message'
Junio C Hamano [Mon, 31 Mar 2014 23:31:19 +0000 (16:31 -0700)] 
Merge branch 'an/branch-config-message'

* an/branch-config-message:
  branch.c: install_branch_config: simplify if chain

10 years agoMerge branch 'jk/tests-cleanup'
Junio C Hamano [Mon, 31 Mar 2014 23:31:17 +0000 (16:31 -0700)] 
Merge branch 'jk/tests-cleanup'

* jk/tests-cleanup:
  t0001: drop subshells just for "cd"
  t0001: drop useless subshells
  t0001: use test_must_fail
  t0001: use test_config_global
  t0001: use test_path_is_*
  t0001: make symlink reinit test more careful
  t: prefer "git config --file" to GIT_CONFIG
  t: prefer "git config --file" to GIT_CONFIG with test_must_fail
  t: stop using GIT_CONFIG to cross repo boundaries
  t: drop useless sane_unset GIT_* calls
  t/test-lib: drop redundant unset of GIT_CONFIG
  t/Makefile: stop setting GIT_CONFIG

10 years agoMerge branch 'wt/doc-submodule-name-path-confusion-2'
Junio C Hamano [Mon, 31 Mar 2014 23:31:16 +0000 (16:31 -0700)] 
Merge branch 'wt/doc-submodule-name-path-confusion-2'

* wt/doc-submodule-name-path-confusion-2:
  doc: submodule.*.branch config is keyed by name

10 years agoMerge branch 'wt/doc-submodule-name-path-confusion-1'
Junio C Hamano [Mon, 31 Mar 2014 23:31:13 +0000 (16:31 -0700)] 
Merge branch 'wt/doc-submodule-name-path-confusion-1'

* wt/doc-submodule-name-path-confusion-1:
  doc: submodule.* config are keyed by submodule names

10 years agoMerge branch 'mr/msvc-link-with-lcurl'
Junio C Hamano [Mon, 31 Mar 2014 23:31:07 +0000 (16:31 -0700)] 
Merge branch 'mr/msvc-link-with-lcurl'

* mr/msvc-link-with-lcurl:
  MSVC: allow linking with the cURL library

10 years agoMerge branch 'ib/rev-parse-parseopt-argh'
Junio C Hamano [Mon, 31 Mar 2014 23:30:59 +0000 (16:30 -0700)] 
Merge branch 'ib/rev-parse-parseopt-argh'

Teaches the "rev-parse --parseopt" mechanism used by scripted
Porcelains to parse command line options and give help text how to
supply argv-help (the placeholder string for an option parameter,
e.g. "key-id" in "--gpg-sign=<key-id>").

* ib/rev-parse-parseopt-argh:
  t1502: protect runs of SPs used in the indentation
  rev-parse --parseopt: option argument name hints

10 years agoMerge branch 'dp/makefile-charset-lib-doc'
Junio C Hamano [Mon, 31 Mar 2014 23:30:57 +0000 (16:30 -0700)] 
Merge branch 'dp/makefile-charset-lib-doc'

* dp/makefile-charset-lib-doc:
  Makefile: describe CHARSET_LIB better

10 years agoMerge branch 'js/userdiff-cc'
Junio C Hamano [Mon, 31 Mar 2014 23:30:54 +0000 (16:30 -0700)] 
Merge branch 'js/userdiff-cc'

Improves the pattern to match the hunk-header for C/C++.

* js/userdiff-cc:
  userdiff: have 'cpp' hunk header pattern catch more C++ anchor points
  t4018: test cases showing that the cpp pattern misses many anchor points
  t4018: test cases for the built-in cpp pattern
  t4018: reduce test files for pattern compilation tests
  t4018: convert custom pattern test to the new infrastructure
  t4018: convert java pattern test to the new infrastructure
  t4018: convert perl pattern tests to the new infrastructure
  t4018: an infrastructure to test hunk headers
  userdiff: support unsigned and long long suffixes of integer constants
  userdiff: support C++ ->* and .* operators in the word regexp

10 years agoMerge branch 'dw/doc-status-no-longer-shows-pound-prefix'
Junio C Hamano [Mon, 31 Mar 2014 23:30:52 +0000 (16:30 -0700)] 
Merge branch 'dw/doc-status-no-longer-shows-pound-prefix'

* dw/doc-status-no-longer-shows-pound-prefix:
  doc: status, remove leftover statement about '#' prefix

10 years agoMerge branch 'ca/doc-config-third-party'
Junio C Hamano [Mon, 31 Mar 2014 23:30:49 +0000 (16:30 -0700)] 
Merge branch 'ca/doc-config-third-party'

* ca/doc-config-third-party:
  config.txt: third-party tools may and do use their own variables

10 years agoMerge branch 'hs/simplify-bit-setting-in-fsck-tree'
Junio C Hamano [Mon, 31 Mar 2014 23:30:44 +0000 (16:30 -0700)] 
Merge branch 'hs/simplify-bit-setting-in-fsck-tree'

* hs/simplify-bit-setting-in-fsck-tree:
  fsck: use bitwise-or assignment operator to set flag

10 years agoMerge branch 'dt/tests-with-env-not-subshell'
Junio C Hamano [Mon, 31 Mar 2014 23:30:40 +0000 (16:30 -0700)] 
Merge branch 'dt/tests-with-env-not-subshell'

* dt/tests-with-env-not-subshell:
  tests: use "env" to run commands with temporary env-var settings

10 years agocode and test: fix misuses of "nor"
Justin Lebar [Mon, 31 Mar 2014 22:11:47 +0000 (15:11 -0700)] 
code and test: fix misuses of "nor"

Signed-off-by: Justin Lebar <jlebar@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agocomments: fix misuses of "nor"
Justin Lebar [Mon, 31 Mar 2014 22:11:46 +0000 (15:11 -0700)] 
comments: fix misuses of "nor"

Signed-off-by: Justin Lebar <jlebar@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agocontrib: fix misuses of "nor"
Justin Lebar [Mon, 31 Mar 2014 22:11:45 +0000 (15:11 -0700)] 
contrib: fix misuses of "nor"

Signed-off-by: Justin Lebar <jlebar@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoDocumentation: fix misuses of "nor"
Justin Lebar [Mon, 31 Mar 2014 22:11:44 +0000 (15:11 -0700)] 
Documentation: fix misuses of "nor"

Signed-off-by: Justin Lebar <jlebar@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoparse-options: remove unused OPT_SET_PTR
Marat Radchenko [Sun, 30 Mar 2014 11:08:23 +0000 (15:08 +0400)] 
parse-options: remove unused OPT_SET_PTR

OPT_SET_PTR was never used since its creation at db7244bd
(parse-options new features., 2007-11-07).

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoparse-options: add cast to correct pointer type to OPT_SET_PTR
Junio C Hamano [Sun, 30 Mar 2014 02:01:54 +0000 (19:01 -0700)] 
parse-options: add cast to correct pointer type to OPT_SET_PTR

Do not force users of OPT_SET_PTR to cast pointer to correct
underlying pointer type by integrating cast into OPT_SET_PTR macro.

Cast is required to prevent 'initialization makes integer from pointer
without a cast' compiler warning.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMSVC: fix t0040-parse-options crash
Marat Radchenko [Sun, 30 Mar 2014 11:08:21 +0000 (15:08 +0400)] 
MSVC: fix t0040-parse-options crash

On 64-bit MSVC, pointers are 64 bit but `long` is only 32.
Thus, casting string to `unsigned long`, which is redundand on other
platforms, throws away important bits and when later cast to `intptr_t`
results in corrupt pointer.

This patch fixes test-parse-options by replacing harming cast with
correct one.

Signed-off-by: Marat Radchenko <marat@slonopotamus.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agotests: don't rely on strerror text when testing rmdir failure
Charles Bailey [Sat, 29 Mar 2014 15:39:01 +0000 (15:39 +0000)] 
tests: don't rely on strerror text when testing rmdir failure

AIX doesn't make a distiction between EEXIST and ENOTEMPTY; relying
on the strerror string for the rmdir failure is fragile. Just test
that the start of the string matches the Git controlled "failed to
rmdir..."  error. The exact text of the OS generated error string
isn't important to the test.

Signed-off-by: Charles Bailey <cbailey32@bloomberg.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agodir.c: make git_fnmatch() not inline
Charles Bailey [Sat, 29 Mar 2014 15:39:00 +0000 (15:39 +0000)] 
dir.c: make git_fnmatch() not inline

Now that it calls a static inline function, it cannot be an inline
definition with external linkage. Remove inline and make it an
external definition.

Signed-off-by: Charles Bailey <cbailey32@bloomberg.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agodiff-no-index: correctly diagnose error return from diff_opt_parse()
Junio C Hamano [Mon, 31 Mar 2014 18:47:17 +0000 (11:47 -0700)] 
diff-no-index: correctly diagnose error return from diff_opt_parse()

diff_opt_parse() returns the number of options parsed, or often
returns error() which is defined to return -1.  Yes, return value of
0 is "I did not process that option at all", which should cause the
caller to say that, but negative return should not be forgotten.

This bug caused "diff --no-index" to infinitely show the same error
message because the returned value was used to decrement the loop
control variable, e.g.

        $ git diff --no-index --color=words a b
        error: option `color' expects "always", "auto", or "never"
        error: option `color' expects "always", "auto", or "never"
        ...

Instead, make it act like so:

        $ git diff --no-index --color=words a b
        error: option `color' expects "always", "auto", or "never"
        fatal: invalid diff option/value: --color=words

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoenvironment.c: fix constness for odb_pack_keep()
Nguyễn Thái Ngọc Duy [Sun, 16 Mar 2014 13:35:00 +0000 (20:35 +0700)] 
environment.c: fix constness for odb_pack_keep()

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agogc --aggressive: make --depth configurable
Nguyễn Thái Ngọc Duy [Sun, 16 Mar 2014 13:35:03 +0000 (20:35 +0700)] 
gc --aggressive: make --depth configurable

When 1c192f3 (gc --aggressive: make it really aggressive - 2007-12-06)
made --depth=250 the default value, it didn't really explain the
reason behind, especially the pros and cons of --depth=250.

An old mail from Linus below explains it at length. Long story short,
--depth=250 is a disk saver and a performance killer. Not everybody
agrees on that aggressiveness. Let the user configure it.

    From: Linus Torvalds <torvalds@linux-foundation.org>
    Subject: Re: [PATCH] gc --aggressive: make it really aggressive
    Date: Thu, 6 Dec 2007 08:19:24 -0800 (PST)
    Message-ID: <alpine.LFD.0.9999.0712060803430.13796@woody.linux-foundation.org>
    Gmane-URL: http://article.gmane.org/gmane.comp.gcc.devel/94637

    On Thu, 6 Dec 2007, Harvey Harrison wrote:
    >
    > 7:41:25elapsed 86%CPU

    Heh. And this is why you want to do it exactly *once*, and then just
    export the end result for others ;)

    > -r--r--r-- 1 hharrison hharrison 324094684 2007-12-06 07:26 pack-1d46...pack

    But yeah, especially if you allow longer delta chains, the end result can
    be much smaller (and what makes the one-time repack more expensive is the
    window size, not the delta chain - you could make the delta chains longer
    with no cost overhead at packing time)

    HOWEVER.

    The longer delta chains do make it potentially much more expensive to then
    use old history. So there's a trade-off. And quite frankly, a delta depth
    of 250 is likely going to cause overflows in the delta cache (which is
    only 256 entries in size *and* it's a hash, so it's going to start having
    hash conflicts long before hitting the 250 depth limit).

    So when I said "--depth=250 --window=250", I chose those numbers more as
    an example of extremely aggressive packing, and I'm not at all sure that
    the end result is necessarily wonderfully usable. It's going to save disk
    space (and network bandwidth - the delta's will be re-used for the network
    protocol too!), but there are definitely downsides too, and using long
    delta chains may simply not be worth it in practice.

    (And some of it might just want to have git tuning, ie if people think
    that long deltas are worth it, we could easily just expand on the delta
    hash, at the cost of some more memory used!)

    That said, the good news is that working with *new* history will not be
    affected negatively, and if you want to be _really_ sneaky, there are ways
    to say "create a pack that contains the history up to a version one year
    ago, and be very aggressive about those old versions that we still want to
    have around, but do a separate pack for newer stuff using less aggressive
    parameters"

    So this is something that can be tweaked, although we don't really have
    any really nice interfaces for stuff like that (ie the git delta cache
    size is hardcoded in the sources and cannot be set in the config file, and
    the "pack old history more aggressively" involves some manual scripting
    and knowing how "git pack-objects" works rather than any nice simple
    command line switch).

    So the thing to take away from this is:
     - git is certainly flexible as hell
     - .. but to get the full power you may need to tweak things
     - .. happily you really only need to have one person to do the tweaking,
       and the tweaked end results will be available to others that do not
       need to know/care.

    And whether the difference between 320MB and 500MB is worth any really
    involved tweaking (considering the potential downsides), I really don't
    know. Only testing will tell.

    Linus

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoUpdate draft release notes to 2.0
Junio C Hamano [Fri, 28 Mar 2014 20:56:29 +0000 (13:56 -0700)] 
Update draft release notes to 2.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMerge branch 'ys/fsck-commit-parsing'
Junio C Hamano [Fri, 28 Mar 2014 20:51:24 +0000 (13:51 -0700)] 
Merge branch 'ys/fsck-commit-parsing'

* ys/fsck-commit-parsing:
  fsck.c:fsck_commit(): use skip_prefix() to verify and skip constant
  fsck.c:fsck_ident(): ident points at a const string

10 years agoMerge branch 'bg/rebase-off-of-previous-branch'
Junio C Hamano [Fri, 28 Mar 2014 20:51:20 +0000 (13:51 -0700)] 
Merge branch 'bg/rebase-off-of-previous-branch'

* bg/rebase-off-of-previous-branch:
  rebase: allow "-" short-hand for the previous branch

10 years agoMerge branch 'bp/commit-p-editor'
Junio C Hamano [Fri, 28 Mar 2014 20:51:11 +0000 (13:51 -0700)] 
Merge branch 'bp/commit-p-editor'

When it is not necessary to edit a commit log message (e.g. "git
commit -m" is given a message without specifying "-e"), we used to
disable the spawning of the editor by overriding GIT_EDITOR, but
this means all the uses of the editor, other than to edit the
commit log message, are also affected.

* bp/commit-p-editor:
  run-command: mark run_hook_with_custom_index as deprecated
  merge hook tests: fix and update tests
  merge: fix GIT_EDITOR override for commit hook
  commit: fix patch hunk editing with "commit -p -m"
  test patch hunk editing with "commit -p -m"
  merge hook tests: use 'test_must_fail' instead of '!'
  merge hook tests: fix missing '&&' in test

10 years agoMerge branch 'ah/doc-gitk-config'
Junio C Hamano [Fri, 28 Mar 2014 20:51:08 +0000 (13:51 -0700)] 
Merge branch 'ah/doc-gitk-config'

* ah/doc-gitk-config:
  Documentation/gitk: document the location of the configulation file

10 years agoMerge branch 'fr/add-interactive-argv-array'
Junio C Hamano [Fri, 28 Mar 2014 20:51:04 +0000 (13:51 -0700)] 
Merge branch 'fr/add-interactive-argv-array'

* fr/add-interactive-argv-array:
  add: use struct argv_array in run_add_interactive()

10 years agoMerge branch 'jk/subtree-prefix'
Junio C Hamano [Fri, 28 Mar 2014 20:50:59 +0000 (13:50 -0700)] 
Merge branch 'jk/subtree-prefix'

A stray environment variable $prefix could have leaked into and
affected the behaviour of the "subtree" script.

* jk/subtree-prefix:
  subtree: initialize "prefix" variable

10 years agoMerge branch 'jk/pack-bitmap-progress'
Junio C Hamano [Fri, 28 Mar 2014 20:50:56 +0000 (13:50 -0700)] 
Merge branch 'jk/pack-bitmap-progress'

The progress output while repacking and transferring objects showed
an apparent large silence while writing the objects out of existing
packfiles, when the reachability bitmap was in use.

* jk/pack-bitmap-progress:
  pack-objects: show reused packfile objects in "Counting objects"
  pack-objects: show progress for reused packfiles

10 years agoMerge branch 'jk/pack-bitmap'
Junio C Hamano [Fri, 28 Mar 2014 20:50:50 +0000 (13:50 -0700)] 
Merge branch 'jk/pack-bitmap'

Instead of dying when asked to (re)pack with the reachability
bitmap when a bitmap cannot be built, just (re)pack without
producing a bitmap in such a case, with a warning.

* jk/pack-bitmap:
  pack-objects: turn off bitmaps when skipping objects

10 years agoMSVC: link in invalidcontinue.obj for better POSIX compatibility
Marat Radchenko [Fri, 28 Mar 2014 20:08:02 +0000 (00:08 +0400)] 
MSVC: link in invalidcontinue.obj for better POSIX compatibility

By default, Windows abort()'s instead of setting
errno=EINVAL when invalid arguments are passed to standard functions.

For example, when PAGER quits and git detects it with
errno=EPIPE on write(), check_pipe() in write_or_die.c tries raise(SIGPIPE)
but since there is no SIGPIPE on Windows, it is treated as invalid argument,
causing abort() and crash report window.

Linking in invalidcontinue.obj (provided along with MS compiler) allows
raise(SIGPIPE) to return with errno=EINVAL.

Signed-off-by: Marat Radchenko <marat@slonopotamus.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agodoc: submodule.*.branch config is keyed by name
W. Trevor King [Thu, 27 Mar 2014 21:06:20 +0000 (14:06 -0700)] 
doc: submodule.*.branch config is keyed by name

Ever since 941987a5 (git-submodule: give submodules proper names,
2007-06-11) introduced the ability to move a submodule from one path
to another inside its superproject tree without losing its identity,
we should have consistently used submodule.<name>.* to access
settings related to the named submodule.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agodoc: submodule.* config are keyed by submodule names
W. Trevor King [Thu, 27 Mar 2014 21:06:20 +0000 (14:06 -0700)] 
doc: submodule.* config are keyed by submodule names

Ever since 941987a5 (git-submodule: give submodules proper names,
2007-06-11) introduced the ability to move a submodule from one path
to another inside its superproject tree without losing its identity,
we should have consistently used submodule.<name>.* to access
settings related to the named submodule.

Reported-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMSVC: allow linking with the cURL library
Marat Radchenko [Thu, 27 Mar 2014 07:34:27 +0000 (11:34 +0400)] 
MSVC: allow linking with the cURL library

Teach the clink.pl script that -lcurl is a request to link with the
cURL library, and drop NO_CURL from config.mak.uname for the MSVC
platform.

Signed-off-by: Marat Radchenko <marat@slonopotamus.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agofetch: handle overlaping refspecs on --prune
Carlos Martín Nieto [Thu, 27 Feb 2014 09:00:10 +0000 (10:00 +0100)] 
fetch: handle overlaping refspecs on --prune

We need to consider that a remote-tracking branch may match more than
one rhs of a fetch refspec. In such a case, it is not enough to stop at
the first match but look at all of the matches in order to determine
whether a head is stale.

To this goal, introduce a variant of query_refspecs which returns all of
the matching refspecs and loop over those answers to check for
staleness.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agostatus: disable translation when --porcelain is used
Matthieu Moy [Thu, 20 Mar 2014 12:12:41 +0000 (13:12 +0100)] 
status: disable translation when --porcelain is used

"git status --branch --porcelain" displays the status of the branch
(ahead, behind, gone), and used gettext to translate the string.

Use hardcoded strings when --porcelain is used, but keep the gettext
translation for "git status --short" which is essentially the same, but
meant to be read by a human.

Reported-by: Anarky <ghostanarky@gmail.com>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agolog: add --show-linear-break to help see non-linear history
Nguyễn Thái Ngọc Duy [Tue, 25 Mar 2014 13:23:27 +0000 (20:23 +0700)] 
log: add --show-linear-break to help see non-linear history

Option explanation is in rev-list-options.txt. The interaction with -z
is left undecided.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoobject.h: centralize object flag allocation
Nguyễn Thái Ngọc Duy [Tue, 25 Mar 2014 13:23:26 +0000 (20:23 +0700)] 
object.h: centralize object flag allocation

While the field "flags" is mainly used by the revision walker, it is
also used in many other places. Centralize the whole flag allocation to
one place for a better overview (and easier to move flags if we have
too).

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agogit-am.sh: use the $(...) construct for command substitution
Elia Pinto [Tue, 25 Mar 2014 17:22:22 +0000 (10:22 -0700)] 
git-am.sh: use the $(...) construct for command substitution

The Git CodingGuidelines prefer the $(...) construct for command
substitution instead of using the backquotes `...`.

The backquoted form is the traditional method for command
substitution, and is supported by POSIX.  However, all but the
simplest uses become complicated quickly.  In particular, embedded
command substitutions and/or the use of double quotes require
careful escaping with the backslash character.

The patch was generated by:

    for _f in $(find . -name "*.sh")
    do
      sed -i 's@`\(.*\)`@$(\1)@g' ${_f}
    done

and then carefully proof-read.

Signed-off-by: Elia Pinto <gitter.spiros@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agocheck-builtins.sh: use the $(...) construct for command substitution
Elia Pinto [Tue, 25 Mar 2014 17:22:22 +0000 (10:22 -0700)] 
check-builtins.sh: use the $(...) construct for command substitution

The Git CodingGuidelines prefer the $(...) construct for command
substitution instead of using the backquotes `...`.

The backquoted form is the traditional method for command
substitution, and is supported by POSIX.  However, all but the
simplest uses become complicated quickly.  In particular, embedded
command substitutions and/or the use of double quotes require
careful escaping with the backslash character.

The patch was generated by:

    for _f in $(find . -name "*.sh")
    do
      sed -i 's@`\(.*\)`@$(\1)@g' ${_f}
    done

and then carefully proof-read.

Signed-off-by: Elia Pinto <gitter.spiros@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>