gitweb.git
Sync with 1.8.2.2Junio C Hamano Fri, 26 Apr 2013 20:00:42 +0000 (13:00 -0700)

Sync with 1.8.2.2

Git 1.8.2.2 v1.8.2.2Junio C Hamano Fri, 26 Apr 2013 18:30:08 +0000 (11:30 -0700)

Git 1.8.2.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jk/a-thread-only-dies-once' into maintJunio C Hamano Fri, 26 Apr 2013 18:25:59 +0000 (11:25 -0700)

Merge branch 'jk/a-thread-only-dies-once' into maint

* jk/a-thread-only-dies-once:
run-command: use thread-aware die_is_recursing routine
usage: allow pluggable die-recursion checks

Merge branch 'jn/gitweb-install-doc' into maintJunio C Hamano Fri, 26 Apr 2013 18:12:48 +0000 (11:12 -0700)

Merge branch 'jn/gitweb-install-doc' into maint

* jn/gitweb-install-doc:
gitweb/INSTALL: GITWEB_CONFIG_SYSTEM is for backward compatibility
gitweb/INSTALL: Simplify description of GITWEB_CONFIG_SYSTEM

Merge branch 'fc/untracked-zsh-prompt' into maintJunio C Hamano Fri, 26 Apr 2013 18:12:30 +0000 (11:12 -0700)

Merge branch 'fc/untracked-zsh-prompt' into maint

* fc/untracked-zsh-prompt:
prompt: fix untracked files for zsh

Merge branch 'jk/receive-pack-deadlocks-with-early... Junio C Hamano Fri, 26 Apr 2013 18:12:17 +0000 (11:12 -0700)

Merge branch 'jk/receive-pack-deadlocks-with-early-failure' into maint

* jk/receive-pack-deadlocks-with-early-failure:
receive-pack: close sideband fd on early pack errors

Merge branch 'jk/chopped-ident' into maintJunio C Hamano Fri, 26 Apr 2013 18:11:51 +0000 (11:11 -0700)

Merge branch 'jk/chopped-ident' into maint

* jk/chopped-ident:
blame: handle broken commit headers gracefully
pretty: handle broken commit headers gracefully
cat-file: print tags raw for "cat-file -p"

Merge branch 'rt/commentchar-fmt-merge-msg' into maintJunio C Hamano Fri, 26 Apr 2013 18:10:47 +0000 (11:10 -0700)

Merge branch 'rt/commentchar-fmt-merge-msg' into maint

* rt/commentchar-fmt-merge-msg:
t6200: avoid path mangling issue on Windows
fmt-merge-msg: use core.commentchar in tag signatures completely
fmt-merge-msg: respect core.commentchar in people credits

Merge branch 'rs/empty-archive' into maintJunio C Hamano Fri, 26 Apr 2013 18:03:31 +0000 (11:03 -0700)

Merge branch 'rs/empty-archive' into maint

* rs/empty-archive:
t5004: fix issue with empty archive test and bsdtar

Merge branch 'pe/pull-rebase-v-q' into maintJunio C Hamano Fri, 26 Apr 2013 18:00:14 +0000 (11:00 -0700)

Merge branch 'pe/pull-rebase-v-q' into maint

* pe/pull-rebase-v-q:
pull: Apply -q and -v options to rebase mode as well

t7409: do not use export X=YTorsten Bögershausen Fri, 26 Apr 2013 09:18:28 +0000 (11:18 +0200)

t7409: do not use export X=Y

The shell syntax "export X=Y A=B" is not understood by all shells.

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test-hg-hg-git.sh: do not use export X=YTorsten Bögershausen Fri, 26 Apr 2013 09:17:43 +0000 (11:17 +0200)

test-hg-hg-git.sh: do not use export X=Y

The shell syntax "export X=Y" is not understood by all shells.

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test-hg-bidi.sh: do not use export X=YTorsten Bögershausen Fri, 26 Apr 2013 09:17:56 +0000 (11:17 +0200)

test-hg-bidi.sh: do not use export X=Y

The shell syntax "export X=Y A=B" is not understood by all shells.

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9501: do not use export X=YTorsten Bögershausen Fri, 26 Apr 2013 09:18:07 +0000 (11:18 +0200)

t9501: do not use export X=Y

The shell syntax "export X=Y" is not understood by all shells.

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9020: do not use export X=YTorsten Bögershausen Fri, 26 Apr 2013 09:18:16 +0000 (11:18 +0200)

t9020: do not use export X=Y

The shell syntax "export X=Y" is not understood by all shells.

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-bzr: use proper push methodFelipe Contreras Thu, 25 Apr 2013 11:25:37 +0000 (06:25 -0500)

remote-bzr: use proper push method

Do not just randomly synchronize the revisions with no checks at
all.

I don't have any evidence that there's anything wrong with the
current code, which Bazaar seems to use, but for different purposes.
Let's use the logic Bazaar UI uses to avoid surprises.

Also, add a non-ff check.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

pretty: remove intermediate strbufs from pp_user_info()René Scharfe Thu, 25 Apr 2013 19:43:56 +0000 (21:43 +0200)

pretty: remove intermediate strbufs from pp_user_info()

