summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 903b45f)
raw | patch | inline | side by side (parent: 903b45f)
author | Junio C Hamano <junkio@cox.net> | |
Sun, 28 Jan 2007 08:50:53 +0000 (00:50 -0800) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Sun, 28 Jan 2007 09:58:50 +0000 (01:58 -0800) |
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>
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>
13 files changed:
builtin-branch.c | patch | blob | history | |
builtin-commit-tree.c | patch | blob | history | |
builtin-log.c | patch | blob | history | |
builtin-update-ref.c | patch | blob | history | |
cache.h | patch | blob | history | |
fetch-pack.c | patch | blob | history | |
http-fetch.c | patch | blob | history | |
http-push.c | patch | blob | history | |
ident.c | patch | blob | history | |
local-fetch.c | patch | blob | history | |
receive-pack.c | patch | blob | history | |
ssh-fetch.c | patch | blob | history | |
var.c | patch | blob | history |
diff --git a/builtin-branch.c b/builtin-branch.c
index 25ffa5491c62ea047e5fad78e60b8fa7e4e6a2fe..d60690bb084ef83ce99a56453ae9dfa56da12807 100644 (file)
--- a/builtin-branch.c
+++ b/builtin-branch.c
int kinds = REF_LOCAL_BRANCH;
int i;
- setup_ident();
git_config(git_branch_config);
for (i = 1; i < argc; i++) {
diff --git a/builtin-commit-tree.c b/builtin-commit-tree.c
index 0651e5927e836d22246d84020576ccb3069b6c5d..2a818a0a2c218b5b98d82ab0d8be0c65c1edf9c0 100644 (file)
--- a/builtin-commit-tree.c
+++ b/builtin-commit-tree.c
unsigned int size;
int encoding_is_utf8;
- setup_ident();
git_config(git_default_config);
if (argc < 2)
diff --git a/builtin-log.c b/builtin-log.c
index 56acc137f0bf73d30961da7350200e1c6f3b48bf..982d871887a6cd5f3e751a8c650ef95e8332b186 100644 (file)
--- a/builtin-log.c
+++ b/builtin-log.c
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;
diff --git a/builtin-update-ref.c b/builtin-update-ref.c
index b34e5987dd256e0b7d9fae46fe89f66dd18ad91f..1461937cb987ec18a0b91e7c1084063c7174f3ae 100644 (file)
--- a/builtin-update-ref.c
+++ b/builtin-update-ref.c
int i, delete;
delete = 0;
- setup_ident();
git_config(git_default_config);
for (i = 1; i < argc; i++) {
index 9486132ac53f7afd21ba73551d12270384a71ba6..9873ee97d93f7e4b6809262469f228c53339d080 100644 (file)
--- a/cache.h
+++ b/cache.h
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);
diff --git a/fetch-pack.c b/fetch-pack.c
index 83a1d7b319828302582518ef258f931a105e3201..c7871067640f65d416500191792747cb451ffd32 100644 (file)
--- a/fetch-pack.c
+++ b/fetch-pack.c
struct stat st;
setup_git_directory();
- setup_ident();
git_config(fetch_pack_config);
if (0 <= transfer_unpack_limit)
diff --git a/http-fetch.c b/http-fetch.c
index 67dfb0a0337b63bd4c1ef5b9d3228735bf66f1b3..efd494a47fb961f4f8425d52bd10e37e5ffdab51 100644 (file)
--- a/http-fetch.c
+++ b/http-fetch.c
int arg = 1;
int rc = 0;
- setup_ident();
setup_git_directory();
git_config(git_default_config);
diff --git a/http-push.c b/http-push.c
index 0a15f5378288992826e7042a3b9dff92fef4c080..b128c0146c6f1d8ca69d802d15d6bc778e5780a6 100644 (file)
--- a/http-push.c
+++ b/http-push.c
struct ref *ref;
setup_git_directory();
- setup_ident();
remote = xcalloc(sizeof(*remote), 1);
index f9677905e5aa64c94d912ea90f51d10a7f34bd39..6de7eeae4d47834b0f680be38cde59071f380536 100644 (file)
--- a/ident.c
+++ b/ident.c
}
-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);
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)
char date[50];
int i;
+ setup_ident();
if (!name)
name = git_default_name;
if (!email)
diff --git a/local-fetch.c b/local-fetch.c
index cf99cb72dd48f65a8c3dd1606b77334f79afab8f..7cfe8b3587c10bf0791c066a72482771e7daae77 100644 (file)
--- a/local-fetch.c
+++ b/local-fetch.c
char **commit_id;
int arg = 1;
- setup_ident();
setup_git_directory();
git_config(git_default_config);
diff --git a/receive-pack.c b/receive-pack.c
index 7d263262d3b593b645c73b37b63356bfdea42d7f..7311c822dd3af2c6a1cd8da47184428d5b627b3e 100644 (file)
--- a/receive-pack.c
+++ b/receive-pack.c
if (is_repository_shallow())
die("attempt to push into a shallow repository");
- setup_ident();
git_config(receive_pack_config);
if (0 <= transfer_unpack_limit)
diff --git a/ssh-fetch.c b/ssh-fetch.c
index 4c172b68246eaa41f9f6630c481e6a7aa5ee295a..bdf51a7a1437efd49fb5c642ab9294c7f43698de 100644 (file)
--- a/ssh-fetch.c
+++ b/ssh-fetch.c
prog = getenv("GIT_SSH_PUSH");
if (!prog) prog = "git-ssh-upload";
- setup_ident();
setup_git_directory();
git_config(git_default_config);