зеркало из https://github.com/microsoft/git.git
Don't force everybody to call setup_ident().
Back when only handful commands that created commit and tag were the only users of committer identity information, it made sense to explicitly call setup_ident() to pre-fill the default value from the gecos information. But it is much simpler for programs to make the call automatic when get_ident() is called these days, since many more programs want to use the information when updating the reflog. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
903b45fe18
Коммит
01754769ab
|
@ -394,7 +394,6 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
|
|||
int kinds = REF_LOCAL_BRANCH;
|
||||
int i;
|
||||
|
||||
setup_ident();
|
||||
git_config(git_branch_config);
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
|
|
|
@ -94,7 +94,6 @@ int cmd_commit_tree(int argc, const char **argv, const char *prefix)
|
|||
unsigned int size;
|
||||
int encoding_is_utf8;
|
||||
|
||||
setup_ident();
|
||||
git_config(git_default_config);
|
||||
|
||||
if (argc < 2)
|
||||
|
|
|
@ -380,7 +380,6 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
|
|||
char message_id[1024];
|
||||
char ref_message_id[1024];
|
||||
|
||||
setup_ident();
|
||||
git_config(git_format_config);
|
||||
init_revisions(&rev, prefix);
|
||||
rev.commit_format = CMIT_FMT_EMAIL;
|
||||
|
|
|
@ -13,7 +13,6 @@ int cmd_update_ref(int argc, const char **argv, const char *prefix)
|
|||
int i, delete;
|
||||
|
||||
delete = 0;
|
||||
setup_ident();
|
||||
git_config(git_default_config);
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
|
|
1
cache.h
1
cache.h
|
@ -319,7 +319,6 @@ int parse_date(const char *date, char *buf, int bufsize);
|
|||
void datestamp(char *buf, int bufsize);
|
||||
unsigned long approxidate(const char *);
|
||||
|
||||
extern int setup_ident(void);
|
||||
extern const char *git_author_info(int);
|
||||
extern const char *git_committer_info(int);
|
||||
|
||||
|
|
|
@ -670,7 +670,6 @@ int main(int argc, char **argv)
|
|||
struct stat st;
|
||||
|
||||
setup_git_directory();
|
||||
setup_ident();
|
||||
git_config(fetch_pack_config);
|
||||
|
||||
if (0 <= transfer_unpack_limit)
|
||||
|
|
|
@ -1003,7 +1003,6 @@ int main(int argc, const char **argv)
|
|||
int arg = 1;
|
||||
int rc = 0;
|
||||
|
||||
setup_ident();
|
||||
setup_git_directory();
|
||||
git_config(git_default_config);
|
||||
|
||||
|
|
|
@ -2299,7 +2299,6 @@ int main(int argc, char **argv)
|
|||
struct ref *ref;
|
||||
|
||||
setup_git_directory();
|
||||
setup_ident();
|
||||
|
||||
remote = xcalloc(sizeof(*remote), 1);
|
||||
|
||||
|
|
51
ident.c
51
ident.c
|
@ -43,19 +43,13 @@ static void copy_gecos(struct passwd *w, char *name, int sz)
|
|||
|
||||
}
|
||||
|
||||
int setup_ident(void)
|
||||
static void copy_email(struct passwd *pw)
|
||||
{
|
||||
int len;
|
||||
struct passwd *pw = getpwuid(getuid());
|
||||
|
||||
if (!pw)
|
||||
die("You don't exist. Go away!");
|
||||
|
||||
/* Get the name ("gecos") */
|
||||
copy_gecos(pw, git_default_name, sizeof(git_default_name));
|
||||
|
||||
/* Make up a fake email address (name + '@' + hostname [+ '.' + domainname]) */
|
||||
len = strlen(pw->pw_name);
|
||||
/*
|
||||
* Make up a fake email address
|
||||
* (name + '@' + hostname [+ '.' + domainname])
|
||||
*/
|
||||
int len = strlen(pw->pw_name);
|
||||
if (len > sizeof(git_default_email)/2)
|
||||
die("Your sysadmin must hate you!");
|
||||
memcpy(git_default_email, pw->pw_name, len);
|
||||
|
@ -68,13 +62,37 @@ int setup_ident(void)
|
|||
len = strlen(git_default_email);
|
||||
git_default_email[len++] = '.';
|
||||
if (he && (domainname = strchr(he->h_name, '.')))
|
||||
strlcpy(git_default_email + len, domainname + 1, sizeof(git_default_email) - len);
|
||||
strlcpy(git_default_email + len, domainname + 1,
|
||||
sizeof(git_default_email) - len);
|
||||
else
|
||||
strlcpy(git_default_email + len, "(none)", sizeof(git_default_email) - len);
|
||||
strlcpy(git_default_email + len, "(none)",
|
||||
sizeof(git_default_email) - len);
|
||||
}
|
||||
}
|
||||
|
||||
static void setup_ident(void)
|
||||
{
|
||||
struct passwd *pw = NULL;
|
||||
|
||||
/* Get the name ("gecos") */
|
||||
if (!git_default_name[0]) {
|
||||
pw = getpwuid(getuid());
|
||||
if (!pw)
|
||||
die("You don't exist. Go away!");
|
||||
copy_gecos(pw, git_default_name, sizeof(git_default_name));
|
||||
}
|
||||
|
||||
if (!git_default_email[0]) {
|
||||
if (!pw)
|
||||
pw = getpwuid(getuid());
|
||||
if (!pw)
|
||||
die("You don't exist. Go away!");
|
||||
copy_email(pw);
|
||||
}
|
||||
|
||||
/* And set the default date */
|
||||
datestamp(git_default_date, sizeof(git_default_date));
|
||||
return 0;
|
||||
if (!git_default_date[0])
|
||||
datestamp(git_default_date, sizeof(git_default_date));
|
||||
}
|
||||
|
||||
static int add_raw(char *buf, int size, int offset, const char *str)
|
||||
|
@ -174,6 +192,7 @@ static const char *get_ident(const char *name, const char *email,
|
|||
char date[50];
|
||||
int i;
|
||||
|
||||
setup_ident();
|
||||
if (!name)
|
||||
name = git_default_name;
|
||||
if (!email)
|
||||
|
|
|
@ -210,7 +210,6 @@ int main(int argc, const char **argv)
|
|||
char **commit_id;
|
||||
int arg = 1;
|
||||
|
||||
setup_ident();
|
||||
setup_git_directory();
|
||||
git_config(git_default_config);
|
||||
|
||||
|
|
|
@ -429,7 +429,6 @@ int main(int argc, char **argv)
|
|||
if (is_repository_shallow())
|
||||
die("attempt to push into a shallow repository");
|
||||
|
||||
setup_ident();
|
||||
git_config(receive_pack_config);
|
||||
|
||||
if (0 <= transfer_unpack_limit)
|
||||
|
|
|
@ -124,7 +124,6 @@ int main(int argc, char **argv)
|
|||
prog = getenv("GIT_SSH_PUSH");
|
||||
if (!prog) prog = "git-ssh-upload";
|
||||
|
||||
setup_ident();
|
||||
setup_git_directory();
|
||||
git_config(git_default_config);
|
||||
|
||||
|
|
1
var.c
1
var.c
|
@ -56,7 +56,6 @@ int main(int argc, char **argv)
|
|||
}
|
||||
|
||||
setup_git_directory();
|
||||
setup_ident();
|
||||
val = NULL;
|
||||
|
||||
if (strcmp(argv[1], "-l") == 0) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче