diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..9a528fbad564c4ca19abe0b911d37bd83d722dbb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,64 @@
+Makefile
+Makefile.in
+*.a
+*.o
+*.lo
+*.la
+.deps
+.libs
+
+/configure
+/config.cache
+/config.guess
+/config.h
+/config.h.in
+/config.log
+/config.status
+/config.sub
+/config.rpath
+/compile
+/depcomp
+/dummy-config.h
+/dummy-config.h.in
+/fts-config.h
+/install-sh
+/libtool
+/ltmain.sh
+/missing
+/run-test.sh
+/aclocal.m4
+/stamp.h
+/stamp-h1
+/stamp-h2
+/autom4te.cache
+/ChangeLog
+/cc-wrapper.sh
+/pigeonhole-config.h
+/pigeonhole-version.h
+
+/m4/libtool.m4
+/m4/ltoptions.m4
+/m4/ltsugar.m4
+/m4/ltversion.m4
+/m4/lt~obsolete.m4
+
+src/**/test-*
+!src/**/test-*.c
+!src/**/test-*.h
+
+doc/man/doveadm-sieve.1
+doc/man/sievec.1
+doc/man/sieve-dump.1
+doc/man/sieve-test.1
+doc/man/sieve-filter.1
+doc/man/pigeonhole.7
+
+src/sieve-tools/sievec
+src/sieve-tools/sieve-dump
+src/sieve-tools/sieve-test
+src/sieve-tools/sieve-filter
+
+src/testsuite/testsuite
+
+src/managesieve/managesieve
+src/managesieve-login/managesieve-login
diff --git a/.hgignore b/.hgignore
deleted file mode 100644
index f2035497e458062f5316c0b51f4c5403258db99b..0000000000000000000000000000000000000000
--- a/.hgignore
+++ /dev/null
@@ -1,75 +0,0 @@
-syntax: glob
-aclocal.m4
-autom4te.cache
-config.cache
-config.guess
-dummy-config.h
-dummy-config.h.in
-pigeonhole-config.h
-compile
-config.log
-config.status
-config.sub
-config.rpath
-configure
-configure.scan
-pigeonhole-version.h
-libtool
-libtool-shared
-ltconfig
-ltmain.sh
-stamp-h*
-stamp.h
-version.h
-.exrc
-depcomp
-install-sh
-missing
-mkinstalldirs
-ABOUT-NLS
-build-stamp
-configure-stamp
-dovecot.spec
-dovecot-config
-dovecot-config.in
-ChangeLog
-Makefile
-Makefile.in
-m4/libtool.m4
-m4/ltoptions.m4
-m4/ltsugar.m4
-m4/ltversion.m4
-m4/lt~obsolete.m4
-
-*~
-*.o
-*.lo
-*.loT
-*.Po
-*.Plo
-*.a
-*.la
-*.lai
-*.so
-*.svbin
-**/Makefile
-**/Makefile.in
-**/.libs
-**/.deps
-
-doc/man/doveadm-sieve.1
-doc/man/sievec.1
-doc/man/sieve-dump.1
-doc/man/sieve-test.1
-doc/man/sieve-filter.1
-doc/man/pigeonhole.7
-
-src/sieve-tools/sievec
-src/sieve-tools/sieve-dump
-src/sieve-tools/sieve-test
-src/sieve-tools/sieve-filter
-
-src/testsuite/testsuite
-
-src/managesieve/managesieve
-src/managesieve-login/managesieve-login
diff --git a/.hgsigs b/.hgsigs
deleted file mode 100644
index d19feb4fa958a03df743db33014b447b92029eef..0000000000000000000000000000000000000000
--- a/.hgsigs
+++ /dev/null
@@ -1,34 +0,0 @@
-d768f911252d6b798400a382b41a98d2b2cde770 0 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
diff --git a/Makefile.am b/Makefile.am
index 6488329ab26295f73773144301e2ebe70676e311..5073dfe90688ea219ee3a01886a385fb45a529db 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -29,8 +29,8 @@ nodist_pkginc_lib_HEADERS = \
 	pigeonhole-config.h
 
 if MAINTAINER_MODE
-ChangeLog: .hg/dirstate
-	hg log --style=changelog > ChangeLog
+ChangeLog: .git/index
+	git log > ChangeLog
 endif
 
 dist_aclocal_DATA = dovecot-pigeonhole.m4
