git-migration: pld-git.sh - grab missing users from all logs - remove broke...

glen glen at pld-linux.org
Sat Feb 5 01:48:00 CET 2011


Author: glen                         Date: Sat Feb  5 00:48:00 2011 GMT
Module: git-migration                 Tag: HEAD
---- Log message:
- grab missing users from all logs
- remove broken git imports when blacklisting them

---- Files affected:
git-migration:
   pld-git.sh (1.1 -> 1.2) 

---- Diffs:

================================================================
Index: git-migration/pld-git.sh
diff -u git-migration/pld-git.sh:1.1 git-migration/pld-git.sh:1.2
--- git-migration/pld-git.sh:1.1	Fri Feb  4 15:59:36 2011
+++ git-migration/pld-git.sh	Sat Feb  5 01:47:55 2011
@@ -62,8 +62,11 @@
 
 		grep -qF $pkg cvs.blacklist && continue
 		# commits are mixed latin2 and utf8, do not force neither.
-		# -c i18n.commitencoding=iso8859-2 
-		git cvsimport -d $CVSROOT -C git-import/$pkg -R -A cvs.users packages/$pkg || echo $pkg >> cvs.blacklist
+		# -c i18n.commitencoding=iso8859-2
+		git cvsimport -d $CVSROOT -C git-import/$pkg -R -A cvs.users packages/$pkg || {
+			rm -rf git-import/$pkg
+			echo $pkg >> cvs.blacklist
+		}
 	done
 }
 
@@ -88,6 +91,8 @@
 
 	install -d git
 	for pkg in ${@:-$(cat cvs.dirs)}; do
+		grep -qF $pkg git.blacklist && continue
+
 		test -d git-import/$pkg || continue
 		test -d gitroot/$pkg && continue
 
@@ -95,8 +100,52 @@
 	done
 }
 
+git_dirs() {
+	[ -s git.dirs ] || ls -1 git-import > git.dirs
+}
+
+# generate shortlog for each package
+git_shortlog() {
+	set -$d
+	local pkg
+
+	[ ! -f git.shortlog ] || return
+
+	git_dirs
+	for pkg in $(cat git.dirs); do
+		grep -qF $pkg cvs.blacklist && continue
+		[ -s git-import/.$pkg.shortlog ] && continue
+
+		cd git-import/$pkg
+		git shortlog -s -e > ../.$pkg.shortlog
+		cd ../../
+	done
+
+	cat git-import/.*.shortlog > git.shortlog
+}
+
+# generate list of missing authors from all git modules
+git_missingusers() {
+	set -$d
+	local pkg
+
+	[ ! -s git.users ] || return
+	git_shortlog
+
+	sed -rne 's,.+<(.*)>,\1,p' git.shortlog | sort -u | grep -v @ > git.users.unknown
+	local user
+	for user in $(cat git.users.unknown); do
+		if ! grep -q "^$user=" cvs.users; then
+			if ! grep -q "^$user" cvs.users.missing; then
+				echo $user >> cvs.users.missing
+			fi
+		fi
+	done
+}
+
 cvs_pkgs
 cvs_users
 git_import "$@"
+git_missingusers
 git_templates
 git_bare "$@"
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/git-migration/pld-git.sh?r1=1.1&r2=1.2&f=u



More information about the pld-cvs-commit mailing list