Use namebuf/namelen and mailbuf/maillen directly instead of copying
their contents into strbufs first.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

pretty: simplify output line length calculation in... René Scharfe Thu, 25 Apr 2013 19:41:57 +0000 (21:41 +0200)

pretty: simplify output line length calculation in pp_user_info()

Keep namelen unchanged and don't use it to hold a value that we're not
interested in anyway -- we can use maillen and the constant part
directly instead. This simplifies the code slightly and prepares for
the next patch that makes use of the original value of namelen.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

pretty: simplify input line length calculation in pp_us... René Scharfe Thu, 25 Apr 2013 19:40:25 +0000 (21:40 +0200)

pretty: simplify input line length calculation in pp_user_info()

Instead of searching for LF and NUL with two strchr() calls use a single
strchrnul() call. We don't need to check if the returned pointer is NULL
because either we'll find the NUL at the end of line, or the caller
forgot to NUL-terminate the string and we'll overrun the buffer in any
case. Also we don't need to pass LF or NUL to split_ident_line() as it
ignores it anyway.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bash-prompt.sh: show where rebase is at when stoppedZoltan Klinger Thu, 25 Apr 2013 09:28:54 +0000 (19:28 +1000)

bash-prompt.sh: show where rebase is at when stopped

When a rebase stops (e.g. interrupted by a merge conflict), it could
be useful to know how far a rebase has progressed and how many
commits in total this rebase will apply. Teach the __git_ps1()
command to display the number of commits so far applied and the
total number of commits to be applied, like this:

((3ec0a6a...)|REBASE 2/5)

In the example above the rebase has stopped at the second commit due to
a merge conflict and there are a total number of five commits to be
applied by this rebase.

This information can be already obtained from the following files which are
being generated during the rebase:

GIT_DIR/.git/rebase-merge/msgnum (git-rebase--merge.sh)
GIT_DIR/.git/rebase-merge/end (git-rebase--merge.sh)
GIT_DIR/.git/rebase-apply/next (git-am.sh)
GIT_DIR/.git/rebase-apply/last (git-am.sh)

but "rebase -i" does not leave necessary clues.

Implement this feature by doing these three things:

1) Modify git-rebase--interactive.sh to also create

GIT_DIR/.git/rebase-merge/msgnum
GIT_DIR/.git/rebase-merge/end

files for the number of commits so far applied and the total
number of commits to be applied.

2) Modify git-prompt.sh to read and display info from the above
files.

3) Update test t9903-bash-prompt.sh to reflect changes introduced
by this patch.

Signed-off-by: Zoltan Klinger <zoltan.klinger@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jk/remote-helper-with-signed-tags'Junio C Hamano Wed, 24 Apr 2013 23:30:50 +0000 (16:30 -0700)

Merge branch 'jk/remote-helper-with-signed-tags'

Allows remote-helpers to declare they can handle signed tags, and
issue a warning when using those that don't.

* jk/remote-helper-with-signed-tags:
transport-helper: add 'signed-tags' capability
transport-helper: pass --signed-tags=warn-strip to fast-export
fast-export: add --signed-tags=warn-strip mode

Sync with maintJunio C Hamano Wed, 24 Apr 2013 23:30:04 +0000 (16:30 -0700)

Sync with maint

* maint:
Update draft release notes to 1.8.2.2
completion: remove duplicate block for "git commit -c"
cherry-pick/revert: make usage say '<commit-ish>...'

Update draft release notes to 1.8.2.2Junio C Hamano Wed, 24 Apr 2013 23:22:07 +0000 (16:22 -0700)

Update draft release notes to 1.8.2.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jk/diff-algo-finishing-touches' into... Junio C Hamano Wed, 24 Apr 2013 23:17:13 +0000 (16:17 -0700)

Merge branch 'jk/diff-algo-finishing-touches' into maint

"git diff --diff-algorithm=algo" was understood by the command line
parser, but "git diff --diff-algorithm algo" was not.

* jk/diff-algo-finishing-touches:
diff: allow unstuck arguments with --diff-algorithm
git-merge(1): document diff-algorithm option to merge-recursive

Merge branch 'sr/log-SG-no-textconv' into maintJunio C Hamano Wed, 24 Apr 2013 23:15:44 +0000 (16:15 -0700)

Merge branch 'sr/log-SG-no-textconv' into maint

"git log -S/-G" started paying attention to textconv filter, but
there was no way to disable this. Make it honor --no-textconv
option.

* sr/log-SG-no-textconv:
diffcore-pickaxe: unify code for log -S/-G
diffcore-pickaxe: fix leaks in "log -S<block>" and "log -G<pattern>"
diffcore-pickaxe: port optimization from has_changes() to diff_grep()
diffcore-pickaxe: respect --no-textconv
diffcore-pickaxe: remove fill_one()
diffcore-pickaxe: remove unnecessary call to get_textconv()

Merge branch 'jc/merge-tag-object' into maintJunio C Hamano Wed, 24 Apr 2013 23:14:06 +0000 (16:14 -0700)

Merge branch 'jc/merge-tag-object' into maint