diff --git a/is-tagged.py b/is-tagged.py
deleted file mode 100644
index 59909d6ef4e14fb5d9eadde3e7c20ffd3c87c0c7..0000000000000000000000000000000000000000
--- a/is-tagged.py
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-"""
-    Checks if the current revision of the repository is a tagged revision,
-    but not 'tip'.
-
-    usage:
-    python is-tagged.py [/path/to/repo]
-    if no path is given, the current working directory will be used.
-
-    Exit status:
-      0 if the current revision is a tagged version OR
-        if the current revision was used for signing/tagging OR
-        if path is not a Mercurial repository OR
-        if module import should fail for some reason
-      1 if the current revision has no tag, except 'tip'
-"""
-import re
-import sys
-try:
-    from mercurial import hg, ui
-except ImportError:  # no Mercurial at all
-    sys.exit(0)
-try:
-    from mercurial.error import Abort, RepoError
-except ImportError:
-    try:
-        from mercurial.repo import RepoError
-        from mercurial.util import Abort
-    except ImportError:  # something old/new?
-        sys.exit(0)
-
-RE = r'^Added\s(?:signature|tag)\s(?:[\w\.]+\s)?for\schangeset\s[\da-f]{12,}$'
-
-
-def main():
-    if len(sys.argv) > 1:
-        path = sys.argv[1].strip()
-    else:
-        path = '.'
-    try:
-        repo = hg.repository(ui.ui(), path)
-    except (Abort, RepoError):  # no/bad repo? no extra version info
-        return 0
-    parents_id = repo.dirstate.parents()[0]
-    ctx = repo.changectx(parents_id)
-    if re.match(RE, ctx.description()):  # tag or sig was added for a release
-        return 0
-    for tag, nodeid in repo.tags().iteritems():
-        if tag != 'tip' and parents_id == nodeid:  # tagged
-            return 0
-    # not tagged
-    return 1
-
-
-if __name__ == '__main__':
-    sys.exit(main())
diff --git a/update-version.sh b/update-version.sh
index ff22d522cc42024b01ee5e942d46b0ec24cf5915..ec47deb6a2a73df06dfe2a82b77df90d6d99f35a 100644
--- a/update-version.sh
+++ b/update-version.sh
@@ -21,9 +21,9 @@ abspath()
 abspath "${SRCDIR}" 1
 abspath "${BUILDDIR}" 2
 
-# when using a different BUILDDIR just copy from SRCDIR, if there is no .hg
+# when using a different BUILDDIR just copy from SRCDIR, if there is no .git
 if [ "${BUILDDIR}" != "${SRCDIR}" ]; then
-	if [ ! -d "${SRCDIR}/.hg" ]  && [ -f "${SRCDIR}/${VERSION_H}" ]; then
+	if [ ! -d "${SRCDIR}/.git" ]  && [ -f "${SRCDIR}/${VERSION_H}" ]; then
 		cmp -s "${SRCDIR}/${VERSION_H}" "${BUILDDIR}/${VERSION_H}"
 		if [ $? -ne 0 ]; then
 			cp "${SRCDIR}/${VERSION_H}" "${BUILDDIR}/${VERSION_H}"
@@ -32,22 +32,19 @@ if [ "${BUILDDIR}" != "${SRCDIR}" ]; then
 	fi
 fi
 
-# Don't generate dovecot-version.h if the source tree has no .hg dir but
+# Don't generate dovecot-version.h if the source tree has no .git dir but
 # a dovecot-version.h. This may be the result of a release/nightly tarball.
-[ ! -d "${SRCDIR}/.hg" ] && [ -f "${BUILDDIR}/${VERSION_H}" ] && exit 0
+[ ! -d "${SRCDIR}/.git" ] && [ -f "${BUILDDIR}/${VERSION_H}" ] && exit 0
 
 # Lets generate the dovecot-version.h
 [ -f "${BUILDDIR}/${VERSION_HT}" ] && rm -f "${BUILDDIR}/${VERSION_HT}"
-python "${SRCDIR}/is-tagged.py" "${SRCDIR}"
-if [ $? = 1 ]; then
-	# older hg doesn't recognize option -i
-	#HGID=`hg -R ${SRCDIR} id -i 2>/dev/null`
-	HGID=`hg -R ${SRCDIR} id 2>/dev/null | awk '{print $1}'`
+if true; then
+	GITID=`git --git-dir ${SRCDIR}/.git rev-parse --short HEAD`
 	cat > "${BUILDDIR}/${VERSION_HT}" <<EOF
 #ifndef PIGEONHOLE_VERSION_H
 #define PIGEONHOLE_VERSION_H
 
-#define PIGEONHOLE_VERSION_FULL PIGEONHOLE_VERSION" (${HGID})"
+#define PIGEONHOLE_VERSION_FULL PIGEONHOLE_VERSION" (${GITID})"
 
 #endif /* PIGEONHOLE_VERSION_H */
 EOF