projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
send-email: use built-in time() instead of /bin/date '+%s'
[git.git]
/
git-parse-remote.sh
diff --git
a/git-parse-remote.sh
b/git-parse-remote.sh
index
a9db0cd
..
5f158c6
100755
(executable)
--- a/
git-parse-remote.sh
+++ b/
git-parse-remote.sh
@@
-1,6
+1,8
@@
#!/bin/sh
#!/bin/sh
-. git-sh-setup || die "Not a git archive"
+# git-ls-remote could be called from outside a git managed repository;
+# this would fail in that case and would issue an error message.
+GIT_DIR=$(git-rev-parse --git-dir 2>/dev/null) || :;
get_data_source () {
case "$1" in
get_data_source () {
case "$1" in
@@
-65,8
+67,11
@@
get_remote_default_refs_for_push () {
esac
}
esac
}
-# Subroutine to canonicalize remote:local notation
+# Subroutine to canonicalize remote:local notation
.
canon_refs_list_for_fetch () {
canon_refs_list_for_fetch () {
+ # Leave only the first one alone; add prefix . to the rest
+ # to prevent the secondary branches to be merged by default.
+ dot_prefix=
for ref
do
force=
for ref
do
force=
@@
-91,7
+96,14
@@
canon_refs_list_for_fetch () {
heads/* | tags/* ) local="refs/$local" ;;
*) local="refs/heads/$local" ;;
esac
heads/* | tags/* ) local="refs/$local" ;;
*) local="refs/heads/$local" ;;
esac
- echo "${force}${remote}:${local}"
+
+ if local_ref_name=$(expr "$local" : 'refs/\(.*\)')
+ then
+ git-check-ref-format "$local_ref_name" ||
+ die "* refusing to create funny ref '$local_ref_name' locally"
+ fi
+ echo "${dot_prefix}${force}${remote}:${local}"
+ dot_prefix=.
done
}
done
}
@@
-107,6
+119,9
@@
get_remote_default_refs_for_fetch () {
echo "refs/heads/${remote_branch}:refs/heads/$1"
;;
remotes)
echo "refs/heads/${remote_branch}:refs/heads/$1"
;;
remotes)
+ # This prefixes the second and later default refspecs
+ # with a '.', to signal git-fetch to mark them
+ # not-for-merge.
canon_refs_list_for_fetch $(sed -ne '/^Pull: */{
s///p
}' "$GIT_DIR/remotes/$1")
canon_refs_list_for_fetch $(sed -ne '/^Pull: */{
s///p
}' "$GIT_DIR/remotes/$1")