"git merge $(git rev-parse v1.8.2)" behaved quite differently from
"git merge v1.8.2", as if v1.8.2 were written as v1.8.2^0 and did
not pay much attention to the annotated tag payload. Make the code
notice the type of the tag object, in addition to the dwim_ref()
based classification the current code uses (i.e. the name appears in
refs/tags/) to decide when to special case merging of tags.

* jc/merge-tag-object:
t6200: test message for merging of an annotated tag
t6200: use test_config/test_unconfig
merge: a random object may not necssarily be a commit

completion: remove duplicate block for "git commit -c"Mårten Kongstad Wed, 24 Apr 2013 20:49:06 +0000 (22:49 +0200)

completion: remove duplicate block for "git commit -c"

Remove one of two consecutive, identical blocks for "git commit -c".

This was caused by a mechanical mismerge at d931e2fb252e (Merge
branch 'mp/complete-paths', 2013-02-08). The side branch wanted to
add this block at fea16b47 but the same fix was done independently
at 685397585 already.

Signed-off-by: Mårten Kongstad <marten.kongstad@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote: 'show' and 'prune' can take more than one remoteThomas Rast Wed, 24 Apr 2013 13:54:37 +0000 (15:54 +0200)

remote: 'show' and 'prune' can take more than one remote

The 'git remote show' and 'prune' subcommands are documented as taking
only a single remote name argument, but that is not the case; they
will simply iterate the action over all remotes given. Update the
documentation and tests to match.

With the last user of the -f flag gone, we also remove the code
supporting it.

Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote: check for superfluous arguments in 'git remote... Thomas Rast Wed, 24 Apr 2013 13:54:36 +0000 (15:54 +0200)

remote: check for superfluous arguments in 'git remote add'

The 'git remote add' subcommand did not check for superfluous command
line arguments. Make it so.

Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote: add a test for extra arguments, according to... Thomas Rast Wed, 24 Apr 2013 13:54:35 +0000 (15:54 +0200)

remote: add a test for extra arguments, according to docs

This adds one test or comment for each subcommand of git-remote
according to its current documentation. All but 'set-branches' and
'update' are listed as taking only a fixed number of arguments; for
those we can write a test with one more (bogus) argument, and see if
the command notices that.

They fail on several counts: 'add' does not check for extra arguments,
and 'show' and 'prune' actually iterate over remotes (i.e., take any
number of args). We'll fix them in the next two patches.

The -f machinery is only there to make the tests readable while still
ensuring they pass as a whole, and will be removed in the final patch.

Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

cherry-pick/revert: make usage say '<commit-ish>...'Kevin Bracey Mon, 22 Apr 2013 15:57:37 +0000 (18:57 +0300)

cherry-pick/revert: make usage say '<commit-ish>...'

The usage string for cherry-pick and revert has never been updated to
reflect their ability to handle multiple commits. Other documentation is
already correct.

Signed-off-by: Kevin Bracey <kevin@bracey.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge git://github.com/git-l10n/git-poJunio C Hamano Wed, 24 Apr 2013 05:55:33 +0000 (22:55 -0700)

Merge git://github.com/git-l10n/git-po

* git://github.com/git-l10n/git-po:
l10n: de.po: translate 54 new messages
l10n: zh_CN.po: translate 54 messages (2048t0f0u)
l10n: Update Swedish translation (2048t0f0u)
l10n: vi.po: Update translation (2048t0u0f)
l10n: git.pot: v1.8.3 round 1 (54 new, 15 removed)

rebase: find orig_head unambiguouslyPhil Hord Tue, 23 Apr 2013 22:51:14 +0000 (18:51 -0400)

rebase: find orig_head unambiguously

When we 'git rebase $upstream', git uses 'rev-parse --verify
$current_branch' to find ORIG_HEAD. But if $current_branch
is ambiguous, 'rev-parse --verify' emits a warning and returns
a SHA1 anyway. When the wrong ambiguous choice is used,
git-rebase fails non-gracefully: it emits a warning about
failing to lock $current_branch, an error about being unable to
checkout $current_branch again, and it might even decide the
rebase is a fast-forward when it is not.

In the 'rebase $upstream' case, we already know the unambiguous
spelling of $current_branch is "HEAD". Fix git-rebase to find
$orig_head unambiguously.

Add a test in t3400-rebase.sh which creates an ambiguous branch
name and rebases it implicitly with 'git rebase $other'.

Signed-off-by: Phil Hord <hordp@cisco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.8.3Junio C Hamano Tue, 23 Apr 2013 18:27:15 +0000 (11:27 -0700)

Update draft release notes to 1.8.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'nd/pretty-formats'Junio C Hamano Tue, 23 Apr 2013 18:22:48 +0000 (11:22 -0700)

Merge branch 'nd/pretty-formats'

pretty-printing body of the commit that is stored in non UTF-8
encoding did not work well. The early part of this series fixes
it. And then it adds %C(auto) specifier that turns the coloring on
when we are emitting to the terminal, and adds column-aligning
format directives.

