Date: Fri, 21 Jan 2011 13:45:09 +0000 (UTC) From: Dag-Erling Smorgrav <des@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r217692 - user/des/svnsup/bin/distill Message-ID: <201101211345.p0LDj9Ir054069@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201101211345.p0LDj9Ir054069>