Skip to content

Commit

Permalink
Don't force everybody to call setup_ident().
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Junio C Hamano committed Jan 28, 2007
1 parent 903b45f commit 0175476
Show file tree
Hide file tree
Showing 13 changed files with 35 additions and 28 deletions.
1 change: 0 additions & 1 deletion builtin-branch.c
Expand Up @@ -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++) {
Expand Down
1 change: 0 additions & 1 deletion builtin-commit-tree.c
Expand Up @@ -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)
Expand Down
1 change: 0 additions & 1 deletion builtin-log.c
Expand Up @@ -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;
Expand Down
1 change: 0 additions & 1 deletion builtin-update-ref.c
Expand Up @@ -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++) {
Expand Down
1 change: 0 additions & 1 deletion cache.h
Expand Up @@ -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);

Expand Down
1 change: 0 additions & 1 deletion fetch-pack.c
Expand Up @@ -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)
Expand Down
1 change: 0 additions & 1 deletion http-fetch.c
Expand Up @@ -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);

Expand Down
1 change: 0 additions & 1 deletion http-push.c
Expand Up @@ -2299,7 +2299,6 @@ int main(int argc, char **argv)
struct ref *ref;

setup_git_directory();
setup_ident();

remote = xcalloc(sizeof(*remote), 1);

Expand Down
51 changes: 35 additions & 16 deletions ident.c
Expand Up @@ -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);
Expand All @@ -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)
Expand Down Expand Up @@ -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)
Expand Down
1 change: 0 additions & 1 deletion local-fetch.c
Expand Up @@ -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);

Expand Down
1 change: 0 additions & 1 deletion receive-pack.c
Expand Up @@ -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)
Expand Down
1 change: 0 additions & 1 deletion ssh-fetch.c
Expand Up @@ -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);

Expand Down
1 change: 0 additions & 1 deletion var.c
Expand Up @@ -56,7 +56,6 @@ int main(int argc, char **argv)
}

setup_git_directory();
setup_ident();
val = NULL;

if (strcmp(argv[1], "-l") == 0) {
Expand Down

0 comments on commit 0175476

Please sign in to comment.