From owner-svn-src-user@FreeBSD.ORG Fri Jan 21 13:45:09 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5C2DC1065672; Fri, 21 Jan 2011 13:45:09 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4BA448FC13; Fri, 21 Jan 2011 13:45:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id p0LDj9V2054073; Fri, 21 Jan 2011 13:45:09 GMT (envelope-from des@svn.freebsd.org) Received: (from des@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id p0LDj9Ir054069; Fri, 21 Jan 2011 13:45:09 GMT (envelope-from des@svn.freebsd.org) Message-Id: <201101211345.p0LDj9Ir054069@svn.freebsd.org> From: Dag-Erling Smorgrav Date: Fri, 21 Jan 2011 13:45:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r217692 - user/des/svnsup/bin/distill X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Jan 2011 13:45:09 -0000 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); }