gitweb.git
Merge branch 'maint'Junio C Hamano Tue, 11 Dec 2012 23:50:10 +0000 (15:50 -0800)

Merge branch 'maint'

* maint:
git-prompt: Document GIT_PS1_DESCRIBE_STYLE

git-prompt: Document GIT_PS1_DESCRIBE_STYLEAnders Kaseorg Tue, 11 Dec 2012 23:20:24 +0000 (18:20 -0500)

git-prompt: Document GIT_PS1_DESCRIBE_STYLE

GIT_PS1_DESCRIBE_STYLE was introduced in v1.6.3.2~35. Document it in the
header comments.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fetch: ignore wildcarded refspecs that update local... Junio C Hamano Tue, 11 Dec 2012 21:00:52 +0000 (13:00 -0800)

fetch: ignore wildcarded refspecs that update local symbolic refs

In a repository cloned from somewhere else, you typically have a
symbolic ref refs/remotes/origin/HEAD pointing at the 'master'
remote-tracking ref that is next to it. When fetching into such a
repository with "git fetch --mirror" from another repository that
was similarly cloned, the implied wildcard refspec refs/*:refs/*
will end up asking to update refs/remotes/origin/HEAD with the
object at refs/remotes/origin/HEAD at the remote side, while asking
to update refs/remotes/origin/master the same way. Depending on the
order the two updates happen, the latter one would find that the
value of the ref before it is updated has changed from what the code
expects.

When the user asks to update the underlying ref via the symbolic ref
explicitly without using a wildcard refspec, e.g. "git fetch $there
refs/heads/master:refs/remotes/origin/HEAD", we should still let him
do so, but when expanding wildcard refs, it will result in a more
intuitive outcome if we simply ignore local symbolic refs.

As the purpose of the symbolic ref refs/remotes/origin/HEAD is to
follow the ref it points at (e.g. refs/remotes/origin/master), its
value would change when the underlying ref is updated.

Earlier commit da3efdb (receive-pack: detect aliased updates which
can occur with symrefs, 2010-04-19) fixed a similar issue for "git
push".

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

gitweb: Sort projects with undefined ages lastMatthew Daley Tue, 11 Dec 2012 10:56:07 +0000 (23:56 +1300)

gitweb: Sort projects with undefined ages last

Sorting gitweb's project list by age ('Last Change') currently shows
projects with undefined ages at the head of the list. This gives a less
useful result when there are a number of projects that are missing or
otherwise faulty and one is trying to see what projects have been
updated recently.

Fix by sorting these projects with undefined ages at the bottom of the
list when sorting by age.

Signed-off-by: Matthew Daley <mattjd@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

strbuf_add_wrapped*(): Remove unused return valueSteffen Prohaska Tue, 11 Dec 2012 05:59:22 +0000 (06:59 +0100)

strbuf_add_wrapped*(): Remove unused return value

Since shortlog isn't using the return value anymore (see previous
commit), the functions can be changed to void.

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

shortlog: fix wrapping lines of wraplenSteffen Prohaska Tue, 11 Dec 2012 05:59:21 +0000 (06:59 +0100)

shortlog: fix wrapping lines of wraplen

A recent commit [1] fixed a off-by-one wrapping error. As a
side-effect, the conditional in add_wrapped_shortlog_msg() to decide
whether to append a newline needs to be removed. The function
should always append a newline, which was the case before the
off-by-one fix, because strbuf_add_wrapped_text() never returns a
value of wraplen; when it returns wraplen, the string does not end
with a newline, so this caller needs to add one anyway.

[1] 14e1a4e1ff70aff36db3f5d2a8b806efd0134d50 utf8: fix off-by-one
wrapping of text

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

sh-setup: work around "unset IFS" bug in some shellsJunio C Hamano Fri, 7 Dec 2012 22:31:52 +0000 (14:31 -0800)

sh-setup: work around "unset IFS" bug in some shells

With an unset IFS, field splitting is supposed to act as if IFS is
set to the usual SP HT LF, but Marc Branchaud reports that the shell
on FreeBSD 7.2 gets this wrong.

It is easy to set it to the default value manually, and it is also
safer in case somebody tries to save the old value away and restore,
e.g.

$oIFS=$IFS
IFS=something
...
IFS=$oIFS

while forgetting that the original IFS might be unset (which can be
coded but would be more involved).

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

Sync with 1.8.0.2Junio C Hamano Mon, 10 Dec 2012 21:07:12 +0000 (13:07 -0800)

Sync with 1.8.0.2

* maint:
Git 1.8.0.2
Documentation/git-stash.txt: add a missing verb
git(1): remove a defunct link to "list of authors"

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

Git 1.8.0.2 v1.8.0.2Junio C Hamano Mon, 10 Dec 2012 21:05:47 +0000 (13:05 -0800)

Git 1.8.0.2

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

format_commit_message(): simplify calls to logmsg_reenc... Junio C Hamano Mon, 10 Dec 2012 20:50:10 +0000 (12:50 -0800)

format_commit_message(): simplify calls to logmsg_reencode()

All the other callers of logmsg_reencode() pass return value of
get_commit_output_encoding() or get_log_output_encoding(). Teach
the function to optionally take NULL as a synonym to "" aka "no
conversion requested" so that we can simplify the only remaining
calling site.

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

Makefile: whitespace style fixes in macro definitionsStefano Lattarini Sun, 9 Dec 2012 10:36:17 +0000 (11:36 +0100)

Makefile: whitespace style fixes in macro definitions

Consistently use a single space before and after the "=" (or ":=", "+=",
etc.) in assignments to make macros. Granted, this was not a big deal,
but I did find the needless inconsistency quite distracting.

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

mingw_rmdir: do not prompt for retry when non-emptyErik Faye-Lund Mon, 10 Dec 2012 14:42:27 +0000 (15:42 +0100)

mingw_rmdir: do not prompt for retry when non-empty

in ab1a11be ("mingw_rmdir: set errno=ENOTEMPTY when appropriate"),
a check was added to prevent us from retrying to delete a directory
that is both in use and non-empty.

However, this logic was slightly flawed; since we didn't return
immediately, we end up falling out of the retry-loop, but right into
the prompting-loop.

Fix this by setting errno, and guarding the prompting-loop with an
errno-check.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/git-stash.txt: add a missing verbSébastien Loriot Mon, 10 Dec 2012 07:22:34 +0000 (08:22 +0100)

Documentation/git-stash.txt: add a missing verb

Signed-off-by: Sébastien Loriot <sloriot.ml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Which merge_file() function do you mean?Junio C Hamano Thu, 6 Dec 2012 23:08:01 +0000 (15:08 -0800)

Which merge_file() function do you mean?

There are two different static functions and one global function,
all of them called "merge_file()", with different signatures and
purposes. Rename them all to reduce confusion in "git grep" output:

* Rename the static one in merge-index to "merge_one_path(const char
*path)" as that function is about asking an external command to
resolve conflicts in one path.

* Rename the global one in merge-file.c that is only used by
merge-tree to "merge_blobs()", as the function takes three blobs and
returns the merged result only in-core, without doing anything to
the filesystem.

* Rename the one in merge-recursive to "merge_one_file()", just to be
fair.

Also rename merge-file.[ch] to merge-blobs.[ch].

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

git(1): remove a defunct link to "list of authors"Junio C Hamano Fri, 7 Dec 2012 17:54:50 +0000 (09:54 -0800)

git(1): remove a defunct link to "list of authors"

The linked page has not been showing the promised "more complete
list" for more than 6 months by now, and nobody has resurrected
the list there nor elsewhere since then.

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

Git 1.8.1-rc1 v1.8.1-rc1Junio C Hamano Fri, 7 Dec 2012 22:18:55 +0000 (14:18 -0800)

Git 1.8.1-rc1

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

Documentation/diff-config: work around AsciiDoc misfortuneJunio C Hamano Fri, 7 Dec 2012 23:15:59 +0000 (15:15 -0800)

Documentation/diff-config: work around AsciiDoc misfortune

The line that happens to begin with indent followed by "3. " was
interpreted as if it was an enumerated list; just wrap the lines
differently to work it around for now.

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

Merge branch 'maint'Junio C Hamano Fri, 7 Dec 2012 22:16:52 +0000 (14:16 -0800)

Merge branch 'maint'

* maint:
Update draft release notes to 1.8.0.2

Update draft release notes to 1.8.0.2Junio C Hamano Fri, 7 Dec 2012 22:16:38 +0000 (14:16 -0800)

Update draft release notes to 1.8.0.2

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

Merge branch 'jc/doc-push-satellite' into maintJunio C Hamano Fri, 7 Dec 2012 22:11:21 +0000 (14:11 -0800)

Merge branch 'jc/doc-push-satellite' into maint

* jc/doc-push-satellite:
Documentation/git-push.txt: clarify the "push from satellite" workflow

Merge branch 'jc/same-encoding' into maintJunio C Hamano Fri, 7 Dec 2012 22:10:56 +0000 (14:10 -0800)

Merge branch 'jc/same-encoding' into maint

Various codepaths checked if two encoding names are the same using
ad-hoc code and some of them ended up asking iconv() to convert
between "utf8" and "UTF-8". The former is not a valid way to spell
the encoding name, but often people use it by mistake, and we
equated them in some but not all codepaths. Introduce a new helper
function to make these codepaths consistent.

* jc/same-encoding:
reencode_string(): introduce and use same_encoding()

Merge branch 'lt/diff-stat-show-0-lines' into maintJunio C Hamano Fri, 7 Dec 2012 22:10:17 +0000 (14:10 -0800)

Merge branch 'lt/diff-stat-show-0-lines' into maint

"git diff --stat" miscounted the total number of changed lines when
binary files were involved and hidden beyond --stat-count. It also
miscounted the total number of changed files when there were
unmerged paths.

* lt/diff-stat-show-0-lines:
t4049: refocus tests
diff --shortstat: do not count "unmerged" entries
diff --stat: do not count "unmerged" entries
diff --stat: move the "total count" logic to the last loop
diff --stat: use "file" temporary variable to refer to data->files[i]
diff --stat: status of unmodified pair in diff-q is not zero
test: add failing tests for "diff --stat" to t4049
Fix "git diff --stat" for interesting - but empty - file changes

git-remote-helpers.txt: clarify options & ref list... Max Horn Tue, 27 Nov 2012 23:03:26 +0000 (00:03 +0100)

git-remote-helpers.txt: clarify options & ref list attributes

The documentation was misleading in that it gave the impression that
'for-push' could be used as a ref attribute in the output of the
'list' command. That is wrong.

Also, explicitly point out the connection between the commands
'list' and 'options' on the one hand, and the sections
'REF LIST ATTRIBUTES' and 'OPTIONS' on the other hand.

Signed-off-by: Max Horn <max@quendi.de>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-remote-helpers.txt: clarify command <-> capability... Max Horn Tue, 27 Nov 2012 23:03:25 +0000 (00:03 +0100)

git-remote-helpers.txt: clarify command <-> capability correspondences

In particular, document 'list for-push' separately from 'list', as
the former needs only be supported for the push/export
capabilities, and the latter only for fetch/import. Indeed, a
hypothetically 'push-only' helper would only need to support the
former, not the latter.

Signed-off-by: Max Horn <max@quendi.de>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-remote-helpers.txt: rearrange description of capabi... Max Horn Tue, 27 Nov 2012 23:03:24 +0000 (00:03 +0100)

git-remote-helpers.txt: rearrange description of capabilities

This also remove some duplication in the descriptions
(e.g. refspec was explained twice with similar level of detail).

Signed-off-by: Max Horn <max@quendi.de>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-remote-helpers.txt: minor grammar fixMax Horn Tue, 27 Nov 2012 23:03:23 +0000 (00:03 +0100)

git-remote-helpers.txt: minor grammar fix

Signed-off-by: Max Horn <max@quendi.de>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-remote-helpers.txt: document missing capabilitiesMax Horn Tue, 27 Nov 2012 23:03:22 +0000 (00:03 +0100)

git-remote-helpers.txt: document missing capabilities

Specifically, document the 'export' and '(im|ex)port-marks'
capabilities as well as the export command, which were
undocumented (but in active use).

Signed-off-by: Max Horn <max@quendi.de>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-remote-helpers.txt: document invocation before... Max Horn Tue, 27 Nov 2012 23:03:21 +0000 (00:03 +0100)

git-remote-helpers.txt: document invocation before input format

In the distant past, the order things were documented was
'Invocation', 'Commands', 'Capabilities', ...

Then it was decided that before giving a list of Commands, there
should be an overall description of the 'Input format', which was
a wise decision. However, this description was put as the very
first thing, with the rationale that any implementor would want
to know that first.

However, it seems an implementor would actually first need to
know how the remote helper will be invoked, so moving
'Invocation' to the front again seems logical. Moreover, we now
don't switch from discussing the input format to the invocation
style and then back to input related stuff.

Signed-off-by: Max Horn <max@quendi.de>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'master' of git://github.com/git-l10n... Junio C Hamano Fri, 7 Dec 2012 18:32:22 +0000 (10:32 -0800)

Merge branch 'master' of git://github.com/git-l10n/git-po

* 'master' of git://github.com/git-l10n/git-po:
l10n: de.po: translate 22 new messages
l10n: de.po: translate 825 new messages
l10n: Update Swedish translation (1979t0f0u)
l10n: vi.po: update to git-v1.8.0.1-347-gf94c3
l10n: Update git.pot (5 new, 1 removed messages)

Merge branch 'rr/t4041-cleanup'Junio C Hamano Fri, 7 Dec 2012 18:31:19 +0000 (10:31 -0800)

Merge branch 'rr/t4041-cleanup'

* rr/t4041-cleanup:
t4041 (diff-submodule-option): modernize style
t4041 (diff-submodule-option): rewrite add_file() routine
t4041 (diff-submodule-option): parse digests sensibly
t4041 (diff-submodule-option): don't hardcode SHA-1 in expected outputs

Merge branch git://github.com/ralfth/git-po-deJiang Xin Fri, 7 Dec 2012 09:28:58 +0000 (17:28 +0800)

Merge branch git://github.com/ralfth/git-po-de

* 'rt/de-l10n-updates-for-1.8.1' of git://github.com/ralfth/git-po-de:
l10n: de.po: translate 22 new messages
l10n: de.po: translate 825 new messages

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>

l10n: de.po: translate 22 new messagesRalf Thielow Sun, 2 Dec 2012 15:57:38 +0000 (16:57 +0100)

l10n: de.po: translate 22 new messages

Translate 22 new messages came from git.pot
updates in 9306b5b (l10n: Update git.pot (3 new,
6 removed messages)), fe52cd6 (l10n: Update git.pot
(14 new, 3 removed messages)) and f9472e3
(l10n: Update git.pot (5 new, 1 removed messages)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Reviewed-by: Michael J Gruber <git@drmicha.warpmail.net>

l10n: de.po: translate 825 new messagesRalf Thielow Sun, 16 Sep 2012 11:15:34 +0000 (13:15 +0200)

l10n: de.po: translate 825 new messages

Translate 825 new messages came from git.pot update in
cc76011 ("l10n: Update git.pot (825 new, 24 removed messages)").

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Reviewed-by: Thomas Rast <trast@student.ethz.ch>
Helped-by: Michael J Gruber <git@drmicha.warpmail.net>

git-svn: Note about tags.Sebastian Leske Fri, 23 Nov 2012 07:29:38 +0000 (08:29 +0100)

git-svn: Note about tags.

Document that 'git svn' will import SVN tags as branches.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: Expand documentation for --follow-parentSebastian Leske Fri, 30 Nov 2012 07:16:30 +0000 (08:16 +0100)

git-svn: Expand documentation for --follow-parent

Describe what the option --follow-parent does, and what happens if it is
set or unset.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: Recommend use of structure options.Sebastian Leske Fri, 30 Nov 2012 07:16:30 +0000 (08:16 +0100)

git-svn: Recommend use of structure options.

Document that when using git svn, one should usually either use the
directory structure options to import branches as branches, or only
import one subdirectory. The default behaviour of cloning all branches
and tags as subdirectories in the working copy is usually not what the
user wants.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: Document branches with at-sign(@).Sebastian Leske Fri, 30 Nov 2012 07:16:30 +0000 (08:16 +0100)

git-svn: Document branches with at-sign(@).

git svn sometimes creates branches with an at-sign in the name
(branchname@revision). These branches confuse many users and it is a FAQ
why they are created. Document when git svn creates them.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'mm/status-push-pull-advise'Junio C Hamano Tue, 4 Dec 2012 21:34:10 +0000 (13:34 -0800)

Merge branch 'mm/status-push-pull-advise'

* mm/status-push-pull-advise:
document that statusHints affects git checkout

mingw: get rid of getpass implementationErik Faye-Lund Tue, 4 Dec 2012 08:10:42 +0000 (09:10 +0100)

mingw: get rid of getpass implementation

There's no remaining call-sites, and as pointed out in the
previous commit message, it's not quite ideal. So let's just
lose it.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

mingw: reuse tty-version of git_terminal_promptErik Faye-Lund Tue, 4 Dec 2012 08:10:41 +0000 (09:10 +0100)

mingw: reuse tty-version of git_terminal_prompt

The getpass-implementation we use on Windows isn't at all ideal;
it works in raw-mode (as opposed to cooked mode), and as a result
does not deal correcly with deletion, arrow-keys etc.

Instead, use cooked mode to read a line at the time, allowing the
C run-time to process the input properly.

Since we set files to be opened in binary-mode by default on
Windows, introduce a FORCE_TEXT macro that expands to the "t"
modifier that forces the terminal to be opened in text-mode so we
do not have to deal with CRLF issues.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

compat/terminal: separate input and output handlesErik Faye-Lund Tue, 4 Dec 2012 08:10:40 +0000 (09:10 +0100)

compat/terminal: separate input and output handles

On Windows, the terminal cannot be opened in read-write mode, so
we need distinct pairs for reading and writing. Since this works
fine on other platforms as well, always open them in pairs.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

compat/terminal: factor out echo-disablingErik Faye-Lund Tue, 4 Dec 2012 08:10:39 +0000 (09:10 +0100)

compat/terminal: factor out echo-disabling

By moving the echo-disabling code to a separate function, we can
implement OS-specific versions of it for non-POSIX platforms.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

mingw: make fgetc raise SIGINT if apropriateErik Faye-Lund Tue, 4 Dec 2012 08:10:38 +0000 (09:10 +0100)

mingw: make fgetc raise SIGINT if apropriate

Set a control-handler to prevent the process from terminating, and
simulate SIGINT so it can be handled by a signal-handler as usual.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

mingw: correct exit-code for SIGALRM's SIG_DFLErik Faye-Lund Tue, 4 Dec 2012 08:10:37 +0000 (09:10 +0100)

mingw: correct exit-code for SIGALRM's SIG_DFL

Make sure SIG_DFL for SIGALRM exits with 128 + SIGALRM so other
processes can diagnose why it exits.

While we're at it, make sure we only write to stderr if it's a
terminal, and change the output to match that of Linux.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

document that statusHints affects git checkoutMatthieu Moy Tue, 4 Dec 2012 09:15:03 +0000 (10:15 +0100)

document that statusHints affects git checkout

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fast-export: make sure updated refs get updatedFelipe Contreras Wed, 28 Nov 2012 22:24:00 +0000 (23:24 +0100)

fast-export: make sure updated refs get updated

When an object has already been exported (and thus is in the marks) it's
flagged as SHOWN, so it will not be exported again, even if in a later
time it's exported through a different ref.

We don't need the object to be exported again, but we want the ref
updated, which doesn't happen.

Since we can't know if a ref was exported or not, let's just assume that
if the commit was marked (flags & SHOWN), the user still wants the ref
updated.

IOW: If it's specified in the command line, it will get updated,
regardless of whether or not the object was marked.

So:

% git branch test master
% git fast-export $mark_flags master
% git fast-export $mark_flags test

Would export 'test' properly.

Additionally, this fixes issues with remote helpers; now they can push
refs whose objects have already been exported, and a few other issues as
well. Update the tests accordingly.

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

fast-export: don't handle uninteresting refsFelipe Contreras Wed, 28 Nov 2012 22:23:59 +0000 (23:23 +0100)

fast-export: don't handle uninteresting refs

They have been marked as UNINTERESTING for a reason, lets respect
that. Currently the first ref is handled properly, but not the
rest. Assuming that all the refs point at the same commit in the
following example:

% git fast-export master ^uninteresting ^foo ^bar
reset refs/heads/bar
from :0

reset refs/heads/foo
from :0

reset refs/heads/uninteresting
from :0

% git fast-export ^uninteresting ^foo ^bar master
reset refs/heads/master
from :0

reset refs/heads/bar
from :0

reset refs/heads/foo
from :0

Clearly this is wrong; the negative refs should be ignored.

After this patch:

% git fast-export ^uninteresting ^foo ^bar master
# nothing
% git fast-export master ^uninteresting ^foo ^bar
# nothing

And even more, it would only happen if the ref is pointing to exactly
the same commit, but not otherwise:

% git fast-export ^next next
reset refs/heads/next
from :0

% git fast-export ^next next^{commit}
# nothing
% git fast-export ^next next~0
# nothing
% git fast-export ^next next~1
# nothing
% git fast-export ^next next~2
# nothing

The reason this happens is that before traversing the commits,
fast-export checks if any of the refs point to the same object, and any
duplicated ref gets added to a list in order to issue 'reset' commands
after the traversing. Unfortunately, it's not even checking if the
commit is flagged as UNINTERESTING. The fix of course, is to check it.

However, in order to do it properly we need to get the UNINTERESTING
flag from the command line, not from the commit object, because
"^foo bar" will mark the commit 'bar' uninteresting if foo and bar
points at the same commit. rev_cmdline_info, which was introduced
exactly to handle this situation, contains all the information we
need for get_tags_and_duplicates(), plus the ref flag. This way the
rest of the positive refs will remain untouched; it's only the
negative ones that change in behavior.

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

Git 1.8.1-rc0 v1.8.1-rc0Junio C Hamano Mon, 3 Dec 2012 17:49:51 +0000 (09:49 -0800)

Git 1.8.1-rc0

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

Merge branch 'mm/status-push-pull-advise'Junio C Hamano Mon, 3 Dec 2012 17:27:29 +0000 (09:27 -0800)

Merge branch 'mm/status-push-pull-advise'

Finishing touch to allow the new advice message squelched
with an advice.* configuration variable.

* mm/status-push-pull-advise:
status: respect advice.statusHints for ahead/behind advice

status: respect advice.statusHints for ahead/behind... Jeff King Mon, 3 Dec 2012 06:16:57 +0000 (01:16 -0500)

status: respect advice.statusHints for ahead/behind advice

If the user has unset advice.statusHints, we already
suppress the "use git reset to..." hints in each stanza. The
new "use git push to publish..." hint is the same type of
hint. Let's respect statusHints for it, rather than making
the user set yet another advice flag.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

push: allow already-exists advice to be disabledChris Rorvick Mon, 3 Dec 2012 03:27:51 +0000 (21:27 -0600)

push: allow already-exists advice to be disabled

Add 'advice.pushAlreadyExists' option to disable the advice shown when
an update is rejected for a reference that is not allowed to update at
all (verses those that are allowed to fast-forward.)

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

push: rename config variable for more general useChris Rorvick Mon, 3 Dec 2012 03:27:50 +0000 (21:27 -0600)

push: rename config variable for more general use

The 'pushNonFastForward' advice config can be used to squelch several
instances of push-related advice. Rename it to 'pushUpdateRejected' to
cover other reject scenarios that are unrelated to fast-forwarding.
Retain the old name for compatibility.

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

push: cleanup push rules commentChris Rorvick Fri, 30 Nov 2012 01:41:40 +0000 (19:41 -0600)

push: cleanup push rules comment

Rewrite to remove inter-dependencies amongst the rules.

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

launch_editor: propagate signals from editor to gitJeff King Fri, 30 Nov 2012 22:41:50 +0000 (17:41 -0500)

launch_editor: propagate signals from editor to git

We block SIGINT and SIGQUIT while the editor runs so that
git is not killed accidentally by a stray "^C" meant for the
editor or its subprocesses. This works because most editors
ignore SIGINT.

However, some editor wrappers, like emacsclient, expect to
die due to ^C. We detect the signal death in the editor and
properly exit, but not before writing a useless error
message to stderr. Instead, let's notice when the editor was
killed by a terminal signal and just raise the signal on
ourselves. This skips the message and looks to our parent
like we received SIGINT ourselves.

The end effect is that if the user's editor ignores SIGINT,
we will, too. And if it does not, then we will behave as if
we did not ignore it. That should make all users happy.

Note that in the off chance that another part of git has
ignored SIGINT while calling launch_editor, we will still
properly detect and propagate the failed return code from
the editor (i.e., the worst case is that we generate the
useless error, not fail to notice the editor's death).

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

run-command: do not warn about child death from terminalJeff King Fri, 30 Nov 2012 22:41:38 +0000 (17:41 -0500)

run-command: do not warn about child death from terminal

SIGINT and SIGQUIT are not generally interesting signals to
the user, since they are typically caused by them hitting "^C"
or otherwise telling their terminal to send the signal.

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

launch_editor: ignore terminal signals while editor... Paul Fox Fri, 30 Nov 2012 22:41:26 +0000 (17:41 -0500)

launch_editor: ignore terminal signals while editor has control

The user's editor likely catches SIGINT (ctrl-C). but if
the user spawns a command from the editor and uses ctrl-C to
kill that command, the SIGINT will likely also kill git
itself (depending on the editor, this can leave the terminal
in an unusable state).

Let's ignore it while the editor is running, and do the same
for SIGQUIT, which many editors also ignore. This matches
the behavior if we were to use system(3) instead of
run-command.

Signed-off-by: Paul Fox <pgf@foxharp.boston.ma.us>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

launch_editor: refactor to use start/finish_commandJeff King Fri, 30 Nov 2012 22:41:04 +0000 (17:41 -0500)

launch_editor: refactor to use start/finish_command

The launch_editor function uses the convenient run_command_*
interface. Let's use the more flexible start_command and
finish_command functions, which will let us manipulate the
parent state while we're waiting for the child to finish.

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

run-command: drop silent_exec_failure arg from wait_or_... Jeff King Fri, 30 Nov 2012 22:40:50 +0000 (17:40 -0500)

run-command: drop silent_exec_failure arg from wait_or_whine

We do not actually use this parameter; instead we complain
from the child itself (for fork/exec) or from start_command
(if we are using spawn on Windows).

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

t4041 (diff-submodule-option): modernize styleRamkumar Ramachandra Fri, 30 Nov 2012 11:37:36 +0000 (17:07 +0530)

t4041 (diff-submodule-option): modernize style

- Enclose tests in single quotes as opposed to double quotes. This is
the prevalent style in other tests.
- Remove the unused variable $head4_full.
- Indent the expected output so that it lines up with the rest of the
test text.

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

t4041 (diff-submodule-option): rewrite add_file() routineRamkumar Ramachandra Fri, 30 Nov 2012 11:37:35 +0000 (17:07 +0530)

t4041 (diff-submodule-option): rewrite add_file() routine

Instead of "cd there and then come back", use the "cd there in a
subshell" pattern. Also fix '&&' chaining in one place.

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

t4041 (diff-submodule-option): parse digests sensiblyRamkumar Ramachandra Fri, 30 Nov 2012 11:37:34 +0000 (17:07 +0530)

t4041 (diff-submodule-option): parse digests sensibly

`git rev-list --max-count=1 HEAD` is a roundabout way of saying `git
rev-parse --verify HEAD`; replace a bunch of instances of the former
with the latter. Also, don't unnecessarily `cut -c1-7` the rev-parse
output when the `--short` option is available.

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

push: clarify rejection of update to non-commit-ishChris Rorvick Fri, 30 Nov 2012 01:41:39 +0000 (19:41 -0600)

push: clarify rejection of update to non-commit-ish

Pushes must already (by default) update to a commit-ish due to the fast-
forward check in set_ref_status_for_push(). But rejecting for not being
a fast-forward suggests the situation can be resolved with a merge.
Flag these updates (i.e., to a blob or a tree) as not forwardable so the
user is presented with more appropriate advice.

While updating *from* a tag object is potentially destructive, updating
*to* a tag is not. Additionally, a push to the refs/tags/ hierarchy is
already excluded from fast-forwarding, and refs/heads/ is protected from
anything but commit objects by a check in write_ref_sha1(). Thus
someone fast-forwarding to a tag is probably not doing so by accident.
Since updating to a tag is benign and unlikely to cause confusion, allow
it in case someone finds the behavior useful.

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

push: require force for annotated tagsChris Rorvick Fri, 30 Nov 2012 01:41:38 +0000 (19:41 -0600)

push: require force for annotated tags

Do not allow fast-forwarding of references that point to a tag object.
Updating from a tag is potentially destructive since it would likely
leave the tag dangling. Disallowing updates to a tag also makes sense
semantically and is consistent with the behavior of lightweight tags.

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

push: require force for refs under refs/tags/Chris Rorvick Fri, 30 Nov 2012 01:41:37 +0000 (19:41 -0600)

push: require force for refs under refs/tags/

References are allowed to update from one commit-ish to another if the
former is an ancestor of the latter. This behavior is oriented to
branches which are expected to move with commits. Tag references are
expected to be static in a repository, though, thus an update to
something under refs/tags/ should be rejected unless the update is
forced.

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

push: flag updates that require forceChris Rorvick Fri, 30 Nov 2012 01:41:36 +0000 (19:41 -0600)

push: flag updates that require force

Add a flag for indicating an update to a reference requires force.
Currently the `nonfastforward` flag is used for this when generating the
status message. A separate flag insulates dependent logic from the
details of set_ref_status_for_push().

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

push: keep track of "update" state separatelyChris Rorvick Fri, 30 Nov 2012 01:41:35 +0000 (19:41 -0600)

push: keep track of "update" state separately

If the reference exists on the remote and it is not being removed, then
mark as an update. This is in preparation for handling tags (lightweight
and annotated) exceptionally.

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

push: add advice for rejected tag referenceChris Rorvick Fri, 30 Nov 2012 01:41:34 +0000 (19:41 -0600)

push: add advice for rejected tag reference

Advising the user to fetch and merge only makes sense if the rejected
reference is a branch. If none of the rejections are for branches, just
tell the user the reference already exists.

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

push: return reject reasons as a bitsetChris Rorvick Fri, 30 Nov 2012 01:41:33 +0000 (19:41 -0600)

push: return reject reasons as a bitset

Pass all rejection reasons back from transport_push(). The logic is
simpler and more flexible with regard to providing useful feedback.

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

wrap_in_html(): process message in bulk rather than... Michael Haggerty Sun, 25 Nov 2012 11:08:41 +0000 (12:08 +0100)

wrap_in_html(): process message in bulk rather than line-by-line

Now that we can xml-quote an arbitrary string in O(N), there is no
reason to process the message line by line. This change saves lots of
memory allocations and copying.

The old code would have created invalid output when there was no
body, emitting a closing </pre> without a blank line nor an opening
<pre> after the header. The new code simply returns in this
situation without doing harm (even though either would not make much
sense in the context of imap-send that is meant to send out patches).

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: Update Swedish translation (1979t0f0u)Peter Krefting Fri, 30 Nov 2012 09:51:14 +0000 (10:51 +0100)

l10n: Update Swedish translation (1979t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>

l10n: vi.po: update to git-v1.8.0.1-347-gf94c3Tran Ngoc Quan Fri, 30 Nov 2012 06:43:11 +0000 (13:43 +0700)

l10n: vi.po: update to git-v1.8.0.1-347-gf94c3

* updated all new messages (1979t0f0u)

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>

l10n: Update git.pot (5 new, 1 removed messages)Jiang Xin Fri, 30 Nov 2012 04:41:47 +0000 (12:41 +0800)

l10n: Update git.pot (5 new, 1 removed messages)

L10n for git 1.8.1 round 2: Generate po/git.pot from v1.8.0.1-347-gf94c3.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>

Update draft release notes to 1.8.1Junio C Hamano Thu, 29 Nov 2012 21:57:09 +0000 (13:57 -0800)

Update draft release notes to 1.8.1

Merge branch 'pw/p4-various-fixes'Junio C Hamano Thu, 29 Nov 2012 21:44:28 +0000 (13:44 -0800)

Merge branch 'pw/p4-various-fixes'

* pw/p4-various-fixes:
git p4: remove unneeded cmd initialization
git p4: fix labelDetails typo in exception
git p4 test: display unresolvable host error
git p4: catch p4 errors when streaming file contents
git p4: handle servers without move support
git p4: catch p4 describe errors

wrap_in_html(): use strbuf_addstr_xml_quoted()Michael Haggerty Sun, 25 Nov 2012 11:08:40 +0000 (12:08 +0100)

wrap_in_html(): use strbuf_addstr_xml_quoted()

Use the new function to quote characters as they are being added to
buf, rather than quoting them in *p and then copying them into buf.
This increases code sharing, and changes the algorithm from O(N^2) to
O(N) in the number of characters in a line.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

imap-send: change msg_data from storing (ptr, len)... Michael Haggerty Sun, 25 Nov 2012 11:08:39 +0000 (12:08 +0100)

imap-send: change msg_data from storing (ptr, len) to storing strbuf

struct msg_data stored (ptr, len) of the data to be included in a
message, kept the character data NUL-terminated, etc., much like a
strbuf would do. So change it to use a struct strbuf. This makes
the code clearer and reduces copying a little bit.

A side effect of this change is that the memory for each message is
freed after it is used rather than leaked, though that detail is
unimportant given that imap-send is a top-level command.

By the way, there is a bunch of infrastructure in this file for
dealing with IMAP flags, although there is nothing in the code that
actually allows any flags to be set. If there is no plan to add
support for flags in the future, a bunch of code could be ripped out
and "struct msg_data" could be completely replaced with strbuf, but
that would be a separate topic.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'lt/diff-stat-show-0-lines'Junio C Hamano Thu, 29 Nov 2012 20:53:54 +0000 (12:53 -0800)

Merge branch 'lt/diff-stat-show-0-lines'

"git diff --stat" miscounted the total number of changed lines when
binary files were involved and hidden beyond --stat-count. It also
miscounted the total number of changed files when there were
unmerged paths.

* lt/diff-stat-show-0-lines:
t4049: refocus tests
diff --shortstat: do not count "unmerged" entries
diff --stat: do not count "unmerged" entries
diff --stat: move the "total count" logic to the last loop
diff --stat: use "file" temporary variable to refer to data->files[i]
diff --stat: status of unmodified pair in diff-q is not zero
test: add failing tests for "diff --stat" to t4049

Merge branch 'fc/remote-hg'Junio C Hamano Thu, 29 Nov 2012 20:53:50 +0000 (12:53 -0800)

Merge branch 'fc/remote-hg'

New remote helper for hg.

* fc/remote-hg: (22 commits)
remote-hg: fix for older versions of python
remote-hg: fix for files with spaces
remote-hg: avoid bad refs
remote-hg: try the 'tip' if no checkout present
remote-hg: fix compatibility with older versions of hg
remote-hg: add missing config for basic tests
remote-hg: the author email can be null
remote-hg: add option to not track branches
remote-hg: add extra author test
remote-hg: add tests to compare with hg-git
remote-hg: add bidirectional tests
test-lib: avoid full path to store test results
remote-hg: add basic tests
remote-hg: fake bookmark when there's none
remote-hg: add compat for hg-git author fixes
remote-hg: add support for hg-git compat mode
remote-hg: match hg merge behavior
remote-hg: make sure the encoding is correct
remote-hg: add support to push URLs
remote-hg: add support for remote pushing
...

Merge branch 'mk/complete-tcsh'Junio C Hamano Thu, 29 Nov 2012 20:53:38 +0000 (12:53 -0800)

Merge branch 'mk/complete-tcsh'

Finishing touches for tcsh completion.

* mk/complete-tcsh:
Support for git aliasing for tcsh completion

Merge branch 'jc/doc-push-satellite'Junio C Hamano Thu, 29 Nov 2012 20:52:54 +0000 (12:52 -0800)

Merge branch 'jc/doc-push-satellite'

* jc/doc-push-satellite:
Documentation/git-push.txt: clarify the "push from satellite" workflow

Merge branch 'km/send-email-remove-cruft-in-address'Junio C Hamano Thu, 29 Nov 2012 20:52:49 +0000 (12:52 -0800)

Merge branch 'km/send-email-remove-cruft-in-address'

* km/send-email-remove-cruft-in-address:
git-send-email: allow edit invalid email address
git-send-email: ask what to do with an invalid email address
git-send-email: remove invalid addresses earlier
git-send-email: fix fallback code in extract_valid_address()
git-send-email: remove garbage after email address

Merge branch 'jk/send-email-sender-prompt'Junio C Hamano Thu, 29 Nov 2012 20:52:45 +0000 (12:52 -0800)

Merge branch 'jk/send-email-sender-prompt'

General clean-ups in various areas, originally written to support a
patch that later turned out to be unneeded.

* jk/send-email-sender-prompt:
t9001: check send-email behavior with implicit sender
t: add tests for "git var"
ident: keep separate "explicit" flags for author and committer
ident: make user_ident_explicitly_given static
t7502: factor out autoident prerequisite
test-lib: allow negation of prerequisites

Merge branch 'fc/send-email-no-sender-prompt'Junio C Hamano Thu, 29 Nov 2012 20:52:42 +0000 (12:52 -0800)

Merge branch 'fc/send-email-no-sender-prompt'

* fc/send-email-no-sender-prompt:
send-email: avoid questions when user has an ident

Merge branch 'er/doc-add-new-commands'Junio C Hamano Thu, 29 Nov 2012 20:52:36 +0000 (12:52 -0800)

Merge branch 'er/doc-add-new-commands'

* er/doc-add-new-commands:
Documentation: how to add a new command

Merge branch 'jl/submodule-rm'Junio C Hamano Thu, 29 Nov 2012 20:52:30 +0000 (12:52 -0800)

Merge branch 'jl/submodule-rm'

Finishing touches to "git rm $submodule" that removes the working
tree of a submodule.

* jl/submodule-rm:
Teach rm to remove submodules when given with a trailing '/'

Merge branch 'pp/gitweb-config-underscore'Junio C Hamano Thu, 29 Nov 2012 20:52:16 +0000 (12:52 -0800)

Merge branch 'pp/gitweb-config-underscore'

The key "gitweb.remote_heads" is not legal git config; this maps it to
"gitweb.remoteheads".

* pp/gitweb-config-underscore:
gitweb: make remote_heads config setting work

Merge branch 'fc/completion-test-simplification'Junio C Hamano Thu, 29 Nov 2012 20:52:10 +0000 (12:52 -0800)

Merge branch 'fc/completion-test-simplification'

Clean up completion tests. Use of conslidated helper may make
instrumenting one particular test during debugging of the test
itself, but I think that issue should be addressed in some other
way (e.g. making sure individual tests in 9902 can be skipped).

* fc/completion-test-simplification:
completion: simplify __gitcomp() test helper
completion: refactor __gitcomp related tests
completion: consolidate test_completion*() tests
completion: simplify tests using test_completion_long()
completion: standardize final space marker in tests
completion: add comment for test_completion()

Merge branch 'maint'Junio C Hamano Thu, 29 Nov 2012 20:21:17 +0000 (12:21 -0800)

Merge branch 'maint'

* maint:
git-fast-import.txt: improve documentation for quoted paths
git-remote-mediawiki: escape ", \, and LF in file names

fast-export: fix comparison in testsFelipe Contreras Wed, 28 Nov 2012 22:11:09 +0000 (23:11 +0100)

fast-export: fix comparison in tests

First the expected, then the actual, otherwise the diff would be the
opposite of what we want.

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

fast-export: trivial cleanupFelipe Contreras Wed, 28 Nov 2012 22:11:08 +0000 (23:11 +0100)

fast-export: trivial cleanup

Setting 'commit' to 'commit' is a no-op. It might have been there to
avoid a compiler warning, but if so, it was the compiler to blame, and
it's certainly not there any more.

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

remote-testgit: implement the "done" feature manuallyFelipe Contreras Wed, 28 Nov 2012 22:11:07 +0000 (23:11 +0100)

remote-testgit: implement the "done" feature manually

People who want to write their own remote-helper will find it more
useful to see clearly how they are supposed to advertise and implement
the "done" feature themselves.

Right now we are relying on fast-export to do that by using the
--use-done-feature argument. However, people writing their own
remote-helper would probably not have such an option, as they would
probably be writing the fast-export functionality themselves.

It should now be clearer to them.

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

remote-testgit: report success after an importFelipe Contreras Wed, 28 Nov 2012 22:11:06 +0000 (23:11 +0100)

remote-testgit: report success after an import

Doesn't make a difference for the tests, but it does for the ones
seeking reference.

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

remote-testgit: exercise more featuresFelipe Contreras Wed, 28 Nov 2012 22:11:05 +0000 (23:11 +0100)

remote-testgit: exercise more features

Unfortunately a lot of these tests fail.

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

remote-testgit: cleanup testsFelipe Contreras Wed, 28 Nov 2012 22:11:04 +0000 (23:11 +0100)

remote-testgit: cleanup tests

We don't need a bare 'server' and an intermediary 'public'. The repos
can talk to each other directly; that's what we want to exercise.

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

remote-testgit: remove irrelevant testFelipe Contreras Wed, 28 Nov 2012 22:11:03 +0000 (23:11 +0100)

remote-testgit: remove irrelevant test

This was only to cover a bug that was fixed in remote-testpy not to
resurface.

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

remote-testgit: remove non-local functionalityFelipe Contreras Wed, 28 Nov 2012 22:11:02 +0000 (23:11 +0100)

remote-testgit: remove non-local functionality

This only makes sense for the python remote helpers framework. The tests
don't exercise any feature of transport helper. Remove them.

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

Add new simplified git-remote-testgitFelipe Contreras Wed, 28 Nov 2012 22:11:01 +0000 (23:11 +0100)

Add new simplified git-remote-testgit

Exercising the python remote helper framework is for another tool and
another test. This is about testing the remote-helper interface.

It's way simpler, it exercises the same features of remote helpers, it's
easy to read and understand, and it doesn't depend on python.

For now let's just copy the old remote-helpers test script, although
some of those tests don't make sense. In addition, this script would be
able to test other features not currently being tested.

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

Rename git-remote-testgit to git-remote-testpyFelipe Contreras Wed, 28 Nov 2012 22:11:00 +0000 (23:11 +0100)

Rename git-remote-testgit to git-remote-testpy

This script is not really exercising the remote-helper functionality,
but more the python framework for remote helpers that live in
git_remote_helpers.

It's also not a good example of how to write remote-helpers, unless you
are planning to use python, and even then you might not want to use this
framework.

So let's use a more appropriate name: git-remote-testpy.

A patch that replaces git-remote-testgit with a simpler version is on
the way.

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

git-fast-import.txt: improve documentation for quoted... Matthieu Moy Thu, 29 Nov 2012 19:11:32 +0000 (20:11 +0100)

git-fast-import.txt: improve documentation for quoted paths

The documentation mentioned only newlines and double quotes as
characters needing escaping, but the backslash also needs it. Also, the
documentation was not clearly saying that double quotes around the file
name were required (double quotes in the examples could be interpreted as
part of the sentence, not part of the actual string).

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-remote-mediawiki: escape ", \, and LF in file namesMatthieu Moy Thu, 29 Nov 2012 17:00:55 +0000 (18:00 +0100)

git-remote-mediawiki: escape ", \, and LF in file names

A mediawiki page can contain, and even start with a " character, we have
to escape it when generating the fast-export stream, as well as \
character. While we're there, also escape newlines, but I don't think we
can get them from MediaWiki pages.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>