From: Pavel Roskin <proski@gnu.org>
To: Petr Baudis <pasky@suse.cz>, git <git@vger.kernel.org>
Subject: [PATCH] cg-pull to stop treating "master" specially, fix fetch_local for .git/HEAD
Date: Tue, 23 Aug 2005 17:33:16 -0400 [thread overview]
Message-ID: <1124832796.23795.9.camel@dv> (raw)
Hello!
This patch changes cg-pull so that if the branch is not specified, it
takes origin's .git/HEAD without first trying .git/refs/heads/master.
This removes preferential treatment of the "master" branch, allowing the
upstream to use another name for the default branch. To get the master
branch, users would have to append "#master" to the URL.
Local URL handling needs to be fixed to handle .git/HEAD properly, since
it's a symlink in the upstream directory. A new flag "-b" for fetch_*
functions is introduced, meaning "dereference" (like in GNU cp).
To do: the code needs refactoring with better option handling.
Signed-off-by: Pavel Roskin <proski@gnu.org>
diff --git a/cg-pull b/cg-pull
--- a/cg-pull
+++ b/cg-pull
@@ -67,6 +67,8 @@ pull_progress()
fetch_rsync()
{
+ [ "$1" = "-b" ] && shift
+
redir=
if [ "$1" = "-i" ]; then # ignore-errors
redir="2>/dev/null"
@@ -108,6 +110,7 @@ pull_rsync()
fetch_http()
{
+ [ "$1" = "-b" ] && shift
[ "$1" = "-i" ] && shift
[ "$1" = "-s" ] && shift
@@ -158,6 +161,7 @@ pull_http()
fetch_ssh()
{
+ [ "$1" = "-b" ] && shift
[ "$1" = "-i" ] && shift
[ "$1" = "-s" ] && shift
@@ -205,6 +209,11 @@ fetch_local()
[ "$1" = "-s" ] && shift
cp_flags_l="-vdpR"
+ if [ "$1" = "-b" ]; then
+ cp_flags_l="-vb" # Dereference symlinks
+ shift
+ fi
+
if [ "$1" = "-u" ]; then
cp_flags_l="$cp_flags_l -fu$can_hardlink"
suggest_hardlink=
@@ -255,7 +264,7 @@ name=${ARGS[0]}
[ "$name" ] || die "where to pull from?"
uri=$(cat "$_git/branches/$name" 2>/dev/null) || die "unknown branch: $name"
-rembranch=master
+rembranch=
if echo "$uri" | grep -q '#'; then
rembranch=$(echo $uri | cut -d '#' -f 2)
uri=$(echo $uri | cut -d '#' -f 1)
@@ -308,13 +317,13 @@ orig_head=
mkdir -p $_git/refs/heads
-rsyncerr=
-$fetch -i "$uri/refs/heads/$rembranch" "$_git/refs/heads/.$name-pulling" || rsyncerr=1
-if [ "$rsyncerr" ] && [ "$rembranch" = "master" ]; then
- rsyncerr=
- $fetch -s "$uri/HEAD" "$_git/refs/heads/.$name-pulling" || rsyncerr=1
+if [ "$rembranch" ]; then
+ $fetch -i "$uri/refs/heads/$rembranch" "$_git/refs/heads/.$name-pulling" ||
+ die "unable to get the head pointer of branch $rembranch"
+else
+ $fetch -b -s "$uri/HEAD" "$_git/refs/heads/.$name-pulling" ||
+ die "unable to get the HEAD branch"
fi
-[ "$rsyncerr" ] && die "unable to get the head pointer of branch $rembranch"
new_head=$(cat "$_git/refs/heads/.$name-pulling")
if ! [ "$symlinked" ]; then
--
Regards,
Pavel Roskin
next reply other threads:[~2005-08-23 21:33 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-23 21:33 Pavel Roskin [this message]
2005-11-10 19:24 ` [PATCH] cg-pull to stop treating "master" specially, fix fetch_local for .git/HEAD Petr Baudis
2005-11-10 20:11 ` Pavel Roskin
2005-11-10 23:26 ` Josef Weidendorfer
2005-11-10 23:40 ` Petr Baudis
2005-11-10 23:56 ` Josef Weidendorfer
2005-11-11 0:09 ` Petr Baudis
2005-11-11 0:14 ` Pavel Roskin
2005-11-11 1:13 ` Josef Weidendorfer
2005-11-11 4:53 ` Pavel Roskin
2005-11-11 14:22 ` Josef Weidendorfer
2005-11-11 15:26 ` Pavel Roskin
2005-11-11 16:10 ` Josef Weidendorfer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1124832796.23795.9.camel@dv \
--to=proski@gnu.org \
--cc=git@vger.kernel.org \
--cc=pasky@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).