diff options
author | Tobias Stoeckmann <tobias@cvs.openbsd.org> | 2008-08-29 09:54:23 +0000 |
---|---|---|
committer | Tobias Stoeckmann <tobias@cvs.openbsd.org> | 2008-08-29 09:54:23 +0000 |
commit | 70f8ff43495eccb24cff14a6387bcc43041808bb (patch) | |
tree | 111e3ea8787439a13bceebea7901cbde68db40b0 /usr.bin/cvs | |
parent | 99c57fa5e069bb01df659d9ce61697f866e523c0 (diff) |
Pre-commit checks (CVSROOT/commitinfo) are run before log message is
requested. Do this for GNU cvs compatibility, too.
ok joris
Diffstat (limited to 'usr.bin/cvs')
-rw-r--r-- | usr.bin/cvs/commit.c | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/usr.bin/cvs/commit.c b/usr.bin/cvs/commit.c index b164f2baad4..f2a86bf08f6 100644 --- a/usr.bin/cvs/commit.c +++ b/usr.bin/cvs/commit.c @@ -1,4 +1,4 @@ -/* $OpenBSD: commit.c,v 1.144 2008/07/08 12:54:13 joris Exp $ */ +/* $OpenBSD: commit.c,v 1.145 2008/08/29 09:54:22 tobias Exp $ */ /* * Copyright (c) 2006 Joris Vink <joris@openbsd.org> * Copyright (c) 2006 Xavier Santolaria <xsa@openbsd.org> @@ -135,15 +135,13 @@ cvs_commit(int argc, char **argv) if (TAILQ_EMPTY(&files_affected)) return (0); - if (logmsg == NULL && cvs_server_active == 0) { - logmsg = cvs_logmsg_create(NULL, &files_added, &files_removed, - &files_modified); - - if (logmsg == NULL) - fatal("This shouldnt happen, honestly!"); - } - if (current_cvsroot->cr_method != CVS_METHOD_LOCAL) { + if (logmsg == NULL) { + logmsg = cvs_logmsg_create(NULL, &files_added, + &files_removed, &files_modified); + if (logmsg == NULL) + fatal("This shouldnt happen, honestly!"); + } cvs_client_connect_to_server(); cr.fileproc = cvs_client_sendfile; @@ -161,9 +159,6 @@ cvs_commit(int argc, char **argv) cvs_client_send_request("ci"); cvs_client_get_responses(); } else { - if (cvs_server_active && logmsg == NULL) - fatal("no log message specified"); - cvs_get_repository_name(".", repo, MAXPATHLEN); line_list = cvs_trigger_getlines(CVS_PATH_COMMITINFO, repo); @@ -187,6 +182,16 @@ cvs_commit(int argc, char **argv) cvs_trigger_freeinfo(&files_info); } + if (cvs_server_active) { + if (logmsg == NULL) + fatal("no log message specified"); + } else if (logmsg == NULL) { + logmsg = cvs_logmsg_create(NULL, &files_added, + &files_removed, &files_modified); + if (logmsg == NULL) + fatal("This shouldnt happen, honestly!"); + } + if (cvs_logmsg_verify(logmsg)) goto end; @@ -217,7 +222,8 @@ cvs_commit(int argc, char **argv) end: cvs_trigger_freeinfo(&files_info); - xfree(logmsg); + if (logmsg != NULL) + xfree(logmsg); return (0); } |