[gdal-dev] Trac to GitHub
Even Rouault
even.rouault at spatialys.com
Mon Mar 19 09:42:56 PDT 2018
Regarding my point 1), I've experimented locally on my git clone to rewrite references
to Trac tickets like "fix #1234" to become "fix https://trac.osgeo.org/gdal/ticket/1234"
with
git filter-branch -f --msg-filter 'python /home/even/rewrite.py' -- trunk
where rewrite.py is
{{{
import sys
msg = sys.stdin.read()
# Don't touch messages that reference other databases
if msg.find('MITAB bug ') >= 0 or msg.find('Safe bug ') >= 0 or msg.find('bugzilla') >= 0 or msg.find('Bugzilla') >= 0:
sys.stdout.write(msg)
sys.exit(0)
oldpos = 0
old_msg = msg
while True:
# We already have reference to github pull requests written like
# 'github #1234', so skip them
newpos = msg.find('github #', oldpos)
if newpos >= 0:
oldpos = newpos + len('github #')
continue
# Exception...
newpos = msg.find('patch #1 ', oldpos)
if newpos >= 0:
oldpos = newpos + len('patch #1 ')
continue
# Exception...
newpos = msg.find('bug 1 ', oldpos)
if newpos >= 0:
oldpos = newpos + len('bug 1 ')
continue
# Fix 'bug 1234'
newpos = msg.find('bug ', oldpos)
if newpos >= 0:
if newpos == len(msg) - 4:
break
if not(msg[newpos+4] >= '1' and msg[newpos+4] <= '9'):
oldpos = newpos + 4
continue
msg = msg[0:newpos] + 'https://trac.osgeo.org/gdal/ticket/' + msg[newpos+4:]
oldpos = newpos
continue
# Fix 'ticket 1234'
newpos = msg.find('ticket ', oldpos)
if newpos >= 0:
if newpos == len(msg) - 7:
break
if not(msg[newpos+7] >= '1' and msg[newpos+7] <= '9'):
oldpos = newpos + 7
continue
msg = msg[0:newpos] + 'https://trac.osgeo.org/gdal/ticket/' + msg[newpos+7:]
oldpos = newpos
continue
# Fix '#1234'
newpos = msg.find('#', oldpos)
if newpos >= 0:
if newpos == len(msg) - 1:
break
if not(msg[newpos+1] >= '1' and msg[newpos+1] <= '9'):
oldpos = newpos + 1
continue
# Skip stacktraces like '#1 0xdeadbeef'
space_pos = msg.find(' ', newpos)
if space_pos > 0 and space_pos + 2 < len(msg) and msg[space_pos + 1] == '0' and msg[space_pos + 2] == 'x':
oldpos = newpos + 1
continue
msg = msg[0:newpos] + 'https://trac.osgeo.org/gdal/ticket/' + msg[newpos+1:]
oldpos = newpos
continue
break
if msg != old_msg:
f = open('/tmp/log.txt', 'a')
f.write('Old message was:\n' + old_msg + 'New message is:\n' + msg + '\n')
f.close()
sys.stdout.write(msg)
}}}
I'v uploaded the log of the changes (the content of /tmp/log.txt) in http://even.rouault.free.fr/log.txt
It shows the original and modified commit messages (just for commits for which a modification was done)
In case you have the motivation to actually review it, let me know if you see some weird things in it...
Even
--
Spatialys - Geospatial professional services
http://www.spatialys.com
More information about the gdal-dev
mailing list