Skip site navigation (1)Skip section navigation (2)
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>