* Jeff King wrote on Thu, Mar 13, 2008 at 06:03:22PM CET: > On Wed, Mar 12, 2008 at 08:08:27PM +0100, Ralf Wildenhues wrote: > > > when migrating a project that uses GNU-style ChangeLogs from CVS > > to git, is it possible to extract patch author information from > > the ChangeLog entries rather than from the CVS commit logs? > I don't think there is a way to do this automatically with > git-cvsimport. However, once imported, I think you could rewrite history > using git-filter-branch with a filter that looked at the diff of > ChangeLog for that commit and rewrote the author. See the documentation > for git-filter-branch. Thank you, I just learned a new cool tool! FWIW, here's what I used successfully on a repository with only one ChangeLog file (some fiddling to cope with format variations): git filter-branch -d /dev/shm/t --tree-filter ' line=`sed -n "s,^[12][90][0-9][0-9]-[0-1][0-9]-[0-3][0-9] *\([A-Za-z].*\),\1,; s,.* \([A-Za-z].*\),\1,; /./{ s/(tiny change)// s/ *$// p q }" ChangeLog` author=`echo "$line" | sed "s, *[<(].*,,"` email=`echo "$line" | sed "s,[^,(]*[<(],<,; s/[)>].*/>/"` test -n "$author" && test -n "$email" && { GIT_AUTHOR_NAME="$author" GIT_AUTHOR_EMAIL="$email" export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL }' > > Related question: when CVS commit logs have varying encoding, > > say, some latin1 and some UTF-8, is it possible to have uniformly > > encoded git log entries? > > I don't think git-cvsimport does much with encodings at all. But again, > you could probably go back through the imported repo with > git-filter-branch and iconv the commit messages as appropriate. I'll try that, too. Thanks! Ralf -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html