git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] rebase: use @{upstream} if no upstream specified

From
Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Date
Feb 10, 2011, 01:15 UTC
Message-ID
<alpine.DEB.2.00.1102092005300.20937@debian>
In-Reply-To
<20110209041737.GD24346@elie>
On Tue, 8 Feb 2011, Jonathan Nieder wrote:
Show 24 quoted lines
> Martin von Zweigbergk wrote:
> 
> > Changes to the text compared to before:
> >
> >  * "remote branch" became "upstream branch", even for git pull
> 
> Sensible for pull --rebase.  I'm not so sure about plain pull --- what
> if I am upstream and pulling from downstream?
> 
> >  * "You asked me to pull" became "You asked me to merge" or "You asked
> >    me to rebase", even for git pull
> 
> "To pull" would be clearer if the reader is new and unfamiliar with
> the details.
> 
> >  * Now printed to stderr, because I simply didn't think about it. Good
> >    or bad?
> 
> If this were a new message, I'd say stderr is better.
> 
> As is, the change to stderr seems relatively harmless, though I haven't
> thought about it deeply.  But a part of me likes to see functional
> changes isolated in separate commits to make tracking down bugs a
> little easier.

The patch below should address all of the above. See how you like the new wording. The patch applies on top of the previous one to make the changes clear. I will send a re-roll with all three patches squashed soon as well.

Note that this patch makes the test cases introduced in the original patch fail because of the error messages from 'git rebase' are now written to stdout. I will of course fix that in the re-roll.

Thanks for reviewing.
/Martin
-- 8< --
diff --git a/git-parse-remote.sh b/git-parse-remote.sh
index ff58d5b..be17ecb 100644
--- a/git-parse-remote.sh
+++ b/git-parse-remote.sh
@@ -101,25 +101,25 @@ get_remote_merge_branch () {
 }
 
 error_on_missing_default_upstream () {
-	op_type="$1"
-	op_prep="$2"
-	example="$3"
-	documentation="$4"
+	cmd="$1"
+	op_type="$2"
+	op_prep="$3"
+	example="$4"
 	branch_name=$(git symbolic-ref -q HEAD)
 	if test -z "$branch_name"
 	then
-		die "You are not currently on a branch, so I cannot use any
+		echo "You are not currently on a branch, so I cannot use any
 'branch.<branchname>.merge' in your configuration file.
-Please specify which upstream branch you want to use on the command
+Please specify which branch you want to $op_type $op_prep on the command
 line and try again (e.g. '$example').
-See $documentation for details."
+See git-${cmd}(1) for details."
 	else
-		echo &2> "You asked me to $op_type without telling me which branch you
+		echo "You asked me to $cmd without telling me which branch you
 want to $op_type $op_prep, and 'branch.${branch_name#refs/heads/}.merge' in
 your configuration file does not tell me, either. Please
 specify which branch you want to use on the command line and
 try again (e.g. '$example').
-See $documentation for details.
+See git-${cmd}(1) for details.
 
 If you often $op_type $op_prep the same branch, you may want to
 use something like the following in your configuration file:
@@ -127,12 +127,13 @@ use something like the following in your configuration file:
     remote = <nickname>
     merge = <remote-ref>"
 		test rebase = "$op_type" &&
-		echo &2> "    rebase = true"
-		die "
+		echo "    rebase = true"
+		echo "
     [remote \"<nickname>\"]
     url = <url>
     fetch = <refspec>
 
 See git-config(1) for details."
 	fi
+	exit 1
 }
diff --git a/git-pull.sh b/git-pull.sh
index 8ec1d3d..2cdea26 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -165,8 +165,8 @@ error_on_no_merge_candidates () {
 		echo "for your current branch, you must specify a branch on the command line."
 	elif [ -z "$curr_branch" -o -z "$upstream" ]; then
 		. git-parse-remote
-		error_on_missing_default_upstream $op_type $op_prep \
-			"git pull <repository> <refspec>" "git-pull(1)"
+		error_on_missing_default_upstream "pull" $op_type $op_prep \
+			"git pull <repository> <refspec>"
 	else
 		echo "Your configuration specifies to $op_type $op_prep the ref '${upstream#refs/heads/}'"
 		echo "from the remote, but no such ref was fetched."
diff --git a/git-rebase.sh b/git-rebase.sh
index 8b39cab..cff7aaa 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -366,8 +366,8 @@ then
 			--verify -q @{upstream})
 		then
 			. git-parse-remote
-			error_on_missing_default_upstream "rebase" "against" \
-				"git rebase <upstream branch>" "git-rebase(1)"
+			error_on_missing_default_upstream "rebase" "rebase" \
+				"against" "git rebase <upstream branch>"
 		fi
 		;;
 	*)	upstream_name="$1"
Previous: Jonathan NiederNext: Martin von Zweigbergk
Message 9 of 12 in “rebase: use @{upstream} if no upstream specified”
  1. rebase: use @{upstream} if no upstream specifiedMartin von Zweigbergk, Feb 8, 2011
  2. Sverre RabbelierFeb 8, 2011
  3. Martin von ZweigbergkFeb 8, 2011
  4. Sverre RabbelierFeb 8, 2011
  5. Jonathan NiederFeb 8, 2011
  6. Martin von ZweigbergkFeb 9, 2011
  7. Martin von ZweigbergkFeb 9, 2011
  8. Jonathan NiederFeb 9, 2011
  9. Martin von ZweigbergkFeb 10, 2011
  10. rebase: use @{upstream} if no upstream specifiedMartin von Zweigbergk, Feb 10, 2011
  11. Junio C HamanoFeb 10, 2011
  12. Martin von ZweigbergkFeb 10, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.