Revision: 76501
http://sourceforge.net/p/brlcad/code/76501
Author: starseeker
Date: 2020-07-25 18:59:50 +0000 (Sat, 25 Jul 2020)
Log Message:
-----------
Want this process ordered by commit number, for easier resuming
Modified Paths:
--------------
brlcad/trunk/misc/repoconv/verify.cpp
Modified: brlcad/trunk/misc/repoconv/verify.cpp
===================================================================
--- brlcad/trunk/misc/repoconv/verify.cpp 2020-07-25 17:45:40 UTC (rev
76500)
+++ brlcad/trunk/misc/repoconv/verify.cpp 2020-07-25 18:59:50 UTC (rev
76501)
@@ -6,7 +6,14 @@
#include <regex>
#include "cxxopts.hpp"
-int verify_repos(std::string rev, std::string branch_svn, std::string sha1,
std::string git_repo, std::string svn_repo)
+class cmp_info {
+ public:
+ std::string rev;
+ std::string branch_svn;
+ std::string sha1;
+};
+
+int verify_repos(cmp_info &info, std::string git_repo, std::string svn_repo)
{
int ret = 0;
std::string git_fi;
@@ -16,18 +23,18 @@
branch_mappings[std::string("trunk")] = std::string("master");
branch_mappings[std::string("dmtogl-branch")] = std::string("dmtogl");
- if (branch_mappings.find(branch_svn) != branch_mappings.end()) {
- branch_git = branch_mappings[branch_svn];
+ if (branch_mappings.find(info.branch_svn) != branch_mappings.end()) {
+ branch_git = branch_mappings[info.branch_svn];
}
- std::cout << "Verifying r" << rev << ", branch " << branch_svn << "\n";
+ std::cout << "Verifying r" << info.rev << ", branch " << info.branch_svn
<< "\n";
// First, check out the correct SVN tree
std::string svn_cmd;
- if (branch_svn == std::string("trunk")) {
- svn_cmd = std::string("svn co -q -r") + rev + std::string(" file://") +
svn_repo + std::string("/brlcad/trunk brlcad_svn_checkout");
+ if (info.branch_svn == std::string("trunk")) {
+ svn_cmd = std::string("svn co -q -r") + info.rev + std::string("
file://") + svn_repo + std::string("/brlcad/trunk brlcad_svn_checkout");
} else {
- svn_cmd = std::string("svn co -q file://") + svn_repo +
std::string("/brlcad/branches/") + branch_svn + std::string("@") + rev +
std::string(" brlcad_svn_checkout");
+ svn_cmd = std::string("svn co -q file://") + svn_repo +
std::string("/brlcad/branches/") + info.branch_svn + std::string("@") +
info.rev + std::string(" brlcad_svn_checkout");
}
std::string cleanup_cmd = std::string("rm -rf brlcad_svn_checkout");
@@ -51,7 +58,7 @@
}
// Have SVN, get Git
- std::string git_checkout = std::string("cd ") + git_repo + std::string("
&& git checkout ") + sha1 + std::string(" && cd ..");
+ std::string git_checkout = std::string("cd ") + git_repo + std::string("
&& git checkout ") + info.sha1 + std::string(" && cd ..");
if (std::system(git_checkout.c_str())) {
std::cerr << "git checkout failed!\n";
exit(1);
@@ -61,7 +68,7 @@
std::string repo_diff = std::string("diff --no-dereference -qrw -I '\\$Id'
-I '\\$Revision' -I'\\$Header' -I'$Source' -I'$Date' -I'$Log' -I'$Locker'
--exclude \".cvsignore\" --exclude \".gitignore\" --exclude \"terra.dsp\"
--exclude \".git\" --exclude \".svn\" --exclude \"saxon65.jar\" --exclude
\"xalan27.jar\" brlcad_svn_checkout ") + git_repo;
int diff_ret = std::system(repo_diff.c_str());
if (diff_ret) {
- std::cout << "diff test failed, r" << rev << ", branch " << branch_svn
<< "\n";
+ std::cout << "diff test failed, r" << info.rev << ", branch " <<
info.branch_svn << "\n";
exit(1);
}
@@ -127,12 +134,18 @@
std::cerr << "Could not open sha1 file: commits.txt\n";
exit(-1);
}
+
+
+ std::map<int, cmp_info> rev_to_cmp;
+
std::string sha1;
+ std::cout << "Building test pairing information...\n";
while (std::getline(infile, sha1)) {
// Skip empty lines
if (!sha1.length()) {
continue;
}
+
// Get commit msg
std::string get_msg = std::string("cd ") + git_repo + std::string(" &&
git log -1 " + sha1 + " --pretty=format:\"%B\" > ../msg.txt && cd ..");
ret = std::system(get_msg.c_str());
@@ -167,11 +180,10 @@
std::regex bdelete_regex(".*svn branch delete.*");
std::smatch bd_match;
if (std::regex_search(msg, bd_match, bdelete_regex)) {
- std::cerr << "branch delete commit, skipping verification\n";
+ std::cerr << rev << " is a branch delete commit, skipping
verification\n";
continue;
}
-
std::string branch("trunk");
std::regex branch_regex(".*svn:branch:([a-zA-Z0-9_-]+).*");
std::smatch bmatch;
@@ -179,14 +191,26 @@
branch = std::string(bmatch[1]);
}
- std::cout << "Branch " << branch << ", rev: " << rev << "\n";
- if (std::stol(rev) < 29866) {
- std::cout << "Revisions from the CVS era are problematic, skipping
" << rev << "\n";
- continue;
+ cmp_info info;
+ info.rev = rev;
+ info.branch_svn = branch;
+ info.sha1 = sha1;
+ rev_to_cmp[std::stol(rev)] = info;
+
+ }
+
+ std::cerr << "Starting verifications...\n";
+
+ std::map<int, cmp_info>::reverse_iterator r_it;
+ for(r_it = rev_to_cmp.rbegin(); r_it != rev_to_cmp.rend(); r_it++) {
+
+ if (std::stol(r_it->second.rev) < 29866) {
+ std::cout << "Revisions from the CVS era are problematic, stopping
here.\n";
+ exit(0);
}
- verify_repos(rev, branch, sha1, git_repo, svn_repo);
+
+ verify_repos(r_it->second, git_repo, svn_repo);
}
-
}
// Local Variables:
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