Hi,
I need a way to add some text for every commit message, typing it in by hand is
quite error-prone. I'm working on same repository from various hosts with the
same user name, and I need a way to tell on what machine the commit was made.
I've made a patch for libsvn_client that adds two environment variables:
- SVN_LOG_PREFIX - appends the text before commit message
- SVN_LOG_SUFFIX - appends the text after commit message
For example:
nelchael@nelchael testing-repo$ export SVN_LOG_PREFIX='Prefix:
======================'
nelchael@nelchael testing-repo$ export SVN_LOG_SUFFIX='Suffix:
======================'
nelchael@nelchael testing-repo$ ls
total 0
nelchael@nelchael testing-repo$ touch 1 2 3
nelchael@nelchael testing-repo$ svn add *
A 1
A 2
A 3
nelchael@nelchael testing-repo$ svn commit -m 'Testing'
Adding 1
Adding 2
Adding 3
Transmitting file data ...
Committed revision 11.
nelchael@nelchael testing-repo$ svn up
At revision 11.
nelchael@nelchael testing-repo$ svn log .
------------------------------------------------------------------------
r11 | nelchael | 2007-03-16 12:55:47 +0100 (Fri, 16 Mar 2007) | 3 lines
Prefix: ======================
Testing
Suffix: ======================
------------------------------------------------------------------------
<cut...>
That way it's possible to do something like this in ~/.bashrc:
export SVN_LOG_SUFFIX="From $(hostname)"
Attached patch adds this feature.
The change has to be done in libsvn_client because log_msg can go in by two
ways: -m on command line (handled in svn) or using $EDITOR (handled in
libsvn_client).
--
Krzysiek Pawlik <nelchael at gentoo.org> key id: 0xBC555551
desktop-misc, desktop-dock, x86, java, apache, ppc...
diff -ur subversion-1.4.3.vanilla/subversion/libsvn_client/commit.c subversion-1.4.3/subversion/libsvn_client/commit.c
--- subversion-1.4.3.vanilla/subversion/libsvn_client/commit.c 2007-03-16 12:06:33.000000000 +0100
+++ subversion-1.4.3/subversion/libsvn_client/commit.c 2007-03-16 12:57:51.000000000 +0100
@@ -1480,6 +1480,22 @@
else
log_msg = "";
+ char *log_add = NULL;
+ if (apr_env_get(&log_add, "SVN_LOG_PREFIX", pool) == APR_SUCCESS)
+ if (log_add != NULL) {
+ size_t len = strlen(log_msg) + strlen(log_add) + 2;
+ char *new_message = (char*)apr_pcalloc(pool, len);
+ apr_snprintf(new_message, len, "%s\n%s", log_add, log_msg);
+ log_msg = new_message;
+ }
+ if (apr_env_get(&log_add, "SVN_LOG_SUFFIX", pool) == APR_SUCCESS)
+ if (log_add != NULL) {
+ size_t len = strlen(log_msg) + strlen(log_add) + 2;
+ char *new_message = (char*)apr_pcalloc(pool, len);
+ apr_snprintf(new_message, len, "%s\n%s", log_msg, log_add);
+ log_msg = new_message;
+ }
+
/* Sort and condense our COMMIT_ITEMS. */
if ((cmt_err = svn_client__condense_commit_items(&base_url,
commit_items,
Received on Fri Mar 16 13:38:48 2007