mirror of
https://github.com/git/git.git
synced 2024-11-24 18:33:43 +08:00
git-cherry: make <upstream> parameter optional
The upstream branch <upstream> now defaults to the first tracked remote branch, which is set by the configuration variables branch.<name>.remote and branch.<name>.merge of the current branch. Without such a remote branch, the command "git cherry [-v]" fails with usage output as before and an additional message. Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
8104ebfe82
commit
f296802211
@ -7,7 +7,7 @@ git-cherry - Find commits not merged upstream
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
'git cherry' [-v] <upstream> [<head>] [<limit>]
|
||||
'git cherry' [-v] [<upstream>] [<head>] [<limit>]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -51,6 +51,7 @@ OPTIONS
|
||||
|
||||
<upstream>::
|
||||
Upstream branch to compare against.
|
||||
Defaults to the first tracked remote branch, if available.
|
||||
|
||||
<head>::
|
||||
Working branch; defaults to HEAD.
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include "patch-ids.h"
|
||||
#include "run-command.h"
|
||||
#include "shortlog.h"
|
||||
#include "remote.h"
|
||||
|
||||
/* Set a default date-time format for git log ("log.date" config variable) */
|
||||
static const char *default_date_mode = NULL;
|
||||
@ -1070,13 +1071,14 @@ static int add_pending_commit(const char *arg, struct rev_info *revs, int flags)
|
||||
}
|
||||
|
||||
static const char cherry_usage[] =
|
||||
"git cherry [-v] <upstream> [<head>] [<limit>]";
|
||||
"git cherry [-v] [<upstream>] [<head>] [<limit>]";
|
||||
int cmd_cherry(int argc, const char **argv, const char *prefix)
|
||||
{
|
||||
struct rev_info revs;
|
||||
struct patch_ids ids;
|
||||
struct commit *commit;
|
||||
struct commit_list *list = NULL;
|
||||
struct branch *current_branch;
|
||||
const char *upstream;
|
||||
const char *head = "HEAD";
|
||||
const char *limit = NULL;
|
||||
@ -1099,7 +1101,17 @@ int cmd_cherry(int argc, const char **argv, const char *prefix)
|
||||
upstream = argv[1];
|
||||
break;
|
||||
default:
|
||||
usage(cherry_usage);
|
||||
current_branch = branch_get(NULL);
|
||||
if (!current_branch || !current_branch->merge
|
||||
|| !current_branch->merge[0]
|
||||
|| !current_branch->merge[0]->dst) {
|
||||
fprintf(stderr, "Could not find a tracked"
|
||||
" remote branch, please"
|
||||
" specify <upstream> manually.\n");
|
||||
usage(cherry_usage);
|
||||
}
|
||||
|
||||
upstream = current_branch->merge[0]->dst;
|
||||
}
|
||||
|
||||
init_revisions(&revs, prefix);
|
||||
|
Loading…
Reference in New Issue
Block a user