Revision: 78361
http://sourceforge.net/p/brlcad/code/78361
Author: brlcad
Date: 2021-03-03 06:01:01 +0000 (Wed, 03 Mar 2021)
Log Message:
-----------
check in a slew more scripting and notes/stats on the breakdown.
Modified Paths:
--------------
brlcad/trunk/misc/repoconv/REPO.NOTES
Modified: brlcad/trunk/misc/repoconv/REPO.NOTES
===================================================================
--- brlcad/trunk/misc/repoconv/REPO.NOTES 2021-03-03 04:14:18 UTC (rev
78360)
+++ brlcad/trunk/misc/repoconv/REPO.NOTES 2021-03-03 06:01:01 UTC (rev
78361)
@@ -10,7 +10,12 @@
git --follow . > git.follow.log
+GET THE GIT LOG
git log --all > git.log
+
+TRANSFORM GIT LOG INTO ONE PER LINE
+cat git.log | tr '\n' ' ' | perl -0777 -pe 's/(commit [[:alnum:]]{40}
Author:)/\n\1/g' | perl -0777 -pe 's/(commit [[:alnum:]]{40} Merge:)/\n\1/g' >
git.1.log
+
agua:brlcad_conv11 morrison$ grep -A2 svn:revision git.log | grep -v account |
perl -0777 -p -e 's/\n [cs]v[sn]:branch:/ branch /g' | perl -0777 -p -e
's/--\n//g' | grep trunk | awk '{print $1}' | cut -f3 -d: | sort -n >
git.commits
wc
67967 67967 397262
@@ -30,17 +35,34 @@
GETTING EMPTY LOG MESSAGES
grep -C4 "empty log message" git.log | tr '\n' ';' | perl -0777 -p -e
's/Author:/\nAuthor:/g' | grep branch:trunk|grep -v ':revision:' |less
-GET ALL SVN LOG MESSAGES FOR MISSING COMMITS
+GET SVN LOG MESSAGES (FOR MISSING COMMITS)
cat commits.missing | while read i ; do echo $i ; svn log -r$i ~/brlcad.trunk
; done >> commits.missing.logs
cat commits.missing2 | while read i ; do if ! test -f diffs.svn.sans/$i.log ;
then svn log -c$i ~/brlcad.trunk | tee diffs.svn.sans/$i.log ; fi ; done
-for i in diffs.svn.sans/*.log ; do echo $i ; if ! test -f ${i}.sans.log ; then
tail +4 $i | perl -0777 -pe 's/[-[:space:]]*//g' > ${i}.sans.log ; fi ; done
+for i in diffs.svn.sans/*.log ; do echo $i ; if ! test -f ${i}.log ; then tail
+4 $i | perl -0777 -pe 's/[-[:space:]]*//g' > ${i}.log ; fi ; done
+
+GET SVN FILES CHANGED (FOR MISSING COMMITS)
cat commits.missing2 | while read i ; do echo $i ; if ! test -f
diffs.svn.sans/$i.files ; then svn diff --ignore-properties -c$i ~/brlcad.trunk
| grep '^[-+][-+][-+] ' | grep -v "nonexistent" | awk '{print $1, $2}' | sed
's/\/Users\/morrison\/brlcad.trunk\///g' | sort > diffs.svn.sans/$i.files ; fi
; done
+GET SVN DIFFS (FOR MISSING COMMITS)
+cat commits.missing2 | while read i ; do echo $i ; if ! test -f
diffs.svn.sans/$i.diff ; then svn diff --ignore-properties -c$i
file:///Users/morrison/brlcad.github/svn.sfmirror/code | grep "^[-+][^-+]" |
sort | LC_ALL=C sed 's/[[:space:]]*//g' > diffs.svn.sans/$i.diff ; fi ; done
+
+
GET ALL GIT LOG MESSAGES
-grep "^commit " git.log | awk '{print $2}' | while read i ; do echo -n "$i " ;
if ! test -f diffs.git.sans/${i}.log ; then git log --format="%B" ${i}^! | tee
diffs.git.sans/${i}.log ; fi ; done
-for i in diffs.git.sans/*.log ; do echo $i ; if ! test -f ${i}.sans.log ; then
cat $i | grep -v '^cvs:' | grep -v '^svn:' | perl -0777 -pe
's/[-[:space:]]*//g' > ${i}.sans.log ; fi ; done
-grep "^commit " git.log | awk '{print $2}' | while read i ; do echo -n "$i " ;
if ! test -f diffs.git.sans/${i}.files ; then git show ${i}^! | grep
'^[-+][-+][-+] ' | grep -v '/dev/null' | sed 's/--- a\//--- /g' | sed 's/+++
b\//+++ /g' | sort > diffs.git.sans/${i}.files ; fi ; done
+grep "^commit " git.log | awk '{print $2}' | while read i ; do echo "$i " ; if
! test -f diffs.git.sans/${i}.log ; then git log --format="%B" ${i}^! | tee
diffs.git.sans/${i}.log ; fi ; done
+for i in diffs.git.sans/*.log ; do echo $i ; if ! test -f ${i}.log ; then cat
$i | grep -v '^cvs:' | grep -v '^svn:' | perl -0777 -pe 's/[-[:space:]]*//g' >
${i}.log ; fi ; done
+GET ALL GIT FILES CHANGED
+grep "^commit " git.log | awk '{print $2}' | while read i ; do if ! test -f
diffs.git.sans/${i}.files ; then echo $i ; git show ${i}^! | grep
'^[-+][-+][-+] ' | grep -v '/dev/null' | sed 's/--- a\//--- /g' | sed 's/+++
b\//+++ /g' | sort > diffs.git.sans/${i}.files ; fi ; done
+
+GET ALL GIT DIFFS
+grep "^commit " git.log | awk '{print $2}' | while read i ; do echo $i ; git
diff ${i}^! | grep "^[-+][^-+]" | sort | LC_ALL=C sed 's/[[:space:]]*//g' |
sort > diffs.git.sans/${i}.diff ; done
+
+for i in `grep "^commit " git.log | awk '{print $2}'` ; do p="`cat parallel`"
; if test $p -lt 8 ; then git diff ${i}^! | grep "^[-+][^-+]" | sort | LC_ALL=C
sed 's/[[:space:]]*//g' | sort > diffs.git.sans/${i}.diff.new & ; else echo 0 >
parallel ; git diff ${i}^! | grep "^[-+][^-+]" | sort | LC_ALL=C sed
's/[[:space:]]*//g' | sort > diffs.git.sans/${i}.diff.new ; fi ; done
+
+
+CALCULATE GIT MD5
+for i in `grep "^commit " git.log | cut -f2 -d' '` ; do echo $i log `md5
diffs.git.sans/$i.log` ; echo $i files `md5 diffs.git.sans/$i.files` ; echo $i
diff `md5 diffs.git.sans/$i.diff` ; done | tee git.md5
+
CATEGORIZE THE TYPES OF COMMITS THAT COULDN'T BE FOUND
cat commits.missing | while read i ; do echo -n "$i ... " ; log="`svn log -r$i
~/brlcad.trunk`" ; if test "x`echo $log | grep \"New repository\"`" = "x" -a
"x`echo $log | grep \"Initial revision\"`" = "x" ; then if test "x`echo $log |
grep \"empty log message\"`" = "x" ; then echo "kept" ; echo "$log" >>
commits.missing.logs.kept ; else echo "empty" ; echo "$log" >>
commits.missing.logs.empty ; fi ; else echo "skipped" ; fi ; done >
commits.missing.transcript
cat commits.missing2 | while read i ; do echo -n "$i ... " ; log="`cat
diffs.svn.sans/$i.log`" ; if test "x`echo $log | grep \"New repository\"`" =
"x" -a "x`echo $log | grep \"Initial revision\"`" = "x" ; then if test "x`echo
$log | grep \"empty log message\"`" = "x" ; then echo "MISSING" ; echo "$log"
>> commits.missing.logs.kept2 ; else echo "EMPTY" ; echo "$log" >>
commits.missing.logs.empty2 ; fi ; else echo "SKIP" ; fi ; done | tee
commits.missing.transcript2
@@ -47,12 +69,8 @@
CAPTURE SVN MD5 SUMS OF DIFF, LOG, AND FILES
cat commits.missing | while read i ; do echo -n "$i " ; log="`svn diff
--ignore-properties -c$i ~/brlcad.trunk | grep \"^[-+][^-+]\"`" ; echo -n
"`echo \"$log\"|wc | awk '{print $1}'` " ; echo "$log" > diffs/${i}.diff ; echo
"$log" | md5 ; done | tee svn.md5.missing
-cat commits.missing2 | while read i ; do echo $i log `md5
diffs.svn.sans/$i.log.sans.log` ; echo $i files `md5 diffs.svn.sans/$i.files` ;
echo $i diff `md5 diffs.svn.sans/$i.diff` ; done | tee svn.md5.missing2
+cat commits.missing2 | while read i ; do echo $i log `md5
diffs.svn.sans/$i.log` ; echo $i files `md5 diffs.svn.sans/$i.files` ; echo $i
diff `md5 diffs.svn.sans/$i.diff` ; done | tee svn.md5.missing2
-CAPTURE GIT MD5 SUMS OF DIFF
-grep "^commit " git.log | awk '{print $2}' | while read i ; do echo -n "$i " ;
log="`git diff ${i}^! | grep \"^[-+][^-+]\"`" ; echo -n "`echo \"$log\"|wc |
awk '{print $1}'` " ; echo "$log" > diffs.git/${i}.diff ; echo "$log" | md5 ;
done | tee git.md5.all
-grep "^commit " git.log | awk '{print $2}' | while read i ; do echo $i log
`md5 diffs.git.sans/$i.log.sans.log` ; echo $i files `md5
diffs.git.sans/$i.files` ; echo $i diff `md5 diffs.git.sans/$i.diff` ; done |
tee git.md5.all2
-
COMPARE THEM
cat svn.md5.missing | while read line ; do i=`echo $line | awk '{print $1}'` ;
svnmd5=`echo $line | awk '{print $3}'` ; echo -n "$i ... " ; if test "x$svnmd5"
= "xd41d8cd98f00b204e9800998ecf8427e" ; then echo "EMPTY" ; else grep $svnmd5
git.md5 || echo "NOT FOUND" ; fi ; done | tee svn.to.git
# cat svn.md5.missing2 | while read line ; do i=`echo $line | awk '{print
$1}'` ; type=`echo $line | awk '{print $2}'` ; md5=`echo $line | awk '{print
$6}'` ; if test "x$md5" = "xd41d8cd98f00b204e9800998ecf8427e" ; then echo "$i
$type EMPTY" ; else echo "$i $type `grep $md5 git.md5.all2 | grep $type || echo
"NOT FOUND"`" ; fi ; done | tee svn.to.git2
@@ -92,15 +110,37 @@
cat mappings2.txt | grep NOT | while read line ; do rev=`echo $line | awk
'{print $1}'` ; if grep -q "${rev}\$" git.all_revision_tags ; then echo "found
$rev" ; else echo "did not find $rev" ; fi ; done
-# EXTRACTED ALL SVN COMMITS
-seq 1 78156 | while read i ; do if ! test -f diffs.svn.all/$i.log ; then svn
log -c$i ~/brlcad.github/brlcad.mirror | tee diffs.svn.all/$i.log ; fi ; done
-for i in diffs.svn.all/*.log ; do echo $i ; if ! test -f ${i}.sans.log ; then
tail +4 $i | perl -0777 -pe 's/[-[:space:]]*//g' > ${i}.sans.log ; fi ; done
-seq 1 78156 | while read i ; do echo $i ; if ! test -f diffs.svn.all/$i.files
; then svn diff --ignore-properties -c$i ~/brlcad.github/brlcad.mirror | grep
'^[-+][-+][-+] ' | grep -v "nonexistent" | awk '{print $1, $2}' | sed
's/\/Users\/morrison\/brlcad.github\/brlcad.mirror\///g' | sort >
diffs.svn.all/$i.files ; fi ; done
-seq 1 78156 | while read i ; do echo -n "$i " ; log="`svn diff
--ignore-properties -c$i ~/brlcad.github/brlcad.mirror | grep \"^[-+][^-+]\"`"
; echo -n "`echo \"$log\"|wc | awk '{print $1}'` " ; echo "$log" >
diffs.svn.all/${i}.diff ; echo "$log" | md5 ; done | tee svn.md5.all
-seq 1 78156 | while read i ; do echo $i log `md5
diffs.svn.all/$i.log.sans.log` ; echo $i files `md5 diffs.svn.all/$i.files` ;
echo $i diff `md5 diffs.svn.all/$i.diff` ; done | tee svn.md5.all2
-./compare_all.sh
+# EXTRACT ALL SVN LOGS
+seq 1 78233 | while read i ; do echo $i ; svn log -c$i
file:///Users/morrison/brlcad.github/sfmirror | tail +4 | perl -0777 -pe
's/[-[:space:]]*//g' > diffs.svn.sans/$i.log ; done
+
+# EXTRACT ALL SVN FILES
+for i in `seq 1 78233` ; do echo $i ; svn diff --ignore-properties -c$i
file:///Users/morrison/brlcad.github/svn.sfmirror/code | grep '^[-+][-+][-+] '
| grep -v nonexistent | grep brlcad/trunk | awk '{print $1, $2}' | sed
's/brlcad\/trunk\///g' | sort > diffs.svn.sans/$i.files ; done
+
+# EXRACT MISSING SVN FILES
+for file in diffs.svn.sans/*.files ; do if ! test -s $file ; then
rev="`basename $file | sed 's/.files//'`" ; echo $rev ; svn diff
--ignore-properties -c$rev
file:///Users/morrison/brlcad.github/svn.sfmirror/code | grep '^[-+][-+][-+] '
| grep -v nonexistent | grep brlcad/trunk | awk '{print $1, $2}' | sed
's/brlcad\/trunk\///g' | sort > diffs.svn.sans/$rev.files ; fi ; done
+
+# extract files in parallel
+grep empty svn.to.git3 | grep MIS | cut -f1 -d' ' | while read rev ; do echo
$rev ; p="`cat parallel`" ; if test $p -lt 8 ; then echo "`expr $p + 1`" >
parallel ; svn diff --ignore-properties -c$rev
file:///Users/morrison/brlcad.github/svn.sfmirror/code | grep '^[-+][-+][-+] '
| grep -v nonexistent | grep brlcad/trunk | awk '{print $1, $2}' | sed
's/brlcad\/trunk\///g' | sort > diffs.svn.sans/$rev.files & ; else echo 0 >
parallel ; svn diff --ignore-properties -c$rev
file:///Users/morrison/brlcad.github/svn.sfmirror/code | grep '^[-+][-+][-+] '
| grep -v nonexistent | grep brlcad/trunk | awk '{print $1, $2}' | sed
's/brlcad\/trunk\///g' | sort > diffs.svn.sans/$rev.files ; fi ; done
+
+# EXTRACT ALL SVN DIFFS
+for i in `seq 1 78233` ; do echo $i ; svn diff --ignore-properties -c$i
file:///Users/morrison/brlcad.github/svn.sfmirror/code | grep "^[-+][^-+]" |
sort | LC_ALL=C sed 's/[[:space:]]*//g' | sort > diffs.svn.sans/$i.diff ; done
+
+seq 1 78156 | while read i ; do echo $i log `md5 diffs.svn.all/$i.log` ; echo
$i files `md5 diffs.svn.all/$i.files` ; echo $i diff `md5
diffs.svn.all/$i.diff` ; done | tee svn.md5.all2
+
+# extract diffs in parallel
+grep empty svn.to.git3 | grep MIS | cut -f1 -d' ' | while read rev ; do echo
$rev ; p="`cat parallel`" ; if test $p -lt 5 ; then echo "`expr $p + 1`" >
parallel ; svn diff --ignore-properties -c$rev
file:///Users/morrison/brlcad.github/svn.sfmirror/code | grep "^[-+][^-+]" |
sort | LC_ALL=C sed 's/[[:space:]]*//g' | sort > diffs.svn.sans/$rev.diff & ;
else echo 0 > parallel ; svn diff --ignore-properties -c$rev
file:///Users/morrison/brlcad.github/svn.sfmirror/code | grep "^[-+][^-+]" |
sort | LC_ALL=C sed 's/[[:space:]]*//g' | sort > diffs.svn.sans/$rev.diff ; fi
; done
+
+# COMPUTE SVN MD5 SUMS
+for i in `seq 1 78233` ; do echo $i log `md5 diffs.svn.sans/$i.log` ; echo $i
files `md5 diffs.svn.sans/$i.files` ; echo $i diff `md5 diffs.svn.sans/$i.diff`
; done | tee svn.md5
+
+# DO THE COMPARISON
+cat svn.md5 | ./compare_all.sh | tee svn.to.git2
+cat svn.md5.16000 | ./compare_parallel.sh | tee svn.to.git3.16000
+
+
+# CONVERT NON-SANS DIFFS TO SANS
cd diffs.svn.all ;; for i in *.diff ; do echo $i ; cat $i | LC_ALL=C sed
's/[[:space:]]*//g' > ../diffs.svn.all.sans/$i ; done ;; mv
../diffs.svn.all.sans/* . ;; rmdir ../diffs.svn.all.sans
-
+tr
# FIND TAGGINGS FOR ALL TRUNK COMMITS
for i in `cat svn.commits2` ; do echo -n $i ; grep "revision:${i}$" -C3
git.log | grep :branch: ; done | tee trunk_tags_in_git.log
grep ":revision:" -C3 git.log > git.revision.log
@@ -113,3 +153,28 @@
rev=1 ; while test $rev -lt 78155 ; do echo -n "$rev " ; svn diff -c$rev
file:///Users/morrison/brlcad.github/sfmirror | grep "^[-+][-+][-+] " | grep -e
"\(branches\|trunk\|tags\)" | cut -f2,3 -d/ | sed 's/trunk.*/trunk/g' | sort |
uniq | tr '\n' ' ' ; echo "" ; rev="`expr $rev + 1`" ; done | tee
all_branches.log
rev=1 ; while test $rev -lt 78155 ; do echo -n "$rev " ; svn diff -c$rev
file:///Users/morrison/brlcad.github/svn.sfmirror/code | grep "^Index: " | sed
's/Index: //g' | cut -f1,2,3 -d/ | sed 's/trunk.*/trunk/g' | sort | uniq | tr
'\n' ' ' ; echo "" ; rev="`expr $rev + 1`" ; done | tee all_branches2.log
+
+cat svn.to.git3 | grep -E '[0-9]{1,5} '|wc
+cat svn.to.git3 | grep -E '[0-9]{1,5} '| grep -v PERFECT | grep -v "NOT FOUND"
| grep -v -i empty | less
+cat svn.to.git3 | grep -v -i empty | grep -v PERFECT | grep -v " NOT FOUND" |
grep -v " LOG MATCH" | grep -v " FILE MATCH" | grep -v " LOG+FILE MATCH" | grep
-v " LOG+FILE+DIFF MATCH" | grep -v " LOG+DIFF MATCH" | grep -v "FILE+DIFF"
+
+78819 commits
+-6874 PERFECT MATCH
+-----
+71945
+-9055 NOT FOUND (branch changes)
+-----
+62890
+- 932 EMPTY (prop changes)
+-----
+61958
+
+46569 LOG+FILE+DIFF MATCH (279 mismatch?)
+14066 LOG+FILE MATCH (1582 mismatch?)
+ 1156 LOG MATCH (393 mismatch?)
+ 138 LOG+DIFF MATCH (8 mismatch?)
+ 24 FILE+DIFF MATCH
+ 5 FILE MATCH (5 mismatch?)
+ 0 DIFF MATCH
+
+
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