* nd/pretty-formats:
pretty: support %>> that steal trailing spaces
pretty: support truncating in %>, %< and %><
pretty: support padding placeholders, %< %> and %><
pretty: add %C(auto) for auto-coloring
pretty: split color parsing into a separate function
pretty: two phase conversion for non utf-8 commits
utf8.c: add reencode_string_len() that can handle NULs in string
utf8.c: add utf8_strnwidth() with the ability to skip ansi sequences
utf8.c: move display_mode_esc_sequence_len() for use by other functions
pretty: share code between format_decoration and show_decorations
pretty-formats.txt: wrap long lines
pretty: get the correct encoding for --pretty:format=%e
pretty: save commit encoding from logmsg_reencode if the caller needs it

Merge branch 'kb/status-ignored-optim-2'Junio C Hamano Tue, 23 Apr 2013 18:21:23 +0000 (11:21 -0700)

Merge branch 'kb/status-ignored-optim-2'

Fixes a handful of issues in the code to traverse working tree to
find untracked and/or ignored files, cleans up and optimizes the
codepath in general.

* kb/status-ignored-optim-2:
dir.c: git-status --ignored: don't scan the work tree twice
dir.c: git-status --ignored: don't scan the work tree three times
dir.c: git-status: avoid is_excluded checks for tracked files
dir.c: replace is_path_excluded with now equivalent is_excluded API
dir.c: unify is_excluded and is_path_excluded APIs
dir.c: move prep_exclude
dir.c: factor out parts of last_exclude_matching for later reuse
dir.c: git-clean -d -X: don't delete tracked directories
dir.c: make 'git-status --ignored' work within leading directories
dir.c: git-status --ignored: don't list empty directories as ignored
dir.c: git-ls-files --directories: don't hide empty directories
dir.c: git-status --ignored: don't list empty ignored directories
dir.c: git-status --ignored: don't list files in ignored directories
dir.c: git-status --ignored: don't drop ignored directories

Merge branch 'jn/gitweb-install-doc'Junio C Hamano Tue, 23 Apr 2013 18:17:07 +0000 (11:17 -0700)

Merge branch 'jn/gitweb-install-doc'

Reword gitweb configuration instrutions.

* jn/gitweb-install-doc:
gitweb/INSTALL: GITWEB_CONFIG_SYSTEM is for backward compatibility
gitweb/INSTALL: Simplify description of GITWEB_CONFIG_SYSTEM

Merge branch 'fc/untracked-zsh-prompt'Junio C Hamano Tue, 23 Apr 2013 18:16:58 +0000 (11:16 -0700)

Merge branch 'fc/untracked-zsh-prompt'

* fc/untracked-zsh-prompt:
prompt: fix untracked files for zsh

Merge branch 'jk/receive-pack-deadlocks-with-early... Junio C Hamano Tue, 23 Apr 2013 18:16:50 +0000 (11:16 -0700)

Merge branch 'jk/receive-pack-deadlocks-with-early-failure'

When receive-pack detects error in the pack header it received in
order to decide which of unpack-objects or index-pack to run, it
returned without closing the error stream, which led to a hang
sideband thread.

* jk/receive-pack-deadlocks-with-early-failure:
receive-pack: close sideband fd on early pack errors

bisect: Log possibly bad, skipped commits at bisection endTorstein Hegge Mon, 22 Apr 2013 21:02:29 +0000 (23:02 +0200)

bisect: Log possibly bad, skipped commits at bisection end

If the bisection completes with only skipped commits left to as possible
first bad commit, output the list of possible first bad commits to human
readers of the bisection log.

Signed-off-by: Torstein Hegge <hegge@resisty.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-hg: strip extra newlineFelipe Contreras Mon, 22 Apr 2013 21:55:24 +0000 (16:55 -0500)

remote-hg: strip extra newline

There's no functional change since mercurial commit operation strips
that anyway, but that's no excuse for us not to do the right thing. So
let's be explicit about it.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-hg: use marks instead of inlined filesFelipe Contreras Mon, 22 Apr 2013 21:55:23 +0000 (16:55 -0500)

remote-hg: use marks instead of inlined files

So that we can find already exported ones. We can never be 100% sure
that we already exported such data, due to mercurial design, it at least
sometimes we should detect them, and so should give us some performance
boost.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-hg: small performance improvementFelipe Contreras Mon, 22 Apr 2013 21:55:22 +0000 (16:55 -0500)

remote-hg: small performance improvement

Load previous manifest first as Mercurial does; for caching reasons.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-hg: allow refs with spacesFelipe Contreras Mon, 22 Apr 2013 21:55:21 +0000 (16:55 -0500)

remote-hg: allow refs with spaces

Mercurial supports them, Git doesn't.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-hg: don't update bookmarks unnecessarilyFelipe Contreras Mon, 22 Apr 2013 21:55:20 +0000 (16:55 -0500)

remote-hg: don't update bookmarks unnecessarily

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-hg: add support for schemes extensionFelipe Contreras Mon, 22 Apr 2013 21:55:19 +0000 (16:55 -0500)

remote-hg: add support for schemes extension

So that we can use shortened URLs, for example 'bb:://felipec/repo'
(Bitbucket).

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-hg: improve email sanitationFelipe Contreras Mon, 22 Apr 2013 21:55:18 +0000 (16:55 -0500)

remote-hg: improve email sanitation

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-hg: add custom local tag write codeFelipe Contreras Mon, 22 Apr 2013 21:55:17 +0000 (16:55 -0500)

remote-hg: add custom local tag write code

There's no point in calling the tag method for such simple action. Not
that we care much about the hg-git compat mode, it's mostly just for
comparison testing purposes.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-hg: write tags in the appropriate branchFelipe Contreras Mon, 22 Apr 2013 21:55:16 +0000 (16:55 -0500)

remote-hg: write tags in the appropriate branch

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-hg: custom method to write tagsFelipe Contreras Mon, 22 Apr 2013 21:55:15 +0000 (16:55 -0500)

remote-hg: custom method to write tags

The one from mercurial is meant for users, on top of the latest tip.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-hg: add support for tag objectsFelipe Contreras Mon, 22 Apr 2013 21:55:14 +0000 (16:55 -0500)

remote-hg: add support for tag objects

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-hg: add branch_tip() helperFelipe Contreras Mon, 22 Apr 2013 21:55:13 +0000 (16:55 -0500)

remote-hg: add branch_tip() helper

Idea from gitifyhg, the backwards compatibility is how Mercurial used to
do it.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-hg: properly mark branches up-to-dateFelipe Contreras Mon, 22 Apr 2013 21:55:12 +0000 (16:55 -0500)

remote-hg: properly mark branches up-to-date

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-hg: use python urlparseFelipe Contreras Mon, 22 Apr 2013 21:55:11 +0000 (16:55 -0500)

remote-hg: use python urlparse

It's simpler, and we don't need to depend on certain Mercurial versions.

Also, now we don't update the URL if 'file://' is not present.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-hg: safer bookmark pushingFelipe Contreras Mon, 22 Apr 2013 21:55:10 +0000 (16:55 -0500)

remote-hg: safer bookmark pushing

It is possible that the remote has changed the bookmarks, so let's fetch
them before we make any assumptions, just the way mercurial does.

Probably doesn't make a difference, but better be safe than sorry.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-helpers: avoid has_keyDusty Phillips Mon, 22 Apr 2013 21:55:09 +0000 (16:55 -0500)

remote-helpers: avoid has_key

It is deprecated.

[fc: do the same in remote-bzr]

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git add: rephrase -A/--no-all warningJunio C Hamano Mon, 22 Apr 2013 20:36:51 +0000 (13:36 -0700)

git add: rephrase -A/--no-all warning

Now we have a synonym --ignore-removal for --no-all, we can rephrase
the Git 2.0 transition warning message in a more natural way.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

git add: --ignore-removal is a better named --no-allJunio C Hamano Mon, 22 Apr 2013 20:29:20 +0000 (13:29 -0700)

git add: --ignore-removal is a better named --no-all

In the historical context of "git add --all ." that pays attention
to "all kinds of changes" (implying "without ignoring removals"),
the option to countermand it "--no-all" may have made sense, but
because we will be making "--all" the default when a pathspec is
given, it makes more sense to rename the option to a more explicit
"--ignore-removal". The "--all" option naturally becomes its
negation, "--no-ignore-removal".

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Sync with maintJunio C Hamano Mon, 22 Apr 2013 18:33:31 +0000 (11:33 -0700)

Sync with maint

Start preparing for 1.8.2.2Junio C Hamano Mon, 22 Apr 2013 18:32:58 +0000 (11:32 -0700)

Start preparing for 1.8.2.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'ta/glossary' into maintJunio C Hamano Mon, 22 Apr 2013 18:26:58 +0000 (11:26 -0700)

Merge branch 'ta/glossary' into maint

* ta/glossary:
glossary: improve definitions of refspec and pathspec
The name of the hash function is "SHA-1", not "SHA1"
glossary: improve description of SHA-1 related topics
glossary: remove outdated/misleading/irrelevant entries

Merge branch 'jk/doc-http-backend' into maintJunio C Hamano Mon, 22 Apr 2013 18:26:58 +0000 (11:26 -0700)

Merge branch 'jk/doc-http-backend' into maint

Improve documentation to illustrate "push authenticated, fetch
anonymous" configuration for smart HTTP servers.

* jk/doc-http-backend:
doc/http-backend: match query-string in apache half-auth example
doc/http-backend: give some lighttpd config examples
doc/http-backend: clarify "half-auth" repo configuration

Merge branch 'jk/test-trash' into maintJunio C Hamano Mon, 22 Apr 2013 18:26:58 +0000 (11:26 -0700)

Merge branch 'jk/test-trash' into maint

* jk/test-trash:
t/test-lib.sh: drop "$test" variable
t/test-lib.sh: fix TRASH_DIRECTORY handling

Merge branch 'jk/daemon-user-doc' into maintJunio C Hamano Mon, 22 Apr 2013 18:26:58 +0000 (11:26 -0700)

Merge branch 'jk/daemon-user-doc' into maint

* jk/daemon-user-doc:
doc: clarify that "git daemon --user=<user>" option does not export HOME=~user

Merge branch 'jc/detached-head-doc' into maintJunio C Hamano Mon, 22 Apr 2013 18:26:57 +0000 (11:26 -0700)

Merge branch 'jc/detached-head-doc' into maint

* jc/detached-head-doc:
glossary: extend "detached HEAD" description

