mirror of
https://github.com/git/git.git
synced 2026-03-28 17:40:11 +01:00
Merge branch 'master' into next
* master: tests: Ignore the Test::Harness .prove file Documentation/git-push: Explain status output in more detail Document receive.denyDeleteCurrent Cast execl*() NULL sentinels to (char *) git-read-tree.txt: acknowledge the directory matching bug in sparse checkout INSTALL: configure /etc/xml/catalog to build docs on Cygwin t3700-add: fix dependence on stdout and stderr buffering git-rebase--interactive.sh: use printf instead of echo to print commit message Add a google-chrome option for web--browse request-pull.txt: Document -p option Check size of path buffer before writing into it git-instaweb: Don't assume Apache executable is named apache2 git-instaweb: Fix Apache environment variable passing git-instaweb: Fix custom apache log placement
This commit is contained in:
@@ -1558,6 +1558,10 @@ receive.denyDeletes::
|
||||
If set to true, git-receive-pack will deny a ref update that deletes
|
||||
the ref. Use this to prevent such a ref deletion via a push.
|
||||
|
||||
receive.denyDeleteCurrent::
|
||||
If set to true, git-receive-pack will deny a ref update that
|
||||
deletes the currently checked out branch of a non-bare repository.
|
||||
|
||||
receive.denyCurrentBranch::
|
||||
If set to true or "refuse", git-receive-pack will deny a ref update
|
||||
to the currently checked out branch of a non-bare repository.
|
||||
|
||||
@@ -200,16 +200,29 @@ summary::
|
||||
For a successfully pushed ref, the summary shows the old and new
|
||||
values of the ref in a form suitable for using as an argument to
|
||||
`git log` (this is `<old>..<new>` in most cases, and
|
||||
`<old>...<new>` for forced non-fast-forward updates). For a
|
||||
failed update, more details are given for the failure.
|
||||
The string `rejected` indicates that git did not try to send the
|
||||
ref at all (typically because it is not a fast-forward). The
|
||||
string `remote rejected` indicates that the remote end refused
|
||||
the update; this rejection is typically caused by a hook on the
|
||||
remote side. The string `remote failure` indicates that the
|
||||
remote end did not report the successful update of the ref
|
||||
(perhaps because of a temporary error on the remote side, a
|
||||
break in the network connection, or other transient error).
|
||||
`<old>...<new>` for forced non-fast-forward updates).
|
||||
+
|
||||
For a failed update, more details are given:
|
||||
+
|
||||
--
|
||||
rejected::
|
||||
Git did not try to send the ref at all, typically because it
|
||||
is not a fast-forward and you did not force the update.
|
||||
|
||||
remote rejected::
|
||||
The remote end refused the update. Usually caused by a hook
|
||||
on the remote side, or because the remote repository has one
|
||||
of the following safety options in effect:
|
||||
`receive.denyCurrentBranch` (for pushes to the checked out
|
||||
branch), `receive.denyNonFastForwards` (for forced
|
||||
non-fast-forward updates), `receive.denyDeletes` or
|
||||
`receive.denyDeleteCurrent`. See linkgit:git-config[1].
|
||||
|
||||
remote failure::
|
||||
The remote end did not report the successful update of the ref,
|
||||
perhaps because of a temporary error on the remote side, a
|
||||
break in the network connection, or other transient error.
|
||||
--
|
||||
|
||||
from::
|
||||
The name of the local ref being pushed, minus its
|
||||
|
||||
@@ -412,6 +412,13 @@ turn `core.sparseCheckout` on in order to have sparse checkout
|
||||
support.
|
||||
|
||||
|
||||
BUGS
|
||||
----
|
||||
In order to match a directory with $GIT_DIR/info/sparse-checkout,
|
||||
trailing slash must be used. The form without trailing slash, while
|
||||
works with .gitignore, does not work with sparse checkout.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkgit:git-write-tree[1]; linkgit:git-ls-files[1];
|
||||
|
||||
@@ -7,7 +7,7 @@ git-request-pull - Generates a summary of pending changes
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
'git request-pull' <start> <url> [<end>]
|
||||
'git request-pull' [-p] <start> <url> [<end>]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@@ -17,6 +17,9 @@ the given URL in the generated summary.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
-p::
|
||||
Show patch text
|
||||
|
||||
<start>::
|
||||
Commit to start at.
|
||||
|
||||
|
||||
33
INSTALL
33
INSTALL
@@ -157,3 +157,36 @@ Issues of note:
|
||||
It has been reported that docbook-xsl version 1.72 and 1.73 are
|
||||
buggy; 1.72 misformats manual pages for callouts, and 1.73 needs
|
||||
the patch in contrib/patches/docbook-xsl-manpages-charmap.patch
|
||||
|
||||
Users attempting to build the documentation on Cygwin may need to ensure
|
||||
that the /etc/xml/catalog file looks something like this:
|
||||
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE catalog PUBLIC
|
||||
"-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
|
||||
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"
|
||||
>
|
||||
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
|
||||
<rewriteURI
|
||||
uriStartString = "http://docbook.sourceforge.net/release/xsl/current"
|
||||
rewritePrefix = "/usr/share/sgml/docbook/xsl-stylesheets"
|
||||
/>
|
||||
<rewriteURI
|
||||
uriStartString="http://www.oasis-open.org/docbook/xml/4.5"
|
||||
rewritePrefix="/usr/share/sgml/docbook/xml-dtd-4.5"
|
||||
/>
|
||||
</catalog>
|
||||
|
||||
This can be achieved with the following two xmlcatalog commands:
|
||||
|
||||
xmlcatalog --noout \
|
||||
--add rewriteURI \
|
||||
http://docbook.sourceforge.net/release/xsl/current \
|
||||
/usr/share/sgml/docbook/xsl-stylesheets \
|
||||
/etc/xml/catalog
|
||||
|
||||
xmlcatalog --noout \
|
||||
--add rewriteURI \
|
||||
http://www.oasis-open.org/docbook/xml/4.5/xsl/current \
|
||||
/usr/share/sgml/docbook/xml-dtd-4.5 \
|
||||
/etc/xml/catalog
|
||||
|
||||
@@ -120,7 +120,7 @@ static void exec_woman_emacs(const char *path, const char *page)
|
||||
if (!path)
|
||||
path = "emacsclient";
|
||||
strbuf_addf(&man_page, "(woman \"%s\")", page);
|
||||
execlp(path, "emacsclient", "-e", man_page.buf, NULL);
|
||||
execlp(path, "emacsclient", "-e", man_page.buf, (char *)NULL);
|
||||
warning("failed to exec '%s': %s", path, strerror(errno));
|
||||
}
|
||||
}
|
||||
@@ -148,7 +148,7 @@ static void exec_man_konqueror(const char *path, const char *page)
|
||||
} else
|
||||
path = "kfmclient";
|
||||
strbuf_addf(&man_page, "man:%s(1)", page);
|
||||
execlp(path, filename, "newTab", man_page.buf, NULL);
|
||||
execlp(path, filename, "newTab", man_page.buf, (char *)NULL);
|
||||
warning("failed to exec '%s': %s", path, strerror(errno));
|
||||
}
|
||||
}
|
||||
@@ -157,7 +157,7 @@ static void exec_man_man(const char *path, const char *page)
|
||||
{
|
||||
if (!path)
|
||||
path = "man";
|
||||
execlp(path, "man", page, NULL);
|
||||
execlp(path, "man", page, (char *)NULL);
|
||||
warning("failed to exec '%s': %s", path, strerror(errno));
|
||||
}
|
||||
|
||||
@@ -165,7 +165,7 @@ static void exec_man_cmd(const char *cmd, const char *page)
|
||||
{
|
||||
struct strbuf shell_cmd = STRBUF_INIT;
|
||||
strbuf_addf(&shell_cmd, "%s %s", cmd, page);
|
||||
execl("/bin/sh", "sh", "-c", shell_cmd.buf, NULL);
|
||||
execl("/bin/sh", "sh", "-c", shell_cmd.buf, (char *)NULL);
|
||||
warning("failed to exec '%s': %s", cmd, strerror(errno));
|
||||
}
|
||||
|
||||
@@ -372,7 +372,7 @@ static void show_info_page(const char *git_cmd)
|
||||
{
|
||||
const char *page = cmd_to_page(git_cmd);
|
||||
setenv("INFOPATH", system_path(GIT_INFO_PATH), 1);
|
||||
execlp("info", "info", "gitman", page, NULL);
|
||||
execlp("info", "info", "gitman", page, (char *)NULL);
|
||||
die("no info viewer handled the request");
|
||||
}
|
||||
|
||||
@@ -398,7 +398,7 @@ static void get_html_page_path(struct strbuf *page_path, const char *page)
|
||||
#ifndef open_html
|
||||
static void open_html(const char *path)
|
||||
{
|
||||
execl_git_cmd("web--browse", "-c", "help.browser", path, NULL);
|
||||
execl_git_cmd("web--browse", "-c", "help.browser", path, (char *)NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -45,7 +45,8 @@ test -z "$port" && port=1234
|
||||
|
||||
resolve_full_httpd () {
|
||||
case "$httpd" in
|
||||
*apache2*|*lighttpd*)
|
||||
*apache2*|*lighttpd*|*httpd*)
|
||||
# yes, *httpd* covers *lighttpd* above, but it is there for clarity
|
||||
# ensure that the apache2/lighttpd command ends with "-f"
|
||||
if ! echo "$httpd" | sane_grep -- '-f *$' >/dev/null 2>&1
|
||||
then
|
||||
@@ -306,7 +307,13 @@ EOF
|
||||
}
|
||||
|
||||
apache2_conf () {
|
||||
test -z "$module_path" && module_path=/usr/lib/apache2/modules
|
||||
if test -z "$module_path"
|
||||
then
|
||||
test -d "/usr/lib/httpd/modules" &&
|
||||
module_path="/usr/lib/httpd/modules"
|
||||
test -d "/usr/lib/apache2/modules" &&
|
||||
module_path="/usr/lib/apache2/modules"
|
||||
fi
|
||||
bind=
|
||||
test x"$local" = xtrue && bind='127.0.0.1:'
|
||||
echo 'text/css css' > "$fqgitdir/mime.types"
|
||||
@@ -320,8 +327,10 @@ PidFile "$fqgitdir/pid"
|
||||
Listen $bind$port
|
||||
EOF
|
||||
|
||||
for mod in mime dir; do
|
||||
if test -e $module_path/mod_${mod}.so; then
|
||||
for mod in mime dir env log_config
|
||||
do
|
||||
if test -e $module_path/mod_${mod}.so
|
||||
then
|
||||
echo "LoadModule ${mod}_module " \
|
||||
"$module_path/mod_${mod}.so" >> "$conf"
|
||||
fi
|
||||
@@ -340,7 +349,7 @@ EOF
|
||||
cat >> "$conf" <<EOF
|
||||
LoadModule perl_module $module_path/mod_perl.so
|
||||
PerlPassEnv GIT_DIR
|
||||
PerlPassEnv GIT_EXEC_DIR
|
||||
PerlPassEnv GIT_EXEC_PATH
|
||||
PerlPassEnv GITWEB_CONFIG
|
||||
<Location /gitweb.cgi>
|
||||
SetHandler perl-script
|
||||
@@ -370,6 +379,9 @@ EOF
|
||||
echo "ScriptSock logs/gitweb.sock" >> "$conf"
|
||||
fi
|
||||
cat >> "$conf" <<EOF
|
||||
PassEnv GIT_DIR
|
||||
PassEnv GIT_EXEC_PATH
|
||||
PassEnv GITWEB_CONFIG
|
||||
AddHandler cgi-script .cgi
|
||||
<Location /gitweb.cgi>
|
||||
Options +ExecCGI
|
||||
@@ -566,7 +578,7 @@ case "$httpd" in
|
||||
*lighttpd*)
|
||||
lighttpd_conf
|
||||
;;
|
||||
*apache2*)
|
||||
*apache2*|*httpd*)
|
||||
apache2_conf
|
||||
;;
|
||||
webrick)
|
||||
|
||||
@@ -119,7 +119,7 @@ run 'git rebase --continue'"
|
||||
export GIT_CHERRY_PICK_HELP
|
||||
|
||||
warn () {
|
||||
echo "$*" >&2
|
||||
printf '%s\n' "$*" >&2
|
||||
}
|
||||
|
||||
output () {
|
||||
@@ -606,7 +606,7 @@ skip_unnecessary_picks () {
|
||||
fd=1
|
||||
;;
|
||||
esac
|
||||
echo "$command${sha1:+ }$sha1${rest:+ }$rest" >&$fd
|
||||
printf '%s\n' "$command${sha1:+ }$sha1${rest:+ }$rest" >&$fd
|
||||
done <"$TODO" >"$TODO.new" 3>>"$DONE" &&
|
||||
mv -f "$TODO".new "$TODO" &&
|
||||
case "$(peek_next_command)" in
|
||||
@@ -649,12 +649,12 @@ rearrange_squash () {
|
||||
case " $used" in
|
||||
*" $sha1 "*) continue ;;
|
||||
esac
|
||||
echo "$pick $sha1 $message"
|
||||
printf '%s\n' "$pick $sha1 $message"
|
||||
while read -r squash action msg
|
||||
do
|
||||
case "$message" in
|
||||
"$msg"*)
|
||||
echo "$action $squash $action! $msg"
|
||||
printf '%s\n' "$action $squash $action! $msg"
|
||||
used="$used$squash "
|
||||
;;
|
||||
esac
|
||||
@@ -895,7 +895,7 @@ first and then run 'git rebase --continue' again."
|
||||
do
|
||||
if test t != "$PRESERVE_MERGES"
|
||||
then
|
||||
echo "pick $shortsha1 $rest" >> "$TODO"
|
||||
printf '%s\n' "pick $shortsha1 $rest" >> "$TODO"
|
||||
else
|
||||
sha1=$(git rev-parse $shortsha1)
|
||||
if test -z "$REBASE_ROOT"
|
||||
@@ -914,7 +914,7 @@ first and then run 'git rebase --continue' again."
|
||||
if test f = "$preserve"
|
||||
then
|
||||
touch "$REWRITTEN"/$sha1
|
||||
echo "pick $shortsha1 $rest" >> "$TODO"
|
||||
printf '%s\n' "pick $shortsha1 $rest" >> "$TODO"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -31,7 +31,7 @@ valid_custom_tool()
|
||||
|
||||
valid_tool() {
|
||||
case "$1" in
|
||||
firefox | iceweasel | chrome | chromium | konqueror | w3m | links | lynx | dillo | open | start)
|
||||
firefox | iceweasel | chrome | google-chrome | chromium | konqueror | w3m | links | lynx | dillo | open | start)
|
||||
;; # happy
|
||||
*)
|
||||
valid_custom_tool "$1" || return 1
|
||||
@@ -103,7 +103,7 @@ fi
|
||||
|
||||
if test -z "$browser" ; then
|
||||
if test -n "$DISPLAY"; then
|
||||
browser_candidates="firefox iceweasel chrome chromium konqueror w3m links lynx dillo"
|
||||
browser_candidates="firefox iceweasel google-chrome chrome chromium konqueror w3m links lynx dillo"
|
||||
if test "$KDE_FULL_SESSION" = "true"; then
|
||||
browser_candidates="konqueror $browser_candidates"
|
||||
fi
|
||||
@@ -146,7 +146,7 @@ case "$browser" in
|
||||
test "$vers" -lt 2 && NEWTAB=''
|
||||
"$browser_path" $NEWTAB "$@" &
|
||||
;;
|
||||
chrome|chromium)
|
||||
google-chrome|chrome|chromium)
|
||||
# Actual command for chromium is chromium-browser.
|
||||
# No need to specify newTab. It's default in chromium
|
||||
eval "$browser_path" "$@" &
|
||||
|
||||
1
t/.gitignore
vendored
1
t/.gitignore
vendored
@@ -1,2 +1,3 @@
|
||||
/trash directory*
|
||||
/test-results
|
||||
/.prove
|
||||
|
||||
@@ -30,6 +30,7 @@ clean:
|
||||
$(RM) -r 'trash directory'.* test-results
|
||||
$(RM) t????/cvsroot/CVSROOT/?*
|
||||
$(RM) -r valgrind/bin
|
||||
$(RM) .prove
|
||||
|
||||
aggregate-results-and-cleanup: $(T)
|
||||
$(MAKE) aggregate-results
|
||||
|
||||
@@ -637,13 +637,19 @@ test_expect_success 'set up commits with funny messages' '
|
||||
git commit -a -m "end with slash\\" &&
|
||||
echo >>file1 &&
|
||||
test_tick &&
|
||||
git commit -a -m "something (\000) that looks like octal" &&
|
||||
echo >>file1 &&
|
||||
test_tick &&
|
||||
git commit -a -m "something (\n) that looks like a newline" &&
|
||||
echo >>file1 &&
|
||||
test_tick &&
|
||||
git commit -a -m "another commit"
|
||||
'
|
||||
|
||||
test_expect_success 'rebase-i history with funny messages' '
|
||||
git rev-list A..funny >expect &&
|
||||
test_tick &&
|
||||
FAKE_LINES="1 2" git rebase -i A &&
|
||||
FAKE_LINES="1 2 3 4" git rebase -i A &&
|
||||
git rev-list A.. >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
@@ -272,17 +272,20 @@ test_expect_success 'git add --dry-run of non-existing file' "
|
||||
echo \"fatal: pathspec 'ignored-file' did not match any files\" | test_cmp - actual
|
||||
"
|
||||
|
||||
cat >expect <<EOF
|
||||
cat >expect.err <<\EOF
|
||||
The following paths are ignored by one of your .gitignore files:
|
||||
ignored-file
|
||||
Use -f if you really want to add them.
|
||||
fatal: no files added
|
||||
EOF
|
||||
cat >expect.out <<\EOF
|
||||
add 'track-this'
|
||||
EOF
|
||||
|
||||
test_expect_success 'git add --dry-run --ignore-missing of non-existing file' '
|
||||
test_must_fail git add --dry-run --ignore-missing track-this ignored-file >actual 2>&1 &&
|
||||
test_cmp expect actual
|
||||
test_must_fail git add --dry-run --ignore-missing track-this ignored-file >actual.out 2>actual.err &&
|
||||
test_cmp expect.out actual.out &&
|
||||
test_cmp expect.err actual.err
|
||||
'
|
||||
|
||||
test_done
|
||||
|
||||
Reference in New Issue
Block a user