path: root/vcs-svn/fast_export.c
diff options
authorDavid Barr <>2011-03-22 22:52:17 (GMT)
committerJonathan Nieder <>2011-03-22 23:01:48 (GMT)
commit7c5817d3ba111bb71a5d7e3c8526e0925f96c92d (patch)
tree27d8e622674ca0e7530cf3cf8dc17b75bb6c9c79 /vcs-svn/fast_export.c
parentdce33c9c18e2987da1fe8ade67d27057bcb80a67 (diff)
vcs-svn: use strbuf for author, UUID, and URL
Use strbufs and strings instead of interned strings for values of rev, dump, and node fields that happen to be strings. After this change, the only remaining string_pool use is for paths in the repo_tree API and internals. Functional change: treat an empty author, UUID, or URL as none at all. So for example, in repos where the first revision has an empty svn:author property, the first rev will be treated as by "nobody" rather than by a person with empty name and email address created by prepending an @ sign to the repository UUID. Signed-off-by: David Barr <> Signed-off-by: Jonathan Nieder <>
Diffstat (limited to 'vcs-svn/fast_export.c')
1 files changed, 7 insertions, 7 deletions
diff --git a/vcs-svn/fast_export.c b/vcs-svn/fast_export.c
index 07a8353..a4d4d99 100644
--- a/vcs-svn/fast_export.c
+++ b/vcs-svn/fast_export.c
@@ -31,24 +31,24 @@ void fast_export_modify(uint32_t depth, uint32_t *path, uint32_t mode,
static char gitsvnline[MAX_GITSVN_LINE_LEN];
-void fast_export_commit(uint32_t revision, uint32_t author, char *log,
- uint32_t uuid, uint32_t url,
+void fast_export_commit(uint32_t revision, const char *author, char *log,
+ const char *uuid, const char *url,
unsigned long timestamp)
if (!log)
log = "";
- if (~uuid && ~url) {
+ if (*uuid && *url) {
snprintf(gitsvnline, MAX_GITSVN_LINE_LEN,
"\n\ngit-svn-id: %s@%"PRIu32" %s\n",
- pool_fetch(url), revision, pool_fetch(uuid));
+ url, revision, uuid);
} else {
*gitsvnline = '\0';
printf("commit refs/heads/master\n");
printf("committer %s <%s@%s> %ld +0000\n",
- ~author ? pool_fetch(author) : "nobody",
- ~author ? pool_fetch(author) : "nobody",
- ~uuid ? pool_fetch(uuid) : "local", timestamp);
+ *author ? author : "nobody",
+ *author ? author : "nobody",
+ *uuid ? uuid : "local", timestamp);
printf("data %"PRIu32"\n%s%s\n",
(uint32_t) (strlen(log) + strlen(gitsvnline)),
log, gitsvnline);