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
Showing 13 changed files with 35 additions and 28 deletions.
1 change: 0 additions & 1 deletion builtin-branch.c
Original file line number Diff line number Diff line change
@@ -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++) {
1 change: 0 additions & 1 deletion builtin-commit-tree.c
Original file line number Diff line number Diff line change
@@ -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)
1 change: 0 additions & 1 deletion builtin-log.c
Original file line number Diff line number Diff line change
@@ -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;
1 change: 0 additions & 1 deletion builtin-update-ref.c
Original file line number Diff line number Diff line change
@@ -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 change: 0 additions & 1 deletion cache.h
Original file line number Diff line number Diff line change
@@ -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);

1 change: 0 additions & 1 deletion fetch-pack.c
Original file line number Diff line number Diff line change
@@ -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)
1 change: 0 additions & 1 deletion http-fetch.c
Original file line number Diff line number Diff line change
@@ -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);

1 change: 0 additions & 1 deletion http-push.c
Original file line number Diff line number Diff line change
@@ -2299,7 +2299,6 @@ int main(int argc, char **argv)
struct ref *ref;

setup_git_directory();
setup_ident();

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

51 changes: 35 additions & 16 deletions ident.c
Original file line number Diff line number Diff line change
@@ -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)
1 change: 0 additions & 1 deletion local-fetch.c
Original file line number Diff line number Diff line change
@@ -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);

1 change: 0 additions & 1 deletion receive-pack.c
Original file line number Diff line number Diff line change
@@ -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)
1 change: 0 additions & 1 deletion ssh-fetch.c
Original file line number Diff line number Diff line change
@@ -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 change: 0 additions & 1 deletion var.c
Original file line number Diff line number Diff line change
@@ -56,7 +56,6 @@ int main(int argc, char **argv)
}

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

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

0 comments on commit 0175476

Please sign in to comment.