svn commit: r217692 - user/des/svnsup/bin/distill
Dag-Erling Smorgrav
des at FreeBSD.org
Fri Jan 21 13:45:09 UTC 2011
Author: des
Date: Fri Jan 21 13:45:09 2011
New Revision: 217692
URL: http://svn.freebsd.org/changeset/base/217692
Log:
Add support for including additional meta-information in the delta.
Modified:
user/des/svnsup/bin/distill/distill.c
user/des/svnsup/bin/distill/distill.h
user/des/svnsup/bin/distill/log.c
Modified: user/des/svnsup/bin/distill/distill.c
==============================================================================
--- user/des/svnsup/bin/distill/distill.c Fri Jan 21 12:39:28 2011 (r217691)
+++ user/des/svnsup/bin/distill/distill.c Fri Jan 21 13:45:09 2011 (r217692)
@@ -38,8 +38,9 @@
#include "distill.h"
-int debug;
-int verbose;
+int debug; /* print debugging information */
+int extended; /* generated extended delta */
+int verbose; /* show messages from libsvn */
static int
distill(const char *url, unsigned long revision)
@@ -104,7 +105,7 @@ distill(const char *url, unsigned long r
/* get revision metadata */
error = svn_ra_get_log2(ra_session, NULL, revision, revision, 0,
- TRUE, TRUE, FALSE, NULL, log_entry_receiver, NULL, pool);
+ TRUE, TRUE, FALSE, NULL, log_entry_receiver, sd, pool);
SVNSUP_SVN_ERROR(error, "svn_ra_get_log()");
/* replay the requested revision */
@@ -125,7 +126,7 @@ static void
usage(void)
{
- fprintf(stderr, "usage: svnsup-distill [-v] url rev\n");
+ fprintf(stderr, "usage: svnsup-distill [-dev] url rev\n");
exit(1);
}
@@ -138,11 +139,14 @@ main(int argc, char *argv[])
unsigned long rev;
int opt, ret;
- while ((opt = getopt(argc, argv, "dv")) != -1)
+ while ((opt = getopt(argc, argv, "dev")) != -1)
switch (opt) {
case 'd':
++debug;
break;
+ case 'e':
+ ++extended;
+ break;
case 'v':
++verbose;
break;
Modified: user/des/svnsup/bin/distill/distill.h
==============================================================================
--- user/des/svnsup/bin/distill/distill.h Fri Jan 21 12:39:28 2011 (r217691)
+++ user/des/svnsup/bin/distill/distill.h Fri Jan 21 13:45:09 2011 (r217692)
@@ -46,6 +46,7 @@
#include "svnsup/svnsup.h"
extern int debug;
+extern int extended;
extern int verbose;
typedef struct svnsup_where {
Modified: user/des/svnsup/bin/distill/log.c
==============================================================================
--- user/des/svnsup/bin/distill/log.c Fri Jan 21 12:39:28 2011 (r217691)
+++ user/des/svnsup/bin/distill/log.c Fri Jan 21 13:45:09 2011 (r217692)
@@ -40,40 +40,24 @@ log_entry_receiver(void *baton,
svn_log_entry_t *log_entry,
apr_pool_t *pool)
{
-#if 0
- apr_hash_index_t *hash_index;
- const void *key;
- void *value;
- apr_ssize_t keylen;
-#else
+ static const char *revprops[] = { "svn:author", "svn:date", "svn:log", NULL };
+ svnsup_delta_t sd = (svnsup_delta_t)baton;
svn_string_t *value;
-#endif
+ const char **p;
+ int ret;
(void)pool;
- (void)baton;
SVNSUP_DEBUG("%s(r%lu)\n", __func__, (long)log_entry->revision);
- if (!debug)
+ if (!extended)
return (SVN_NO_ERROR);
- fprintf(stderr, "revision properties:\n");
-#if 0
- for (hash_index = apr_hash_first(pool, log_entry->revprops);
- hash_index != NULL; hash_index = apr_hash_next(hash_index)) {
- apr_hash_this(hash_index, &key, &keylen, &value);
- fprintf(stderr, " %s: %s\n", (const char *)key,
- ((svn_string_t *)value)->data);
- }
-#else
- do {
- const char *props[] = { "svn:author", "svn:date", NULL };
- const char **p;
- for (p = props; *p != NULL; ++p) {
- value = apr_hash_get(log_entry->revprops, *p, APR_HASH_KEY_STRING);
- SVNSUP_ASSERT(value != NULL, "revision has no %s property", *p);
- fprintf(stderr, " %s: %s\n", *p, value->data);
+ for (p = revprops; *p != NULL; ++p) {
+ value = apr_hash_get(log_entry->revprops, *p, APR_HASH_KEY_STRING);
+ if (value != NULL) {
+ ret = svnsup_delta_meta(sd, *p, "%s", value->data);
+ SVNSUP_SVNSUP_ERROR(ret, "svnsup_delta_meta()");
}
- } while (0);
-#endif
+ }
return (SVN_NO_ERROR);
}
More information about the svn-src-user
mailing list