Re: Rebase/cherry-picking idea

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



El 26/11/2007, a las 13:51, Johannes Sixt escribió:

Wincent Colaiuta schrieb:
El 26/11/2007, a las 12:27, Wincent Colaiuta escribió:
So I think that misleading noise needs to be suppressed or reworded when rebasing. Will look into it.
How about something like this? It would obviously be nice if we could avoid adding another option to builtin-revert; perhaps when/ if git-rebase becomes a builtin we can avoid that. The other alternative, and probably one I like I bit more, would be to auto- detect that a rebase is in progress by looking inside the GIT_DIR, although that would also alter the behaviour of manual invocations of git-revert and git-cherry-pick during an interactive rebase (do people actually do that?). What do you think?

Introduce an environment variable _GIT_CHERRY_PICK_HELP (note the leading underscore), which git-rebase sets; if it's set, git-cherry- pick uses that text instead of the usual one.

Good idea, quite a bit less cruddy:

diff --git a/builtin-revert.c b/builtin-revert.c
index a0586f9..5a57574 100644
--- a/builtin-revert.c
+++ b/builtin-revert.c
@@ -229,7 +229,7 @@ static int revert_or_cherry_pick(int argc, const char **argv)
 	unsigned char head[20];
 	struct commit *base, *next, *parent;
 	int i;
-	char *oneline, *reencoded_message = NULL;
+	char *oneline, *reencoded_message = NULL, *help_message;
 	const char *message, *encoding;
 	const char *defmsg = xstrdup(git_path("MERGE_MSG"));

@@ -352,11 +352,13 @@ static int revert_or_cherry_pick(int argc, const char **argv)
 		}
 		if (close(msg_fd) || commit_lock_file(&msg_file) < 0)
 			die ("Error wrapping up %s", defmsg);
+		help_message = getenv("_GIT_CHERRY_PICK_HELP");
 		fprintf(stderr, "Automatic %s failed.  "
 			"After resolving the conflicts,\n"
 			"mark the corrected paths with 'git add <paths>' "
-			"and commit the result.\n", me);
-		if (action == CHERRY_PICK) {
+			"and %s.\n", me,
+			help_message ? help_message : "commit the result");
+		if (action == CHERRY_PICK && !help_message) {
 			fprintf(stderr, "When commiting, use the option "
 				"'-c %s' to retain authorship and message.\n",
 				find_unique_abbrev(commit->object.sha1,
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index bf44b6a..e5f9810 100755
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -117,6 +117,7 @@ pick_one () {
 		sha1=$(git rev-parse --short $sha1)
 		output warn Fast forward to $sha1
 	else
+		export _GIT_CHERRY_PICK_HELP="run 'git rebase --continue'"
 		output git cherry-pick "$@"
 	fi
 }
@@ -187,6 +188,7 @@ pick_one_preserving_merges () {
 			fi
 			;;
 		*)
+			export _GIT_CHERRY_PICK_HELP="run 'git rebase --continue'"
 			output git cherry-pick "$@" ||
 				die_with_patch $sha1 "Could not pick $sha1"
 			;;

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux