Revision: 76490
http://sourceforge.net/p/brlcad/code/76490
Author: starseeker
Date: 2020-07-25 11:11:21 +0000 (Sat, 25 Jul 2020)
Log Message:
-----------
Match the notes formatting to that of the main BRL-CAD conversion so we can
also post-process these repositories to remove the notes.
Modified Paths:
--------------
brlcad/trunk/misc/repoconv/svn2git/svn-fast-export/CMakeLists.txt
brlcad/trunk/misc/repoconv/svn2git/svn-fast-export/repository.cpp
brlcad/trunk/misc/repoconv/svn2git/svn-fast-export/repository.h
brlcad/trunk/misc/repoconv/svn2git/svn-fast-export/svn.cpp
Modified: brlcad/trunk/misc/repoconv/svn2git/svn-fast-export/CMakeLists.txt
===================================================================
--- brlcad/trunk/misc/repoconv/svn2git/svn-fast-export/CMakeLists.txt
2020-07-25 10:38:15 UTC (rev 76489)
+++ brlcad/trunk/misc/repoconv/svn2git/svn-fast-export/CMakeLists.txt
2020-07-25 11:11:21 UTC (rev 76490)
@@ -16,6 +16,7 @@
)
add_definitions(-fPIC)
+add_definitions(-g)
include(CheckFunctionExists)
set(CMAKE_REQUIRED_INCLUDES ${SUBVERSION_INCLUDE_DIRS})
Modified: brlcad/trunk/misc/repoconv/svn2git/svn-fast-export/repository.cpp
===================================================================
--- brlcad/trunk/misc/repoconv/svn2git/svn-fast-export/repository.cpp
2020-07-25 10:38:15 UTC (rev 76489)
+++ brlcad/trunk/misc/repoconv/svn2git/svn-fast-export/repository.cpp
2020-07-25 11:11:21 UTC (rev 76490)
@@ -37,6 +37,7 @@
{
QString supportingRef;
QByteArray svnprefix;
+ QByteArray svnauthor;
QByteArray author;
QByteArray log;
uint dt;
@@ -50,6 +51,7 @@
FastImportRepository *repository;
QByteArray branch;
QByteArray svnprefix;
+ QByteArray svnauthor;
QByteArray author;
QByteArray log;
uint datetime;
@@ -65,6 +67,7 @@
~Transaction();
int commit();
+ void setSVNAuthor(const QByteArray &author);
void setAuthor(const QByteArray &author);
void setDateTime(uint dt);
void setLog(const QByteArray &log);
@@ -91,7 +94,7 @@
Repository::Transaction *newTransaction(const QString &branch, const
QString &svnprefix, int revnum);
void createAnnotatedTag(const QString &name, const QString &svnprefix, int
revnum,
- const QByteArray &author, uint dt,
+ const QByteArray &svnauthor, const QByteArray
&author, uint dt,
const QByteArray &log);
void finalizeTags();
void saveBranchNotes();
@@ -168,6 +171,7 @@
~Transaction() { delete txn; }
int commit() { return txn->commit(); }
+ void setSVNAuthor(const QByteArray &svnauthor) {
txn->setSVNAuthor(svnauthor); }
void setAuthor(const QByteArray &author) { txn->setAuthor(author); }
void setDateTime(uint dt) { txn->setDateTime(dt); }
void setLog(const QByteArray &log) { txn->setLog(log); }
@@ -206,9 +210,9 @@
}
void createAnnotatedTag(const QString &name, const QString &svnprefix, int
revnum,
- const QByteArray &author, uint dt,
+ const QByteArray &svnauthor, const QByteArray
&author, uint dt,
const QByteArray &log)
- { repo->createAnnotatedTag(name, svnprefix, revnum, author, dt, log); }
+ { repo->createAnnotatedTag(name, svnprefix, revnum, svnauthor, author, dt,
log); }
void finalizeTags() { /* loop that called this will invoke it on 'repo'
too */ }
void saveBranchNotes() { /* loop that called this will invoke it on 'repo'
too */ }
void commit() { repo->commit(); }
@@ -754,7 +758,7 @@
}
void FastImportRepository::createAnnotatedTag(const QString &ref, const
QString &svnprefix,
- int revnum,
+ int revnum, const QByteArray
&svnauthor,
const QByteArray &author, uint
dt,
const QByteArray &log)
{
@@ -771,6 +775,7 @@
tag.supportingRef = ref;
tag.svnprefix = svnprefix.toUtf8();
tag.revnum = revnum;
+ tag.svnauthor = svnauthor;
tag.author = author;
tag.log = log;
tag.dt = dt;
@@ -799,7 +804,7 @@
if (!message.endsWith('\n'))
message += '\n';
if (CommandLineParser::instance()->contains("add-metadata"))
- message += "\n" + formatMetadataMessage(tag.svnprefix, tag.revnum,
tagName.toUtf8());
+ message += "\n" + formatMetadataMessage(tag.svnauthor, tag.revnum,
tagName.toUtf8());
{
QByteArray branchRef = tag.supportingRef.toUtf8();
@@ -823,9 +828,10 @@
// easy way to attach a note to the tag itself with fast-import.
if (CommandLineParser::instance()->contains("add-metadata-notes")) {
Repository::Transaction *txn = newTransaction(tag.supportingRef,
tag.svnprefix, tag.revnum);
+ txn->setSVNAuthor(tag.svnauthor);
txn->setAuthor(tag.author);
txn->setDateTime(tag.dt);
- bool written =
txn->commitNote(formatMetadataMessage(tag.svnprefix, tag.revnum,
tagName.toUtf8()), true);
+ bool written =
txn->commitNote(formatMetadataMessage(tag.svnauthor, tag.revnum,
tagName.toUtf8()), true);
delete txn;
if (written && !fastImport.waitForBytesWritten(-1))
@@ -906,11 +912,9 @@
}
}
-QByteArray Repository::formatMetadataMessage(const QByteArray &svnprefix, int
revnum, const QByteArray &tag)
+QByteArray Repository::formatMetadataMessage(const QByteArray &author, int
revnum, const QByteArray &tag)
{
- QByteArray msg = "svn path=" + svnprefix + "; revision=" +
QByteArray::number(revnum);
- if (!tag.isEmpty())
- msg += "; tag=" + tag;
+ QByteArray msg = "svn:account:" + author + "\nsvn:revision:" +
QByteArray::number(revnum);
msg += "\n";
return msg;
}
@@ -951,6 +955,11 @@
repository->forgetTransaction(this);
}
+void FastImportRepository::Transaction::setSVNAuthor(const QByteArray &a)
+{
+ svnauthor = a;
+}
+
void FastImportRepository::Transaction::setAuthor(const QByteArray &a)
{
author = a;
@@ -1112,7 +1121,7 @@
if (!message.endsWith('\n'))
message += '\n';
if (CommandLineParser::instance()->contains("add-metadata"))
- message += "\n" + Repository::formatMetadataMessage(svnprefix, revnum);
+ message += "\n" + Repository::formatMetadataMessage(svnauthor, revnum);
// Call external message filter if provided
message = repository->msgFilter(message);
@@ -1197,7 +1206,7 @@
// Commit metadata note if requested
if (CommandLineParser::instance()->contains("add-metadata-notes"))
- commitNote(Repository::formatMetadataMessage(svnprefix, revnum),
false);
+ commitNote(Repository::formatMetadataMessage(svnauthor, revnum),
false);
while (repository->fastImport.bytesToWrite())
if (!repository->fastImport.waitForBytesWritten(-1))
Modified: brlcad/trunk/misc/repoconv/svn2git/svn-fast-export/repository.h
===================================================================
--- brlcad/trunk/misc/repoconv/svn2git/svn-fast-export/repository.h
2020-07-25 10:38:15 UTC (rev 76489)
+++ brlcad/trunk/misc/repoconv/svn2git/svn-fast-export/repository.h
2020-07-25 11:11:21 UTC (rev 76490)
@@ -103,6 +103,7 @@
virtual ~Transaction() {}
virtual int commit() = 0;
+ virtual void setSVNAuthor(const QByteArray &author) = 0;
virtual void setAuthor(const QByteArray &author) = 0;
virtual void setDateTime(uint dt) = 0;
virtual void setLog(const QByteArray &log) = 0;
@@ -128,7 +129,7 @@
virtual Repository::Transaction *newTransaction(const QString &branch,
const QString &svnprefix, int revnum) = 0;
virtual void createAnnotatedTag(const QString &name, const QString
&svnprefix, int revnum,
- const QByteArray &author, uint dt,
+ const QByteArray &svnauthor, const
QByteArray &author, uint dt,
const QByteArray &log) = 0;
virtual void finalizeTags() = 0;
virtual void saveBranchNotes() = 0;
Modified: brlcad/trunk/misc/repoconv/svn2git/svn-fast-export/svn.cpp
===================================================================
--- brlcad/trunk/misc/repoconv/svn2git/svn-fast-export/svn.cpp 2020-07-25
10:38:15 UTC (rev 76489)
+++ brlcad/trunk/misc/repoconv/svn2git/svn-fast-export/svn.cpp 2020-07-25
11:11:21 UTC (rev 76490)
@@ -343,6 +343,7 @@
int revnum;
// must call fetchRevProps first:
+ QByteArray svnauthor;
QByteArray authorident;
QByteArray log;
uint epoch;
@@ -517,7 +518,7 @@
apr_hash_t *revprops;
SVN_ERR(svn_fs_revision_proplist(&revprops, fs, revnum, pool));
- svn_string_t *svnauthor = (svn_string_t*)apr_hash_get(revprops,
"svn:author", APR_HASH_KEY_STRING);
+ svn_string_t *lsvnauthor = (svn_string_t*)apr_hash_get(revprops,
"svn:author", APR_HASH_KEY_STRING);
svn_string_t *svndate = (svn_string_t*)apr_hash_get(revprops, "svn:date",
APR_HASH_KEY_STRING);
svn_string_t *svnlog = (svn_string_t*)apr_hash_get(revprops, "svn:log",
APR_HASH_KEY_STRING);
@@ -525,13 +526,14 @@
log = svnlog->data;
else
log.clear();
- authorident = svnauthor ? identities.value(svnauthor->data) : QByteArray();
+ authorident = lsvnauthor ? identities.value(lsvnauthor->data) :
QByteArray();
+ svnauthor = lsvnauthor ? QByteArray(lsvnauthor->data) : QByteArray();
epoch = svndate ? get_epoch(svndate->data) : 0;
if (authorident.isEmpty()) {
- if (!svnauthor || svn_string_isempty(svnauthor))
+ if (!lsvnauthor || svn_string_isempty(lsvnauthor))
authorident = "nobody <nobody@localhost>";
else
- authorident = svnauthor->data + QByteArray(" <") + svnauthor->data
+
+ authorident = lsvnauthor->data + QByteArray(" <") +
lsvnauthor->data +
QByteArray("@") + userdomain.toUtf8() + QByteArray(">");
}
propsFetched = true;
@@ -548,6 +550,7 @@
}
foreach (Repository::Transaction *txn, transactions) {
+ txn->setSVNAuthor(svnauthor);
txn->setAuthor(authorident);
txn->setDateTime(epoch);
txn->setLog(log);
@@ -830,7 +833,7 @@
if (rule.annotate) {
// create an annotated tag
fetchRevProps();
- repo->createAnnotatedTag(branch, svnprefix, revnum,
authorident,
+ repo->createAnnotatedTag(branch, svnprefix, revnum, svnauthor,
authorident,
epoch, log);
}
return EXIT_SUCCESS;
@@ -940,7 +943,7 @@
if (rule.annotate) {
// create an annotated tag
fetchRevProps();
- repo->createAnnotatedTag(branch, svnprefix, revnum, authorident,
+ repo->createAnnotatedTag(branch, svnprefix, revnum, svnauthor,
authorident,
epoch, log);
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits