Merge branch 'maint'

* maint:
  Clarified the meaning of git-add -u in the documentation
  git-clone.sh: properly configure remote even if remote's head is dangling
  Documentation/git-stash: document options for git stash list
  send-email: squelch warning due to comparing undefined $_ to ""
This commit is contained in:
Junio C Hamano
2008-02-20 16:13:13 -08:00
5 changed files with 28 additions and 9 deletions

View File

@ -74,8 +74,8 @@ OPTIONS
Update only files that git already knows about. This is similar Update only files that git already knows about. This is similar
to what "git commit -a" does in preparation for making a commit, to what "git commit -a" does in preparation for making a commit,
except that the update is limited to paths specified on the except that the update is limited to paths specified on the
command line. If no paths are specified, all tracked files are command line. If no paths are specified, all tracked files in the
updated. current directory and its subdirectories are updated.
\--refresh:: \--refresh::
Don't add the file(s), but only refresh their stat() Don't add the file(s), but only refresh their stat()

View File

@ -43,7 +43,7 @@ save [<message>]::
subcommand is given. The <message> part is optional and gives subcommand is given. The <message> part is optional and gives
the description along with the stashed state. the description along with the stashed state.
list:: list [<options>]::
List the stashes that you currently have. Each 'stash' is listed List the stashes that you currently have. Each 'stash' is listed
with its name (e.g. `stash@\{0}` is the latest stash, `stash@\{1}` is with its name (e.g. `stash@\{0}` is the latest stash, `stash@\{1}` is
@ -55,6 +55,9 @@ list::
stash@{0}: WIP on submit: 6ebd0e2... Update git-stash documentation stash@{0}: WIP on submit: 6ebd0e2... Update git-stash documentation
stash@{1}: On master: 9cc0589... Add git-stash stash@{1}: On master: 9cc0589... Add git-stash
---------------------------------------------------------------- ----------------------------------------------------------------
+
The command takes options applicable to the linkgit:git-log[1]
command to control what is shown and how.
show [<stash>]:: show [<stash>]::

View File

@ -409,11 +409,12 @@ else
cd "$D" || exit cd "$D" || exit
fi fi
if test -z "$bare" && test -f "$GIT_DIR/REMOTE_HEAD" if test -z "$bare"
then then
# a non-bare repository is always in separate-remote layout # a non-bare repository is always in separate-remote layout
remote_top="refs/remotes/$origin" remote_top="refs/remotes/$origin"
head_sha1=`cat "$GIT_DIR/REMOTE_HEAD"` head_sha1=
test ! -r "$GIT_DIR/REMOTE_HEAD" || head_sha1=`cat "$GIT_DIR/REMOTE_HEAD"`
case "$head_sha1" in case "$head_sha1" in
'ref: refs/'*) 'ref: refs/'*)
# Uh-oh, the remote told us (http transport done against # Uh-oh, the remote told us (http transport done against
@ -470,9 +471,16 @@ then
git config branch."$head_points_at".merge "refs/heads/$head_points_at" git config branch."$head_points_at".merge "refs/heads/$head_points_at"
;; ;;
'') '')
if test -z "$head_sha1"
then
# Source had nonexistent ref in HEAD
echo >&2 "Warning: Remote HEAD refers to nonexistent ref, unable to checkout."
no_checkout=t
else
# Source had detached HEAD pointing nowhere # Source had detached HEAD pointing nowhere
git update-ref --no-deref HEAD "$head_sha1" && git update-ref --no-deref HEAD "$head_sha1" &&
rm -f "refs/remotes/$origin/HEAD" rm -f "refs/remotes/$origin/HEAD"
fi
;; ;;
esac esac

View File

@ -475,7 +475,7 @@ if ($thread && !defined $initial_reply_to && $prompting) {
$initial_reply_to = $_; $initial_reply_to = $_;
} }
if (defined $initial_reply_to && $_ ne "") { if (defined $initial_reply_to) {
$initial_reply_to =~ s/^\s*<?/</; $initial_reply_to =~ s/^\s*<?/</;
$initial_reply_to =~ s/>?\s*$/>/; $initial_reply_to =~ s/>?\s*$/>/;
} }

View File

@ -63,4 +63,12 @@ test_expect_success 'Even without -l, local will make a hardlink' '
test 0 = $copied test 0 = $copied
' '
test_expect_success 'local clone of repo with nonexistent ref in HEAD' '
cd "$D" &&
echo "ref: refs/heads/nonexistent" > a.git/HEAD &&
git clone a d &&
cd d &&
git fetch &&
test ! -e .git/refs/remotes/origin/HEAD'
test_done test_done