Conflicts:
Documentation/glossary-content.txt

Merge branch 'jk/show-branch-strbuf' into maintJunio C Hamano Mon, 22 Apr 2013 18:26:57 +0000 (11:26 -0700)

Merge branch 'jk/show-branch-strbuf' into maint

* jk/show-branch-strbuf:
show-branch: use strbuf instead of static buffer

Merge branch 'js/rerere-forget-protect-against-NUL... Junio C Hamano Mon, 22 Apr 2013 18:26:56 +0000 (11:26 -0700)

Merge branch 'js/rerere-forget-protect-against-NUL' into maint

* js/rerere-forget-protect-against-NUL:
rerere forget: do not segfault if not all stages are present
rerere forget: grok files containing NUL

Merge branch 'jc/apply-ws-fix-tab-in-indent' into maintJunio C Hamano Mon, 22 Apr 2013 18:26:56 +0000 (11:26 -0700)

Merge branch 'jc/apply-ws-fix-tab-in-indent' into maint

* jc/apply-ws-fix-tab-in-indent:
test: resurrect q_to_tab
apply --whitespace=fix: avoid running over the postimage buffer

Merge branch 'ap/combine-diff-ignore-whitespace' into... Junio C Hamano Mon, 22 Apr 2013 18:26:56 +0000 (11:26 -0700)

Merge branch 'ap/combine-diff-ignore-whitespace' into maint

* ap/combine-diff-ignore-whitespace:
Allow combined diff to ignore white-spaces

Merge branch 'jk/suppress-clang-warning' into maintJunio C Hamano Mon, 22 Apr 2013 18:26:55 +0000 (11:26 -0700)

Merge branch 'jk/suppress-clang-warning' into maint

* jk/suppress-clang-warning:
fix clang -Wtautological-compare with unsigned enum

Merge branch 'tr/perl-keep-stderr-open' into maintJunio C Hamano Mon, 22 Apr 2013 18:26:55 +0000 (11:26 -0700)

Merge branch 'tr/perl-keep-stderr-open' into maint

* tr/perl-keep-stderr-open:
t9700: do not close STDERR
perl: redirect stderr to /dev/null instead of closing

Merge branch 'lf/bundle-with-tip-wo-message' into maintJunio C Hamano Mon, 22 Apr 2013 18:26:55 +0000 (11:26 -0700)

Merge branch 'lf/bundle-with-tip-wo-message' into maint

* lf/bundle-with-tip-wo-message:
bundle: Accept prerequisites without commit messages

Merge branch 'jk/filter-branch-come-back-to-original... Junio C Hamano Mon, 22 Apr 2013 18:26:55 +0000 (11:26 -0700)

Merge branch 'jk/filter-branch-come-back-to-original' into maint

* jk/filter-branch-come-back-to-original:
filter-branch: return to original dir after filtering

Merge branch 'rr/prompt-revert-head' into maintJunio C Hamano Mon, 22 Apr 2013 18:26:54 +0000 (11:26 -0700)

Merge branch 'rr/prompt-revert-head' into maint

* rr/prompt-revert-head:
bash: teach __git_ps1 about REVERT_HEAD

Update draft release notes to 1.8.3Junio C Hamano Mon, 22 Apr 2013 18:18:43 +0000 (11:18 -0700)

Update draft release notes to 1.8.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'as/clone-reference-with-gitfile'Junio C Hamano Mon, 22 Apr 2013 18:12:40 +0000 (11:12 -0700)

Merge branch 'as/clone-reference-with-gitfile'

"git clone" did not work if a repository pointed at by the
"--reference" option is a gitfile that points at another place.

* as/clone-reference-with-gitfile:
clone: Allow repo using gitfile as a reference
clone: Fix error message for reference repository

Merge branch 'jc/add-2.0-delete-default' (early part)Junio C Hamano Mon, 22 Apr 2013 18:11:45 +0000 (11:11 -0700)

Merge branch 'jc/add-2.0-delete-default' (early part)

Preparatory steps to make "git add <pathspec>" take notice of
removed paths that match <pathspec> by default in Git 2.0.

* 'jc/add-2.0-delete-default' (early part):
git add: rephrase the "removal will cease to be ignored" warning
git add: rework the logic to warn "git add <pathspec>..." default change
git add: start preparing for "git add <pathspec>..." to default to "-A"
builtin/add.c: simplify boolean variables

Merge branch 'nd/checkout-keep-sparse'Junio C Hamano Mon, 22 Apr 2013 18:11:40 +0000 (11:11 -0700)

Merge branch 'nd/checkout-keep-sparse'

Make the initial "sparse" selection of the paths more sticky across
"git checkout".

* nd/checkout-keep-sparse:
checkout: add --ignore-skip-worktree-bits in sparse checkout mode

Merge branch 'jk/chopped-ident'Junio C Hamano Mon, 22 Apr 2013 18:11:36 +0000 (11:11 -0700)

Merge branch 'jk/chopped-ident'

A commit object whose author or committer ident are malformed
crashed some code that trusted that a name, an email and an
timestamp can always be found in it.

* jk/chopped-ident:
blame: handle broken commit headers gracefully
pretty: handle broken commit headers gracefully
cat-file: print tags raw for "cat-file -p"

Merge branch 'th/bisect-final-log'Junio C Hamano Mon, 22 Apr 2013 18:11:08 +0000 (11:11 -0700)

Merge branch 'th/bisect-final-log'

Leave a commit to note what the final outcome was in the bisect log
file.

* th/bisect-final-log:
bisect: Store first bad commit as comment in log file

Merge branch 'rs/archive-zip-raw-compression'Junio C Hamano Mon, 22 Apr 2013 16:49:21 +0000 (09:49 -0700)

Merge branch 'rs/archive-zip-raw-compression'

* rs/archive-zip-raw-compression:
zlib: fix compilation failures with Sun C Compilaer

zlib: fix compilation failures with Sun C CompilaerStefano Lattarini Mon, 22 Apr 2013 16:18:40 +0000 (18:18 +0200)

zlib: fix compilation failures with Sun C Compilaer

Do this by removing a couple of useless return statements. Without this
change, compilation with Sun C Compiler 5.9 (SunOS_i386 Patch 124868-15
2010/08/11) fails with the following message:

"zlib.c", line 192: void function cannot return value
"zlib.c", line 201: void function cannot return value
cc: acomp failed for zlib.c

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin/shortlog.c: make usage string consistent with logRamkumar Ramachandra Mon, 22 Apr 2013 05:30:31 +0000 (11:00 +0530)

builtin/shortlog.c: make usage string consistent with log

"--" is used to separate pathspecs from the rev specs, and not rev
specs from the options, as the shortlog_usage string currently
indicates. In correcting this usage string, make it consistent with
the log_usage string.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin/log.c: make usage string consistent with docRamkumar Ramachandra Mon, 22 Apr 2013 07:20:44 +0000 (12:50 +0530)

builtin/log.c: make usage string consistent with doc

Replace '<since>..<until>' with '<revision range>', in accordance with
the documentation.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-shortlog.txt: make SYNOPSIS match log, update OPTIONSRamkumar Ramachandra Mon, 22 Apr 2013 05:30:30 +0000 (11:00 +0530)

git-shortlog.txt: make SYNOPSIS match log, update OPTIONS

There are broadly two problems with the current SYNOPSIS. First, it
completely omits the detail that paths can be specified. Second, it
attempts to list all the options: this is futile as, in addition to
the options unique to it, it accepts all the options that git-rev-list
accepts. In fixing these problems, make the SYNOPSIS consistent with
that in git-log.txt. Also add the corresponding sections to OPTIONS.
Save adding the options from rev-list-options.txt for a later patch,
as it requires some work to pick out the options that are relevant to
shortlog.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-log.txt: rewrite note on why "--" may be requiredRamkumar Ramachandra Mon, 22 Apr 2013 05:30:29 +0000 (11:00 +0530)

git-log.txt: rewrite note on why "--" may be required

In its current form, the note talks about separating options from
"branch names" and "refnames" in the same sentence. This is entirely
inaccurate, as <revision range> need not be a set of branch names or
ref names. Rewrite it to use the word "revision range", to be
consistent with the SYNOPSIS.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-log.txt: generalize <since>..<until>Ramkumar Ramachandra Mon, 22 Apr 2013 05:30:28 +0000 (11:00 +0530)

git-log.txt: generalize <since>..<until>

'<since>..<until>' is misleading, as there are many other forms that
'git log' can accept as an argument. Replace it with <revision range>,
referring to the section "Specifying Ranges" in revisions.txt, and
rewrite the section appropriately.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-log.txt: order OPTIONS properly; move <since>.... Ramkumar Ramachandra Mon, 22 Apr 2013 05:30:27 +0000 (11:00 +0530)

git-log.txt: order OPTIONS properly; move <since>..<until>

The OPTIONS section lists <since>..<until> as the first item, but this
is inconsistent with the ordering in SYNOPSIS. Move it down until it
appears just before [[--] <path>...].

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revisions.txt: clarify the .. and ... syntaxRamkumar Ramachandra Mon, 22 Apr 2013 05:30:26 +0000 (11:00 +0530)

revisions.txt: clarify the .. and ... syntax

In <rev1>..<rev2> and <rev1>...<rev2>, if either <rev1> or <rev2> is
omitted, it defaults to 'HEAD'. Add this detail to the document.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git add: rephrase the "removal will cease to be ignored... Junio C Hamano Mon, 22 Apr 2013 04:04:35 +0000 (21:04 -0700)

git add: rephrase the "removal will cease to be ignored" warning

Now the logic to decide when to warn has been tightened, we know the
user is in a situation where the current and future behaviours will
be different. Spell out what happens with these two versions and
how to explicitly ask for the behaviour, and suggest "git status" as
a way to inspect the current status.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

glossary: a revision is just a commitJonathan Nieder Sun, 21 Apr 2013 08:17:05 +0000 (01:17 -0700)

glossary: a revision is just a commit

The current definition of 'revision' sounds like it is saying that a
revision is a tree object. In reality it is just a commit.

This should be especially useful for people used to other revision
control systems trying to see how familiar concepts translate into git
terms.

Reported-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'ta/glossary'Junio C Hamano Mon, 22 Apr 2013 01:40:15 +0000 (18:40 -0700)

Merge branch 'ta/glossary'

* ta/glossary:
glossary: improve definitions of refspec and pathspec
The name of the hash function is "SHA-1", not "SHA1"
glossary: improve description of SHA-1 related topics
glossary: remove outdated/misleading/irrelevant entries

Merge branch 'jk/doc-http-backend'Junio C Hamano Mon, 22 Apr 2013 01:40:09 +0000 (18:40 -0700)

Merge branch 'jk/doc-http-backend'

Improve documentation to illustrate "push authenticated, fetch
anonymous" configuration for smart HTTP servers.

* jk/doc-http-backend:
doc/http-backend: match query-string in apache half-auth example
doc/http-backend: give some lighttpd config examples
doc/http-backend: clarify "half-auth" repo configuration

Merge branch 'jx/i18n-branch-error-messages'Junio C Hamano Mon, 22 Apr 2013 01:40:02 +0000 (18:40 -0700)

Merge branch 'jx/i18n-branch-error-messages'

* jx/i18n-branch-error-messages:
i18n: branch: mark strings for translation

Merge branch 'fc/remote-hg'Junio C Hamano Mon, 22 Apr 2013 01:39:58 +0000 (18:39 -0700)

Merge branch 'fc/remote-hg'

Updates remote-hg helper (in contrib/).

* fc/remote-hg: (21 commits)
remote-hg: activate graphlog extension for hg_log()
remote-hg: fix bad file paths
remote-hg: document location of stored hg repository
remote-hg: fix bad state issue
remote-hg: add 'insecure' option
remote-hg: add simple mail test
remote-hg: add basic author tests
remote-hg: show more proper errors
remote-hg: force remote push
remote-hg: push to the appropriate branch
remote-hg: update tags globally
remote-hg: update remote bookmarks
remote-hg: refactor export
remote-hg: split bookmark handling
remote-hg: redirect buggy mercurial output
remote-hg: trivial test cleanups
remote-hg: make sure fake bookmarks are updated
remote-hg: fix for files with spaces
remote-hg: properly report errors on bookmark pushes
remote-hg: add missing config variable in doc
...

Merge branch 'lf/read-blob-data-from-index'Junio C Hamano Mon, 22 Apr 2013 01:39:45 +0000 (18:39 -0700)

Merge branch 'lf/read-blob-data-from-index'

Reduce duplicated code between convert.c and attr.c.

* lf/read-blob-data-from-index:
convert.c: remove duplicate code
read_blob_data_from_index(): optionally return the size of blob data
attr.c: extract read_index_data() as read_blob_data_from_index()

prompt: fix untracked files for zshFelipe Contreras Sun, 21 Apr 2013 22:00:16 +0000 (15:00 -0700)

prompt: fix untracked files for zsh

We signal presense of untracked files by adding a per-cent sign '%'
to the prompt. But because '%' is used as an escape character to
introduce prompt customization in zsh (just like bash prompt uses
'\' to escape '\u', '\h', etc.), we need to say '%%' to get a
literal per-cent.

Helped-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-shortlog.txt: remove (-h|--help) from OPTIONSRamkumar Ramachandra Sun, 21 Apr 2013 08:50:46 +0000 (14:20 +0530)

git-shortlog.txt: remove (-h|--help) from OPTIONS

To be consistent with the documentation of all the other commands,
remove (-h|--help) from the OPTIONS section.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: de.po: translate 54 new messagesRalf Thielow Thu, 11 Apr 2013 16:25:45 +0000 (18:25 +0200)

l10n: de.po: translate 54 new messages

Translate 54 new messages came from git.pot update in
c138af5 (l10n: git.pot: v1.8.3 round 1 (54 new, 15 removed)).

While at there, fix some small issues.

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Thomas Rast <trast@inf.ethz.ch>

receive-pack: close sideband fd on early pack errorsJeff King Fri, 19 Apr 2013 21:24:29 +0000 (17:24 -0400)

receive-pack: close sideband fd on early pack errors

Since commit a22e6f8 (receive-pack: send pack-processing
stderr over sideband, 2012-09-21), receive-pack will start
an async sideband thread to copy the stderr from our
index-pack or unpack-objects child to the client. We hand
the thread's input descriptor to unpack(), which puts it in
the "err" member of the "struct child_process".

After unpack() returns, we use finish_async() to reap the
sideband thread. The thread is only ready to die when it
gets EOF on its pipe, which is connected to the err
descriptor. So we expect all of the write ends of that pipe
to be closed as part of unpack().

Normally, this works fine. After start_command forks, it
closes the parent copy of the descriptor. Then once the
child exits (whether it was successful or not), that closes
the only remaining writer.

However, there is one code-path in unpack() that does not
handle this. Before we decide which of unpack-objects or
index-pack to use, we read the pack header ourselves to see
how many objects it contains. If there is an error here, we
exit without running either sub-command, the pipe descriptor
remains open, and we are in a deadlock, waiting for the
sideband thread to die (which is in turn waiting for us to
close the pipe).

We can fix this by making sure that unpack() always closes
the pipe before returning.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>